From gerrit-no-reply at lists.osmocom.org Wed Sep 1 08:37:02 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 08:37:02 +0000 Subject: Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25283 to look at the new patch set (#3). Change subject: bty_vty: add VTY settungs for temporary overpower ...................................................................... bty_vty: add VTY settungs for temporary overpower To configure temporary overpower, new VTY commands are added. This patch also addes the logic needed to attach the temporary overpower IE to the RSL CHANNEL ACTIVATE message. Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Related: SYS#5319 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bts_vty.c 3 files changed, 76 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/25283/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Gerrit-Change-Number: 25283 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 08:37:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 08:37:17 +0000 Subject: Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25283 ) Change subject: bty_vty: add VTY settungs for temporary overpower ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25283/2/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25283/2/src/osmo-bsc/abis_rsl.c at 563 PS2, Line 563: cap = (struct abis_rsl_osmo_temp_ovp_acch_cap *)msg->tail; > you are getting a pointer to the end of the used part of the message buffer. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Gerrit-Change-Number: 25283 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 01 Sep 2021 08:37:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 08:47:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 1 Sep 2021 08:47:04 +0000 Subject: Change in osmo-bsc[master]: WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop ...................................................................... Patch Set 2: Code-Review-1 (10 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/include/osmocom/bsc/gsm_data.h at 1346 PS2, Line 1346: /* Measurement averaging parameters for C/I: */ I think using an array with pre-defined indexes would simplify the code: enum { GSM_PWR_CTRL_MP_CI_FR, GSM_PWR_CTRL_MP_CI_HR, _GSM_PWR_CTRL_MP_NUM, }; .... struct gsm_power_ctrl_meas_params ci[_GSM_PWR_CTRL_MP_NUM]; So you can iterate over 'ci' using a loop: for (i = 0; i < ARRAY_SIZE(ci); i++) ... rather than using huge macros in the generating/parsing code. And for the VTY, you would be able to use value_string instead of custom mapping functions. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_ipaccess_nanobts.c File src/osmo-bsc/bts_ipaccess_nanobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_ipaccess_nanobts.c at 870 PS2, Line 870: enc_osmo_meas_proc_params Why do we add osmo-bts specific code in bts_ipaccess_nanobts.c? I believe it should be in bts_osmobts.c. This would require to make some API non-static in this file, so you can re-use it from bts_osmobts.c, which complicates the task a bit. But logically it should be there, not here. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3063 PS2, Line 3063: Channel Type FR/EFR is not really a 'Channel type', but rather 'Codec type'. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3068 PS2, Line 3068: Channel Type (E)GPRS Can you please explain how is this related to GPRS? Currently all parameters in 'config-{ms,bs}-power-ctrl' nodes are for CS specific power control only. As far as I know, GPRS specific power control is completely different from CS domain. How is this going to be used and where? Are you planning to forward it to osmo-pcu somehow? https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3137 PS2, Line 3137: , Hmm, maybe worth adding a comment like: , /* nope */, because two comas look odd. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3190 PS2, Line 3190: lower_cmp_p, lower_cmp_n Ha! I also copy-pasted it here :P https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3209 PS2, Line 3209: Upper Lower? https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3227 PS2, Line 3227: lower_cmp_p, lower_cmp_n Copy-pasted, should be upper (also see comment above). https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3354 PS2, Line 3354: -toI -to- https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/tests/power_ctrl.vty File tests/power_ctrl.vty: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/tests/power_ctrl.vty at 78 PS2, Line 78: ci-thresh fr lower 13 upper 17 Why do we print C/I parameters for *BS* power control if they only apply to MS power control? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 01 Sep 2021 08:47: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 Wed Sep 1 09:37:34 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 09:37:34 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25296 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... Patch Set 1: (2 comments) (not done yet, but I hope I could answer the question from laforge) https://gerrit.osmocom.org/c/osmo-bts/+/25296/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25296/1//COMMIT_MSG at 12 PS1, Line 12: receiver should use). codec idfentifer. The formulas in the present > 1-remove dot [?] Done https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_lchan_tchf.c at 470 PS1, Line 470: LOGL1SB(DL1P, LOGL_NOTICE, l1ts, br, "Codec (FT = %d) " > I don't understand this code in general, even the current one. [?] The comment from laforge above also reflects my understanding. I think the problem that the code tries to solve is to sync the FT change on the transmission phase. Lets imagine the following situation: An RTP packet which has a different FT than the packet before arrives at the BTS. But at that moment the transmission phase is at CMR. In this situation we are unable to encode the AMR block for the radio interface because we have no way to encode the new FT into that block. All we can do is to encode a bad frame and go ahead. In the next round the transmission phase will be at FT and we can encode the new FT and everything is fine again. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 09:37:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 09:58:02 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 09:58:02 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25295 to look at the new patch set (#2). Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... sched_lchan_tch_x: do not use cmr as ft CMR and FT are updated each time an AMR voice frame is received from the radio interface. The transmission phase decides whether the voice frame contains CMR or FT. The code follows the transmission phase and keeps ul_cmr and ul_ft up to date. In contrast to the AMR frames on the radio interface, an AMR RTP packet always contains the CMR and the FT value. When generating the RTP payloed, The present implementation uses the CMR in the position where the FT should be and the FT is ignored. This is not correct. Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/95/25295/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25295 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 09:58:02 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 09:58:02 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 to look at the new patch set (#2). Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... sched_lchan_tch_x: use functions to determine AMR tranmssion phase The AMR transmission phase directly depends on the frame number. The transmission phase is used to tell if a received AMR frame contains a CMI (frame type that is currently used) or CMR (frame type that the receiver should use) codec identifier. The formulas in the present implementation seem to be correct but they do not reflect the numbers in the spec very well, nor do they have unit-tests. Lets replace them with more readble functions and test those functions with unit-tests. Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Related: SYS#5549 --- M configure.ac M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_utils.h M tests/Makefile.am A tests/amr/amr_test.ok M tests/testsuite.at 7 files changed, 254 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/25296/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 11:01:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 11:01:17 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25295 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25295 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 11:01:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 11:09:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 11:09:37 +0000 Subject: Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25283 ) Change subject: bty_vty: add VTY settungs for temporary overpower ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Gerrit-Change-Number: 25283 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 11:09: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 Sep 1 11:28:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 11:28:40 +0000 Subject: Change in osmo-bsc[master]: WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop ...................................................................... Patch Set 2: (12 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/include/osmocom/bsc/gsm_data.h at 1346 PS2, Line 1346: /* Measurement averaging parameters for C/I: */ > I think using an array with pre-defined indexes would simplify the code: [?] I also though about it, but I don't think it really helps, because anyway the RSL messages are not using arrays, so you still need to copy to/from specific offsets, which means you cannot easily use loops. And I want to avoid using arrays with enums in the RSL protocol because that would also require speechifying enums for the protocol, adding even more non-standard stuff. So I agree some code can look a bit verbose, but it's manily due to having lots of parameters added. I can move some big macros to a helper function if it really makes it less hard to read. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_ipaccess_nanobts.c File src/osmo-bsc/bts_ipaccess_nanobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_ipaccess_nanobts.c at 870 PS2, Line 870: enc_osmo_meas_proc_params > Why do we add osmo-bts specific code in bts_ipaccess_nanobts. [?] Ok I can move it there. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_ipaccess_nanobts.c at 889 PS2, Line 889: #define ENC_PROC(PARAMS, TO, TYPE) do { \ I could move this to a helper function, but not sure if we'd really win a lot, opinions/preferences welcome. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_ipaccess_nanobts.c at 994 PS2, Line 994: #define ENC_THRESH_CI(TYPE) \ I think it's fine keeping this one and the one below as macros. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3063 PS2, Line 3063: Channel Type > FR/EFR is not really a 'Channel type', but rather 'Codec type'. I'm just following naming used in "GSM/EDGE: Evolution and Performance" Table 10.3. It's a channel type in the generic sense, not in "GSM logical channel type". I don't care about changing it to Codec Type if you prefer though. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3068 PS2, Line 3068: Channel Type (E)GPRS > Can you please explain how is this related to GPRS? Currently all parameters in 'config-{ms,bs}-powe [?] So far, I'm just adding it for completeness when doing all the monkey-type work, since we got values for it too. It's still not clear to me how are we going to use it, I never had a look at MS power control on PDCH but I guess there may be some way to tell the MS to reduce the power from the PCU? So yes, we'd pass that to the PCU at some point from the BTS. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3137 PS2, Line 3137: , > Hmm, maybe worth adding a comment like: , /* nope */, because two comas look odd. ACK good idea. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3190 PS2, Line 3190: lower_cmp_p, lower_cmp_n > Ha! I also copy-pasted it here :P ACK I'll send a separate patch. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3209 PS2, Line 3209: Upper > Lower? Ack https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3227 PS2, Line 3227: lower_cmp_p, lower_cmp_n > Copy-pasted, should be upper (also see comment above). Ack https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3354 PS2, Line 3354: -toI > -to- Ack https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/tests/power_ctrl.vty File tests/power_ctrl.vty: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/tests/power_ctrl.vty at 78 PS2, Line 78: ci-thresh fr lower 13 upper 17 > Why do we print C/I parameters for *BS* power control if they only apply to MS power control? Indeed my fault, thanks for noticing. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 01 Sep 2021 11:28:40 +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 Sep 1 11:30:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 11:30:47 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 01 Sep 2021 11:30:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 11:33:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 11:33:33 +0000 Subject: Change in osmo-bsc[master]: vty: Fix wrongs params passed in vty warning message References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25300 ) Change subject: vty: Fix wrongs params passed in vty warning message ...................................................................... vty: Fix wrongs params passed in vty warning message Change-Id: If1cc4c7fb70bd69cf8d1c0509e6be60ecae33685 --- M src/osmo-bsc/bts_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/00/25300/1 diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 2b7b42b..445eea4 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3086,7 +3086,7 @@ if (upper_cmp_p > upper_cmp_n) { vty_out(vty, "%% Upper RxLev P2 %d must be less than N2 %d%s", - lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + upper_cmp_p, upper_cmp_n, VTY_NEWLINE); return CMD_WARNING; } @@ -3121,7 +3121,7 @@ if (upper_cmp_p > upper_cmp_n) { vty_out(vty, "%% Upper RxQual P4 %d must be less than N4 %d%s", - lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + upper_cmp_p, upper_cmp_n, VTY_NEWLINE); return CMD_WARNING; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If1cc4c7fb70bd69cf8d1c0509e6be60ecae33685 Gerrit-Change-Number: 25300 Gerrit-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 Sep 1 11:46:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 11:46:50 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 to look at the new patch set (#3). Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... sched_lchan_tch_x: use functions to determine AMR tranmssion phase The AMR transmission phase directly depends on the frame number. The transmission phase is used to tell if a received AMR frame contains a CMI (frame type that is currently used) or CMR (frame type that the receiver should use) codec identifier. The formulas in the present implementation seem to be correct but they do not reflect the numbers in the spec very well, nor do they have unit-tests. Lets replace them with more readble functions and test those functions with unit-tests. Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Related: SYS#5549 --- M configure.ac M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_utils.h M tests/Makefile.am A tests/amr/amr_test.c A tests/amr/amr_test.ok M tests/testsuite.at 8 files changed, 405 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/25296/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 11:46:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 11:46:50 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25297 to look at the new patch set (#3). Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame All generated RTP that originates from the BTS relates to uplink. When generating AMR BAD frame RTP packets, we must use ul_cmr/ul_ft and not dl_cmr/dl_ft. Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/97/25297/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25297 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 11:49:23 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 11:49:23 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25296 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_lchan_tchf.c at 470 PS1, Line 470: LOGL1SB(DL1P, LOGL_NOTICE, l1ts, br, "Codec (FT = %d) " > The comment from laforge above also reflects my understanding. [?] pespin: We cannot send with the older type because the data we have is encoded by the new type. If we send with the older type anyway the other end would still expect the older FT and decode it wrongly. https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_utils.h File src/osmo-bts-trx/sched_utils.h: https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_utils.h at 40 PS1, Line 40: /*! determine the whether an uplink AMR block is CMI according to 3GPP TS 45.009. > "the whether" is wrong. Done https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_utils.h at 45 PS1, Line 45: uint32_t fn_26 = fn_begin % 26; > No reason for this variable, put it in the switch directly. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 11:49:23 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 11:54:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 11:54:08 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 to look at the new patch set (#4). Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... sched_lchan_tch_x: use functions to determine AMR tranmssion phase The AMR transmission phase directly depends on the frame number. The transmission phase is used to tell if a received AMR frame contains a CMI (frame type that is currently used) or CMR (frame type that the receiver should use) codec identifier. The formulas in the present implementation seem to be correct but they do not reflect the numbers in the spec very well, nor do they have unit-tests. Lets replace them with more readble functions and test those functions with unit-tests. Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Related: SYS#5549 --- M configure.ac M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_utils.h M tests/Makefile.am A tests/amr/Makefile.am A tests/amr/amr_test.c A tests/amr/amr_test.ok M tests/testsuite.at 9 files changed, 416 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/96/25296/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 12:43:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 12:43:27 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25297 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25297 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 12:43:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 12:44:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 12:44:53 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25296 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... Patch Set 4: Code-Review+1 I don't know much about AMR so +1, letting others say more. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 12:44:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 12:57:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 12:57:02 +0000 Subject: Change in osmo-bsc[master]: vty: Fix wrongs params passed in vty warning message In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25300 ) Change subject: vty: Fix wrongs params passed in vty warning message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If1cc4c7fb70bd69cf8d1c0509e6be60ecae33685 Gerrit-Change-Number: 25300 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 12:57:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 13:10:14 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 1 Sep 2021 13:10:14 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 to look at the new patch set (#13). Change subject: osmo_bsc_main: integrate MGW pooling into osmo-bsc ...................................................................... osmo_bsc_main: integrate MGW pooling into osmo-bsc Since the libosmo-mgcp-client now supports MGW pooling, lets use this feature in osmo-bsc. Large RAN installations may benefit from distributing the RTP voice stream load on multiple media gateways. Depends: osmo-mgw Icaaba0e470e916eefddfee750b83f5f65291a6b0 Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Related: SYS#5091 --- A doc/manuals/chapters/mgwpool.adoc M doc/manuals/chapters/running.adoc M doc/manuals/osmobsc-usermanual.adoc M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/vty.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/handover/handover_test.c 9 files changed, 330 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/23/25123/13 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Gerrit-Change-Number: 25123 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 13:12:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 13:12:50 +0000 Subject: Change in osmo-bsc[master]: vty: Fix wrongs params passed in vty warning message In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25300 ) Change subject: vty: Fix wrongs params passed in vty warning message ...................................................................... vty: Fix wrongs params passed in vty warning message Change-Id: If1cc4c7fb70bd69cf8d1c0509e6be60ecae33685 --- M src/osmo-bsc/bts_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 2b7b42b..445eea4 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3086,7 +3086,7 @@ if (upper_cmp_p > upper_cmp_n) { vty_out(vty, "%% Upper RxLev P2 %d must be less than N2 %d%s", - lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + upper_cmp_p, upper_cmp_n, VTY_NEWLINE); return CMD_WARNING; } @@ -3121,7 +3121,7 @@ if (upper_cmp_p > upper_cmp_n) { vty_out(vty, "%% Upper RxQual P4 %d must be less than N4 %d%s", - lower_cmp_p, lower_cmp_n, VTY_NEWLINE); + upper_cmp_p, upper_cmp_n, VTY_NEWLINE); return CMD_WARNING; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25300 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: If1cc4c7fb70bd69cf8d1c0509e6be60ecae33685 Gerrit-Change-Number: 25300 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:11:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:11:44 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore LONG_LINE_* References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25301 ) Change subject: lint: checkpatch_osmo.sh: ignore LONG_LINE_* ...................................................................... lint: checkpatch_osmo.sh: ignore LONG_LINE_* According to a comment in checkpatch.pl, these should automatically be ignored when LONG_LINE is ignored. However I found that it's still complaining about LONG_LINE_COMMENT, so explicitly disable it. Related: OS#5087 Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/01/25301/1 diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index b465b5a..849ccda 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -24,7 +24,7 @@ # * INITIALISED_STATIC: we use this, see also http://lkml.iu.edu/hypermail/linux/kernel/0808.1/2235.html # * LINE_CONTINUATIONS: false positives # * LINE_SPACING: we don't always put a blank line after declarations -# * LONG_LINE: should be 120 chars, but exceptions are done often so don't fail here +# * LONG_LINE*: should be 120 chars, but exceptions are done often so don't fail here # * PREFER_DEFINED_ATTRIBUTE_MACRO: macros like __packed not defined in libosmocore # * PREFER_FALLTHROUGH: pseudo keyword macro "fallthrough" is not defined in libosmocore # * REPEATED_WORD: false positives in doxygen descriptions (e.g. '\param[in] data Data passed through...') @@ -54,6 +54,8 @@ --ignore LINE_CONTINUATIONS \ --ignore LINE_SPACING \ --ignore LONG_LINE \ + --ignore LONG_LINE_COMMENT \ + --ignore LONG_LINE_STRING \ --ignore PREFER_DEFINED_ATTRIBUTE_MACRO \ --ignore PREFER_FALLTHROUGH \ --ignore REPEATED_WORD \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 Gerrit-Change-Number: 25301 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:12:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 14:12:59 +0000 Subject: Change in osmo-bsc[master]: WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#3). Change subject: WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop ...................................................................... WIP: Support set up of C/I parameters for osmo-bts MS Power Control Loop This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. TODO: Update user manual!!!! Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 515 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:14:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 14:14:24 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25123 ) Change subject: osmo_bsc_main: integrate MGW pooling into osmo-bsc ...................................................................... Patch Set 13: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Gerrit-Change-Number: 25123 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 14: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 Wed Sep 1 14:14:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 14:14:40 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore LONG_LINE_* In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25301 ) Change subject: lint: checkpatch_osmo.sh: ignore LONG_LINE_* ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 Gerrit-Change-Number: 25301 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 14:14:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:15:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 14:15:17 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#4). Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... MS Power Control Loop: Support set up of C/I parameters for osmo-bts This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. TODO: Update user manual!!!! Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 515 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:20:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 14:20:56 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#5). Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... MS Power Control Loop: Support set up of C/I parameters for osmo-bts This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. TODO: Update user manual!!!! Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 515 insertions(+), 52 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:06 +0000 Subject: Change in cellmgr-ng[master]: debian/control: put build-depends in own lines References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 ) Change subject: debian/control: put build-depends in own lines ...................................................................... debian/control: put build-depends in own lines Related: OS#5223 Change-Id: I5d085695d4bdd2aaac4105c129e423d27be63a3e --- M debian/control 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/cellmgr-ng refs/changes/02/25302/1 diff --git a/debian/control b/debian/control index 0f4c286..e630326 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,15 @@ Section: net Priority: optional Maintainer: Holger Hans Peter Freyther -Build-Depends: debhelper (>= 9), autotools-dev, pkg-config, libosmocore-dev, libosmo-sccp-dev, dh-autoreconf, dh-systemd (>= 1.5), libsnmp-dev, libsctp-dev +Build-Depends: debhelper (>= 9), + autotools-dev, + pkg-config, + libosmocore-dev, + libosmo-sccp-dev, + dh-autoreconf, + dh-systemd (>= 1.5), + libsnmp-dev, + libsctp-dev Standards-Version: 3.9.6 Homepage: http://openbsc.osmocom.org/ Vcs-Git: git://bs11-abis.gnumonks.org/cellmgr-ng.git -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I5d085695d4bdd2aaac4105c129e423d27be63a3e Gerrit-Change-Number: 25302 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:07 +0000 Subject: Change in cellmgr-ng[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/cellmgr-ng refs/changes/03/25303/1 diff --git a/debian/control b/debian/control index e630326..9098678 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,6 @@ libosmocore-dev, libosmo-sccp-dev, dh-autoreconf, - dh-systemd (>= 1.5), libsnmp-dev, libsctp-dev Standards-Version: 3.9.6 -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 Gerrit-Change-Number: 25303 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:09 +0000 Subject: Change in openbsc[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/openbsc/+/25304 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/04/25304/1 diff --git a/debian/control b/debian/control index b9008ef..c176bee 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,6 @@ pkg-config, libdbi0-dev, dh-autoreconf, - dh-systemd (>= 1.5), libsmpp34-dev (>= 1.13.0), libosmocore-dev (>= 1.0.1), libosmo-abis-dev (>= 0.6.0), -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/25304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25304 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:16 +0000 Subject: Change in osmo-bts[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25305 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/25305/1 diff --git a/debian/control b/debian/control index 5a42d19..3b8098b 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25305 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:18 +0000 Subject: Change in osmo-gbproxy[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25306 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/06/25306/1 diff --git a/debian/control b/debian/control index cf70307..2bdb50e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25306 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:26 +0000 Subject: Change in osmo-hlr[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25307 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/07/25307/1 diff --git a/debian/control b/debian/control index 104799b..68bd475 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, python3-minimal, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25307 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:30 +0000 Subject: Change in osmo-pcu[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25308 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/08/25308/1 diff --git a/debian/control b/debian/control index a8eae93..0e12f2e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>= 9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25308 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:33 +0000 Subject: Change in osmo-remsim[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25309 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/09/25309/1 diff --git a/debian/control b/debian/control index daa8dc6..bdae589 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, osmo-gsm-manuals-dev, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25309 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:36 +0000 Subject: Change in osmo-sgsn[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25310 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/10/25310/1 diff --git a/debian/control b/debian/control index abc7595..bc9c8ab 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25310 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:34:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:34:41 +0000 Subject: Change in osmo-sip-connector[master]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25311 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/11/25311/1 diff --git a/debian/control b/debian/control index 0de3953..cdcd470 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,6 @@ pkg-config, libsofia-sip-ua-glib-dev, libsofia-sip-ua-dev, - dh-systemd (>= 1.5), dh-autoreconf, libosmocore-dev (>= 1.5.0), osmo-gsm-manuals-dev -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25311 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:46:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:46:13 +0000 Subject: Change in osmo-trx[master]: d/patches/build-for-debian8.patch: remove References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25312 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 --- D debian/patches/build-for-debian8.patch D debian/patches/series 2 files changed, 0 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/12/25312/1 diff --git a/debian/patches/build-for-debian8.patch b/debian/patches/build-for-debian8.patch deleted file mode 100644 index 074dca9..0000000 --- a/debian/patches/build-for-debian8.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/debian/control b/debian/control -index 12d9af5..27b9d60 100644 ---- a/debian/control -+++ b/debian/control -@@ -13,7 +13,6 @@ Build-Depends: debhelper (>= 9), - libfftw3-dev, - libtalloc-dev, - libusrp-dev, -- liblimesuite-dev, - libosmocore-dev (>= 1.5.0), - osmo-gsm-manuals-dev - Standards-Version: 3.9.6 -@@ -30,7 +29,7 @@ Package: osmo-trx-dbg - Architecture: any - Section: debug - Priority: extra --Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-lms (= ${binary:Version}), osmo-trx-ipc (= ${binary:Version}), ${misc:Depends} -+Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-ipc (= ${binary:Version}), ${misc:Depends} - Description: Debug symbols for the osmo-trx-* - Make debugging possible - -@@ -72,25 +71,6 @@ Description: SDR transceiver that implements Layer 1 of a GSM BTS (USRP1) - between different telecommunication associations for developing new - generations of mobile phone networks. (post-2G/GSM) - --Package: osmo-trx-lms --Architecture: any --Depends: ${shlibs:Depends}, ${misc:Depends} --Description: SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite) -- OsmoTRX is a software-defined radio transceiver that implements the Layer 1 -- physical layer of a BTS comprising the following 3GPP specifications: -- . -- TS 05.01 "Physical layer on the radio path" -- TS 05.02 "Multiplexing and Multiple Access on the Radio Path" -- TS 05.04 "Modulation" -- TS 05.10 "Radio subsystem synchronization" -- . -- In this context, BTS is "Base transceiver station". It's the stations that -- connect mobile phones to the mobile network. -- . -- 3GPP is the "3rd Generation Partnership Project" which is the collaboration -- between different telecommunication associations for developing new -- generations of mobile phone networks. (post-2G/GSM) -- - Package: osmo-trx-ipc - Architecture: any - Depends: ${shlibs:Depends}, ${misc:Depends} -diff --git a/debian/rules b/debian/rules -index 5795643..5937c17 100755 ---- a/debian/rules -+++ b/debian/rules -@@ -9,7 +9,7 @@ override_dh_shlibdeps: - dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info - - override_dh_auto_configure: -- dh_auto_configure -- --with-uhd --with-usrp1 --with-lms --with-ipc --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals -+ dh_auto_configure -- --with-uhd --with-usrp1 --with-ipc --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals - - override_dh_strip: - dh_strip --dbg-package=osmo-trx-dbg diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 82063b7..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -# build-for-debian8.patch -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 Gerrit-Change-Number: 25312 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:46:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:46:26 +0000 Subject: Change in osmo-gsm-manuals[master]: d/patches/build-for-debian8.patch: remove References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Change-Id: I8285b8c483fe2d136b83946414587fc993d5f489 --- D debian/patches/build-for-debian8.patch 1 file changed, 0 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/13/25313/1 diff --git a/debian/patches/build-for-debian8.patch b/debian/patches/build-for-debian8.patch deleted file mode 100644 index 58f49c3..0000000 --- a/debian/patches/build-for-debian8.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/debian/control -+++ b/debian/control -@@ -7,7 +7,6 @@ Build-Depends: autotools-dev, - pkg-config, - # All below also need to be in Depends - asciidoc, -- asciidoc-dblatex, - dblatex, - docbook5-xml, - graphviz, -@@ -23,7 +22,6 @@ Package: osmo-gsm-manuals-dev - Architecture: all - Depends: ${misc:Depends}, - asciidoc, -- asciidoc-dblatex, - dblatex, - docbook5-xml, - graphviz, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 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: I8285b8c483fe2d136b83946414587fc993d5f489 Gerrit-Change-Number: 25313 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:46:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:46:39 +0000 Subject: Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25314 ) Change subject: OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 ...................................................................... OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 Drop these workarounds, as we are not building binary packages for debian 8 anymore. Related: OS#5223 Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/14/25314/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index bbdc5a1..e218f1e 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -196,12 +196,10 @@ checkout osmo-gbproxy cd "$TOP" - osmo_obs_checkout_copy debian8 osmo-gsm-manuals build osmocom-$FEED build limesuite --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals - build osmo-gsm-manuals-debian8 build libosmocore build libosmo-sccp build libosmo-abis diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index cd50c7d..d9fd996 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -227,13 +227,10 @@ checkout osmo-gbproxy cd "$REPO" - osmo_obs_checkout_copy debian8 osmo-gsm-manuals - osmo_obs_checkout_copy debian8 osmo-trx build osmocom-$FEED no_commit build limesuite no_commit --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals - build osmo-gsm-manuals-debian8 build libosmocore build libosmo-sccp build libosmo-abis @@ -247,7 +244,6 @@ build osmo-sgsn build osmo-pcap build osmo-trx - build osmo-trx-debian8 build osmo-sip-connector build osmo-bts build osmo-pcu -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 Gerrit-Change-Number: 25314 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:47:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:47:32 +0000 Subject: Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8 In-Reply-To: References: Message-ID: osmith has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-ci/+/25314 ) Change subject: OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 ...................................................................... OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 Drop these workarounds, as we are not building binary packages for debian 8 anymore. Related: OS#5223 Depends: osmo-trx I5519075a7f95fa61b0b5f1825e4e9324b9eede76 Depends: osmo-gsm-manuals I8285b8c483fe2d136b83946414587fc993d5f489 Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/14/25314/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 Gerrit-Change-Number: 25314 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:50:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:50:13 +0000 Subject: Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8 In-Reply-To: References: Message-ID: osmith has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-ci/+/25314 ) Change subject: OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 ...................................................................... OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 Drop these workarounds, as we are not building binary packages for debian 8 anymore. Related: OS#5223 Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/14/25314/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 Gerrit-Change-Number: 25314 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:50:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:50:41 +0000 Subject: Change in osmo-gsm-manuals[master]: d/patches/build-for-debian8.patch: remove In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 to look at the new patch set (#2). Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Depends: osmo-ci Ibe7ba124557969df62798ba49c4489e9606c2341 Change-Id: I8285b8c483fe2d136b83946414587fc993d5f489 --- D debian/patches/build-for-debian8.patch 1 file changed, 0 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/13/25313/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 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: I8285b8c483fe2d136b83946414587fc993d5f489 Gerrit-Change-Number: 25313 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:51:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:51:05 +0000 Subject: Change in osmo-trx[master]: d/patches/build-for-debian8.patch: remove In-Reply-To: References: Message-ID: osmith has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-trx/+/25312 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Depends: osmo-ci Ibe7ba124557969df62798ba49c4489e9606c2341 Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 --- D debian/patches/build-for-debian8.patch D debian/patches/series 2 files changed, 0 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/12/25312/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 Gerrit-Change-Number: 25312 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 14:59:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 14:59:04 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25123 ) Change subject: osmo_bsc_main: integrate MGW pooling into osmo-bsc ...................................................................... Patch Set 13: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Gerrit-Change-Number: 25123 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 01 Sep 2021 14:59:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:12:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:12:43 +0000 Subject: Change in osmo-trx[master]: d/patches/build-for-debian8.patch: remove 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/+/25312 to look at the new patch set (#3). Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Depends: osmo-ci Ibe7ba124557969df62798ba49c4489e9606c2341 Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 --- M contrib/jenkins.sh D debian/patches/build-for-debian8.patch D debian/patches/series 3 files changed, 0 insertions(+), 66 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/12/25312/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 Gerrit-Change-Number: 25312 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:15:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:15:09 +0000 Subject: Change in osmo-pcu[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25308 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25308 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15: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 Wed Sep 1 15:15:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:15:13 +0000 Subject: Change in osmo-pcu[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25308 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index a8eae93..0e12f2e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>= 9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25308 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25308 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:05 +0000 Subject: Change in osmo-sgsn[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25310 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25310 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:16: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 Sep 1 15:16:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:07 +0000 Subject: Change in osmo-sgsn[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25310 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index abc7595..bc9c8ab 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25310 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:14 +0000 Subject: Change in openbsc[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/openbsc/+/25304 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/25304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25304 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:16:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:19 +0000 Subject: Change in openbsc[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/openbsc/+/25304 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index b9008ef..c176bee 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,6 @@ pkg-config, libdbi0-dev, dh-autoreconf, - dh-systemd (>= 1.5), libsmpp34-dev (>= 1.13.0), libosmocore-dev (>= 1.0.1), libosmo-abis-dev (>= 0.6.0), -- To view, visit https://gerrit.osmocom.org/c/openbsc/+/25304 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25304 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:23 +0000 Subject: Change in osmo-remsim[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25309 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25309 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:16: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 Sep 1 15:16:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:28 +0000 Subject: Change in osmo-remsim[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25309 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index daa8dc6..bdae589 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, osmo-gsm-manuals-dev, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25309 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25309 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:37 +0000 Subject: Change in osmo-bts[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25305 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25305 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:16:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:39 +0000 Subject: Change in osmo-bts[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25305 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index 5a42d19..3b8098b 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25305 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25305 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:45 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:45 +0000 Subject: Change in osmo-sip-connector[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25311 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25311 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:16:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:48 +0000 Subject: Change in osmo-sip-connector[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25311 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index 0de3953..cdcd470 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,6 @@ pkg-config, libsofia-sip-ua-glib-dev, libsofia-sip-ua-dev, - dh-systemd (>= 1.5), dh-autoreconf, libosmocore-dev (>= 1.5.0), osmo-gsm-manuals-dev -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25311 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25311 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:54 +0000 Subject: Change in osmo-hlr[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25307 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25307 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:16:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:16:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:16:57 +0000 Subject: Change in osmo-hlr[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25307 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index 104799b..68bd475 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, python3-minimal, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25307 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25307 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:17:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:17:02 +0000 Subject: Change in osmo-gbproxy[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25306 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25306 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15: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 Wed Sep 1 15:17:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:17:05 +0000 Subject: Change in osmo-gbproxy[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25306 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/debian/control b/debian/control index cf70307..2bdb50e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25306 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25306 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:17:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:17:09 +0000 Subject: Change in cellmgr-ng[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 Pau gave +1 in chat / trivial patch -> merging -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 Gerrit-Change-Number: 25303 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 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 Wed Sep 1 15:17:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:17:56 +0000 Subject: Change in cellmgr-ng[master]: debian/control: put build-depends in own lines In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 ) Change subject: debian/control: put build-depends in own lines ...................................................................... Patch Set 1: Verified+1 Code-Review+2 trivial patch. build failure is unrelated, the project is abandoned. I think it's still nice to have the build depends right in case somebody wants to build it, and then we have it consistent. -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I5d085695d4bdd2aaac4105c129e423d27be63a3e Gerrit-Change-Number: 25302 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15: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 Wed Sep 1 15:18:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:18:03 +0000 Subject: Change in cellmgr-ng[master]: debian/control: put build-depends in own lines In-Reply-To: References: Message-ID: osmith has removed a vote from this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 ) Change subject: debian/control: put build-depends in own lines ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I5d085695d4bdd2aaac4105c129e423d27be63a3e Gerrit-Change-Number: 25302 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:18:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:18:18 +0000 Subject: Change in cellmgr-ng[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has removed a vote from this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 Gerrit-Change-Number: 25303 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:18:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:18:28 +0000 Subject: Change in cellmgr-ng[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Verified+1 see reasoning in previous patch -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 Gerrit-Change-Number: 25303 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 01 Sep 2021 15:18:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:18:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:18:32 +0000 Subject: Change in cellmgr-ng[master]: debian/control: put build-depends in own lines In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 ) Change subject: debian/control: put build-depends in own lines ...................................................................... debian/control: put build-depends in own lines Related: OS#5223 Change-Id: I5d085695d4bdd2aaac4105c129e423d27be63a3e --- M debian/control 1 file changed, 9 insertions(+), 1 deletion(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/debian/control b/debian/control index 0f4c286..e630326 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,15 @@ Section: net Priority: optional Maintainer: Holger Hans Peter Freyther -Build-Depends: debhelper (>= 9), autotools-dev, pkg-config, libosmocore-dev, libosmo-sccp-dev, dh-autoreconf, dh-systemd (>= 1.5), libsnmp-dev, libsctp-dev +Build-Depends: debhelper (>= 9), + autotools-dev, + pkg-config, + libosmocore-dev, + libosmo-sccp-dev, + dh-autoreconf, + dh-systemd (>= 1.5), + libsnmp-dev, + libsctp-dev Standards-Version: 3.9.6 Homepage: http://openbsc.osmocom.org/ Vcs-Git: git://bs11-abis.gnumonks.org/cellmgr-ng.git -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25302 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I5d085695d4bdd2aaac4105c129e423d27be63a3e Gerrit-Change-Number: 25302 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 15:18:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 1 Sep 2021 15:18:33 +0000 Subject: Change in cellmgr-ng[master]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/debian/control b/debian/control index e630326..9098678 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,6 @@ libosmocore-dev, libosmo-sccp-dev, dh-autoreconf, - dh-systemd (>= 1.5), libsnmp-dev, libsctp-dev Standards-Version: 3.9.6 -- To view, visit https://gerrit.osmocom.org/c/cellmgr-ng/+/25303 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: cellmgr-ng Gerrit-Branch: master Gerrit-Change-Id: I90c4723034a7fcd29421ef825b958dbdbb594dc2 Gerrit-Change-Number: 25303 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 1 17:43:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 17:43:40 +0000 Subject: Change in osmo-trx[master]: detectBurst(): Clear downsampling code path References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25315 ) Change subject: detectBurst(): Clear downsampling code path ...................................................................... detectBurst(): Clear downsampling code path downsampleBurst() and the Resampler below it clearly only support or are confgiured for 1<->4 setup currently. Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 12 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/15/25315/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index b7c41ba..ff5e32f 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -34,6 +34,7 @@ #include "Resampler.h" extern "C" { +#include #include "convolve.h" #include "scale.h" #include "mult.h" @@ -1500,12 +1501,18 @@ complex xcorr; int rc = 1; - if (sps == 4) { - dec = downsampleBurst(burst); - corr_in = dec; - sps = 1; - } else { + switch (sps) { + case 1: corr_in = &burst; + break; + case 4: + dec = downsampleBurst(burst); + /* Running at the downsampled rate at this point: */ + corr_in = dec; + sps = 1; + break; + default: + osmo_panic("%s:%d SPS %d not supported! Only 1 or 4 supported", __FILE__, __LINE__, sps); } /* Correlate */ @@ -1515,9 +1522,6 @@ goto del_ret; } - /* Running at the downsampled rate at this point */ - sps = 1; - /* Peak detection - place restrictions at correlation edges */ ebp->amp = fastPeakDetect(corr, &ebp->toa); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82 Gerrit-Change-Number: 25315 Gerrit-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 Sep 1 17:46:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 17:46:53 +0000 Subject: Change in osmo-trx[master]: detectBurst(): constify parameter References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25316 ) Change subject: detectBurst(): constify parameter ...................................................................... detectBurst(): constify parameter Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/16/25316/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index ff5e32f..fa8a407 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1461,7 +1461,7 @@ * It is computed from the training sequence of each received burst, * by comparing the "ideal" training sequence with the actual one. */ -static float computeCI(const signalVector *burst, CorrelationSequence *sync, +static float computeCI(const signalVector *burst, const CorrelationSequence *sync, float toa, int start, complex xcorr) { float S, C; @@ -1492,7 +1492,7 @@ * and we run full interpolating peak detection. */ static int detectBurst(const signalVector &burst, - signalVector &corr, CorrelationSequence *sync, + signalVector &corr, const CorrelationSequence *sync, float thresh, int sps, int start, int len, struct estim_burst_params *ebp) { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694 Gerrit-Change-Number: 25316 Gerrit-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 Sep 1 17:51:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 17:51:30 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify param and pass it as reference References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25317 ) Change subject: computeCI(): Constify param and pass it as reference ...................................................................... computeCI(): Constify param and pass it as reference Change-Id: Icba5fce57c858bd16196ae3012c100c7e4134335 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/17/25317/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index fa8a407..7169a15 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1462,7 +1462,7 @@ * by comparing the "ideal" training sequence with the actual one. */ static float computeCI(const signalVector *burst, const CorrelationSequence *sync, - float toa, int start, complex xcorr) + float toa, int start, const complex &xcorr) { float S, C; int ps; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Icba5fce57c858bd16196ae3012c100c7e4134335 Gerrit-Change-Number: 25317 Gerrit-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 Sep 1 18:09:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 18:09:17 +0000 Subject: Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25318 ) Change subject: computeCI(): Rename verbose repeated getter to constant ...................................................................... computeCI(): Rename verbose repeated getter to constant Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/18/25318/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 7169a15..1a72e00 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1464,20 +1464,21 @@ static float computeCI(const signalVector *burst, const CorrelationSequence *sync, float toa, int start, const complex &xcorr) { + const int N = sync->sequence->size(); float S, C; int ps; /* Integer position where the sequence starts */ - ps = start + 1 - sync->sequence->size() + (int)roundf(toa); + ps = start + 1 - N + (int)roundf(toa); /* Estimate Signal power */ S = 0.0f; - for (int i=0, j=ps; i<(int)sync->sequence->size(); i++,j++) + for (int i=0, j=ps; i<(int)N; i++,j++) S += (*burst)[j].norm2(); - S /= sync->sequence->size(); + S /= N; /* Esimate Carrier power */ - C = xcorr.norm2() / ((sync->sequence->size() - 1) * sync->gain.abs()); + C = xcorr.norm2() / ((N - 1) * sync->gain.abs()); /* Interference = Signal - Carrier, so C/I = C / (S - C) */ return 3.0103f * log2f(C / (S - C)); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475 Gerrit-Change-Number: 25318 Gerrit-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 Sep 1 18:10:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 18:10:07 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify read-only variable References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25319 ) Change subject: computeCI(): Constify read-only variable ...................................................................... computeCI(): Constify read-only variable Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/19/25319/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 1a72e00..b3e3969 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1466,10 +1466,8 @@ { const int N = sync->sequence->size(); float S, C; - int ps; - /* Integer position where the sequence starts */ - ps = start + 1 - N + (int)roundf(toa); + const int ps = start + 1 - N + (int)roundf(toa); /* Estimate Signal power */ S = 0.0f; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988 Gerrit-Change-Number: 25319 Gerrit-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 Sep 1 18:38:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 18:38:24 +0000 Subject: Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25320 ) Change subject: detectGeneralBurst(): Increase log level about clipping to INFO ...................................................................... detectGeneralBurst(): Increase log level about clipping to INFO There's another related logging line also at INFO level in the caller path in Transceiver.cpp, but it only prints if detectBurst() failed. Let's print this one as INFO too, which proved to be a good logging level. This way user also notices gain is too high despite osmo-trx is still able to decode bursts. Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/20/25320/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index b3e3969..91d1677 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1589,7 +1589,7 @@ // and only report clipping if we can't demod. float maxAmpl = maxAmplitude(rxBurst); if (maxAmpl > CLIP_THRESH) { - LOG(DEBUG) << "max burst amplitude: " << maxAmpl << " is above the clipping threshold: " << CLIP_THRESH << std::endl; + LOG(INFO) << "max burst amplitude: " << maxAmpl << " is above the clipping threshold: " << CLIP_THRESH << std::endl; clipping = true; } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25320 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9 Gerrit-Change-Number: 25320 Gerrit-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 Sep 1 18:43:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 1 Sep 2021 18:43:05 +0000 Subject: Change in osmo-trx[master]: cosmetic: Fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25321 ) Change subject: cosmetic: Fix typo in comment ...................................................................... cosmetic: Fix typo in comment Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/21/25321/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 91d1677..21978ff 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1865,7 +1865,7 @@ * delay filters. Symbol rotation and after always operates at 1 SPS. * * Allow 1 SPS demodulation here, but note that other parts of the - * transceiver restrict EDGE operatoin to 4 SPS - 8-PSK distortion + * transceiver restrict EDGE operation to 4 SPS - 8-PSK distortion * through the fractional delay filters at 1 SPS renders signal * nearly unrecoverable. */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25321 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111 Gerrit-Change-Number: 25321 Gerrit-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 Sep 2 07:09:37 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:09:37 +0000 Subject: Change in osmo-trx[master]: cosmetic: Fix typo in comment In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25321 ) Change subject: cosmetic: Fix typo in comment ...................................................................... Patch Set 1: Code-Review+1 oi! -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25321 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111 Gerrit-Change-Number: 25321 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07:09: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 Sep 2 07:15:39 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:15:39 +0000 Subject: Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25320 ) Change subject: detectGeneralBurst(): Increase log level about clipping to INFO ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25320 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9 Gerrit-Change-Number: 25320 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07: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 Thu Sep 2 07:18:15 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:18:15 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify read-only variable In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25319 ) Change subject: computeCI(): Constify read-only variable ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988 Gerrit-Change-Number: 25319 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07:18:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 07:24:24 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:24:24 +0000 Subject: Change in osmo-trx[master]: detectBurst(): constify parameter In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25316 ) Change subject: detectBurst(): constify parameter ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694 Gerrit-Change-Number: 25316 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07:24:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 07:30:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:30:09 +0000 Subject: Change in osmo-trx[master]: detectBurst(): Clear downsampling code path In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25315 ) Change subject: detectBurst(): Clear downsampling code path ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82 Gerrit-Change-Number: 25315 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07:30:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 07:31:22 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:31:22 +0000 Subject: Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25318 ) Change subject: computeCI(): Rename verbose repeated getter to constant ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475 Gerrit-Change-Number: 25318 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07:31:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 07:51:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:51:12 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25268/3/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/25268/3/include/osmo-bts/gsm_data.h at 221 PS3, Line 221: struct gsm_power_ctrl_meas_params ci_gprs_meas; not ci_pdch_meas ? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 07:51: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 Sep 2 07:55:48 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 07:55:48 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25295 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25295/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25295/1//COMMIT_MSG at 9 PS1, Line 9: When the AMR voice frame that is received from the MS via the radio > likely just the 'that' needs removal. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25295 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 07:55:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: fixeria Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 08:09:37 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 08:09:37 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: fix typo in doxygen comment References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25322 ) Change subject: mgcp_client: fix typo in doxygen comment ...................................................................... mgcp_client: fix typo in doxygen comment Change-Id: I4431502ebbaa980f2abfdb98acba0f55ca658292 --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/22/25322/1 diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 2bed90f..74b9cf7 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -1492,7 +1492,7 @@ return (mgcp_trans_id_t)msg->cb[MSGB_CB_MGCP_TRANS_ID]; } -/*! Get the configuration parameters a given MGCP client instance +/*! Get the configuration parameters for a given MGCP client instance * \param[in] mgcp MGCP client descriptor. * \returns configuration */ struct mgcp_client_conf *mgcp_client_conf_actual(struct mgcp_client *mgcp) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4431502ebbaa980f2abfdb98acba0f55ca658292 Gerrit-Change-Number: 25322 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 Sep 2 11:18:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 11:18:50 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25268/3/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/25268/3/include/osmo-bts/gsm_data.h at 221 PS3, Line 221: struct gsm_power_ctrl_meas_params ci_gprs_meas; > not ci_pdch_meas ? Well the distribution is not strictly "GSM logical channels", and I'm anyway following the book's table wrt naming. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 11:18:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 11:19:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 11:19:07 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: fix typo in doxygen comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25322 ) Change subject: mgcp_client: fix typo in doxygen comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4431502ebbaa980f2abfdb98acba0f55ca658292 Gerrit-Change-Number: 25322 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 11:19:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 11:31:32 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 11:31:32 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25268/3/include/osmo-bts/gsm_data.h File include/osmo-bts/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bts/+/25268/3/include/osmo-bts/gsm_data.h at 221 PS3, Line 221: struct gsm_power_ctrl_meas_params ci_gprs_meas; > Well the distribution is not strictly "GSM logical channels", and I'm anyway following the book's ta [?] Thanks for the explanation. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 11:31:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 12:44:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 12:44:07 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 to look at the new patch set (#4). Change subject: MS Power Control Loop: Take C/I into account ...................................................................... MS Power Control Loop: Take C/I into account This commit extends existing MW Power Control Loop algorithm to take into account computed C/I values on the UL, received from MS. The related C/I parameters used by the algorithm are configured at and provided by the BSC, which transmits them to the BTS similar to already existing parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/gsm_data.c M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 10 files changed, 417 insertions(+), 138 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/25268/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 14:42:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 14:42:17 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: fix typo in doxygen comment In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25322 ) Change subject: mgcp_client: fix typo in doxygen comment ...................................................................... mgcp_client: fix typo in doxygen comment Change-Id: I4431502ebbaa980f2abfdb98acba0f55ca658292 --- M src/libosmo-mgcp-client/mgcp_client.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 2bed90f..74b9cf7 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -1492,7 +1492,7 @@ return (mgcp_trans_id_t)msg->cb[MSGB_CB_MGCP_TRANS_ID]; } -/*! Get the configuration parameters a given MGCP client instance +/*! Get the configuration parameters for a given MGCP client instance * \param[in] mgcp MGCP client descriptor. * \returns configuration */ struct mgcp_client_conf *mgcp_client_conf_actual(struct mgcp_client *mgcp) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25322 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4431502ebbaa980f2abfdb98acba0f55ca658292 Gerrit-Change-Number: 25322 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 14:42:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 2 Sep 2021 14:42:35 +0000 Subject: Change in osmo-trx[master]: cosmetic: Fix typo in comment In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25321 ) Change subject: cosmetic: Fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25321 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111 Gerrit-Change-Number: 25321 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 14:42:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 15:34:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 15:34:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25144/2/src/gb/gprs_ns_sns.c File src/gb/gprs_ns_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/25144/2/src/gb/gprs_ns_sns.c at 276 PS2, Line 276: enum gprs_ns2_sns_event { > maybe it makes sense to do the renaming in a different patch - this would be easier/faster to review [?] The gprs_ns2_ is used for other types which are visible outside the file. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 15:34:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 15:35:36 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 15:35:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: dont use llist_for_each when freeing an element In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25147 ) Change subject: gprs_ns2: dont use llist_for_each when freeing an element ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/25147/1/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/25147/1/src/gb/gprs_ns2.c at 680 PS1, Line 680: while (!llist_empty(&nse->nsvc)) { > would be good to explain in a comment why we don't use the normal llist_for_each_entry_safe here. [?] Ack https://gerrit.osmocom.org/c/libosmocore/+/25147/1/src/gb/gprs_ns2.c at 1490 PS1, Line 1490: > looks like moving this free loop is fixing a separate issue? That is true. It fixes an issue that a new nsvc might be created over a bind to be removed. So better remove the bind from the entry list first before removing the nsvc. The problem is the same. Reacting on events which could be produced by removing a NSVC. I'll move this into a separate patch. https://gerrit.osmocom.org/c/libosmocore/+/25147/1/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/25147/1/src/gb/gprs_ns2_sns.c at 1584 PS1, Line 1584: while (!llist_empty(&nse->nsvc)) { > is this because gprs_ns2_free_nsvc() may free multiple nsvc from the list so that it is impossible t [?] Recursive events could happen. E.g. the user (the upper stack or gbproxy, sgsn, ..) might free the NSVC when receiving an UNAVAILABLE/DOWN event which could produce a loop. To be on the safe side I've changed free'ing it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-Comment-Date: Thu, 02 Sep 2021 15:35:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: laforge Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 16:48:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 16:48:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23187 ) Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... Patch Set 12: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/23187/10/src/gb/gprs_ns2_internal.h File src/gb/gprs_ns2_internal.h: https://gerrit.osmocom.org/c/libosmocore/+/23187/10/src/gb/gprs_ns2_internal.h at 79 PS10, Line 79: NS_TOUT_TSNS_PROCEDURES_RETRIES, > Add a NS_TOUT_MAX here and #define NS_TIMERS_COUNT NS_TOUT_MAX? i'll add this in a separate commit. https://gerrit.osmocom.org/c/libosmocore/+/23187/8/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/23187/8/src/gb/gprs_ns2_sns.c at 2648 PS8, Line 2648: case 5: > I would use the states as timer reference. Ack https://gerrit.osmocom.org/c/libosmocore/+/23187/10/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/23187/10/src/gb/gprs_ns2_sns.c at 109 PS10, Line 109: { GPRS_SNS_EV_REQ_CHANGE_WEIGHT, "REQ_UPDATE_WEIGHT"}, > Change weight vs. [?] Done https://gerrit.osmocom.org/c/libosmocore/+/23187/10/src/gb/gprs_ns2_sns.c at 1521 PS10, Line 1521: break; > maybe I should remove this one Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 16:48:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 16:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 16:59:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures ...................................................................... Patch Set 9: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c at 1968 PS7, Line 1968: OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS); > Not sure if this really holds true, we should ensure that we don't accidentally abort here. Done https://gerrit.osmocom.org/c/libosmocore/+/24123/7/src/gb/gprs_ns2_sns.c at 1976 PS7, Line 1976: (void *) 1 > Can we have a #define for this so it's clear what the 1 actually means? [?] Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Thu, 02 Sep 2021 16:59:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:25:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events 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/+/25144 to look at the new patch set (#3). Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... gprs_ns2: move sns_event into internal.h to direct emit events When other parts of ns2 requires to emit an event to the SNS fsm it would need a proxy function because the events are private to the SNS file. To circumvent creating multiple proxy function make the events available via a header file. Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 2 files changed, 17 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/25144/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:25:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2: dont use llist_for_each when freeing an element In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25147 to look at the new patch set (#3). Change subject: gprs_ns2: dont use llist_for_each when freeing an element ...................................................................... gprs_ns2: dont use llist_for_each when freeing an element The problem are recursive execution because a free generates an event which could allow the use to free a nsvcs while the llist_for_each() is still running. Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 29 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/25147/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:25:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23187 to look at the new patch set (#13). Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... gprs_ns2_sns: implement local change weight procedure When changing the bind ip-sns weight, initiate a SNS CHANGE WEIGHT procedure to inform the other side. Related: OS#5036 Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 461 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23187/13 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:25:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#10). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures ...................................................................... gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 193 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:25:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:25:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24591 to look at the new patch set (#7). Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... gprs_ns2_sns: implement outbound SNS DEL procedures When removing a bind the remote side needs to be informed via the SNS DELETE procedure. Related: OS#5036 Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 --- M src/gb/gprs_ns2_sns.c 1 file changed, 76 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/24591/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:25:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:25:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing n... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25323 ) Change subject: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs ...................................................................... gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs When removing NSVCs before removing the bind from the SNS list, the removing NSVCs could trigger a creation of a new NSVC on the same bind ending in a while(true) loop. Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 --- M src/gb/gprs_ns2.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/25323/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 3284cd6..417b9a0 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1485,18 +1485,18 @@ return; bind->freed = true; - /* prevent recursive free() because of events user/fsm */ - while (!llist_empty(&bind->nsvc)) { - nsvc = llist_first_entry(&bind->nsvc, struct gprs_ns2_vc, blist); - gprs_ns2_free_nsvc(nsvc); - } - if (gprs_ns2_is_ip_bind(bind)) { llist_for_each_entry(nse, &bind->nsi->nse, list) { gprs_ns2_sns_del_bind(nse, bind); } } + /* prevent recursive free() because of events user/fsm */ + while (!llist_empty(&bind->nsvc)) { + nsvc = llist_first_entry(&bind->nsvc, struct gprs_ns2_vc, blist); + gprs_ns2_free_nsvc(nsvc); + } + if (bind->driver->free_bind) bind->driver->free_bind(bind); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 Gerrit-Change-Number: 25323 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 Sep 2 17:30:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:30:49 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23187 to look at the new patch set (#14). Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... gprs_ns2_sns: implement local change weight procedure When changing the bind ip-sns weight, initiate a SNS CHANGE WEIGHT procedure to inform the other side. Related: OS#5036 Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 461 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23187/14 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:31:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:31:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25145 ) Change subject: gprs_ns2_sns: rework sns clean up ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25145/2/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/25145/2/src/gb/gprs_ns2_sns.c at 2074 PS2, Line 2074: gprs_ns2_free_nsvc(nsvc); > I have seen that the freeing is done differently in this patch: https://gerrit.osmocom. [?] The free it different patch comes after this. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b Gerrit-Change-Number: 25145 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:31:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:35:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 2 Sep 2021 17:35:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25147 to look at the new patch set (#4). Change subject: gprs_ns2: don't use llist_for_each when freeing an element ...................................................................... gprs_ns2: don't use llist_for_each when freeing an element The problem are recursive execution because a free generates an event which could allow the use to free a nsvcs while the llist_for_each() is still running. Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 28 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/25147/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:39:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:39:50 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 4: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25268/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25268/4//COMMIT_MSG at 15 PS4, Line 15: due not important to document this here in the commit log, but the primary reason to do C/I based power control is to improve performance in interference limited environments. You are either power limited (rural scenarion with little interference) or interference limited (dense urban environment with lots of interference from neighbor cells with reuse of same ARFCN in little distance).I https://gerrit.osmocom.org/c/osmo-bts/+/25268/4/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/25268/4/src/common/rsl.c at 920 PS4, Line 920: LOGP(DRSL, LOGL_ERROR, " tlv_parse2 failed!!! rc=%d\n", rc); unrelated change, but not a blocker. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 17:39: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 Sep 2 17:40:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:40:16 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25295 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25295 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17:40:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:42:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:42:52 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25296 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... Patch Set 4: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_lchan_tchf.c File src/osmo-bts-trx/sched_lchan_tchf.c: https://gerrit.osmocom.org/c/osmo-bts/+/25296/1/src/osmo-bts-trx/sched_lchan_tchf.c at 470 PS1, Line 470: LOGL1SB(DL1P, LOGL_NOTICE, l1ts, br, "Codec (FT = %d) " > An RTP packet which has a different FT than the packet before arrives at the BTS. But at that moment the transmission phase is at CMR. In this situation we are unable to encode the AMR block for the radio interface because we have no way to encode the new FT into that block. All we can do is to encode a bad frame and go ahead. In the next round the transmission phase will be at FT and we can encode the new FT and everything is fine again. thanks for the explanation, makes perfect sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17:42:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:43:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:43:12 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25297 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25297 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17: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 Sep 2 17:43:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:43:15 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25295 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... sched_lchan_tch_x: do not use cmr as ft CMR and FT are updated each time an AMR voice frame is received from the radio interface. The transmission phase decides whether the voice frame contains CMR or FT. The code follows the transmission phase and keeps ul_cmr and ul_ft up to date. In contrast to the AMR frames on the radio interface, an AMR RTP packet always contains the CMR and the FT value. When generating the RTP payloed, The present implementation uses the CMR in the position where the FT should be and the FT is ignored. This is not correct. Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 8e6298c..00efcf8 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -186,7 +186,7 @@ /* 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]; + ft = chan_state->codec[chan_state->ul_ft]; } else { /* SID frames will always get Frame Type Index 8 (AMR_SID) */ ft = AMR_SID; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index bfebb66..9402204 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -210,7 +210,7 @@ /* 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]; + ft = chan_state->codec[chan_state->ul_ft]; } else { /* SID frames will always get Frame Type Index 8 (AMR_SID) */ ft = AMR_SID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25295 Gerrit-PatchSet: 3 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 Sep 2 17:43:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:43:16 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25296 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... sched_lchan_tch_x: use functions to determine AMR tranmssion phase The AMR transmission phase directly depends on the frame number. The transmission phase is used to tell if a received AMR frame contains a CMI (frame type that is currently used) or CMR (frame type that the receiver should use) codec identifier. The formulas in the present implementation seem to be correct but they do not reflect the numbers in the spec very well, nor do they have unit-tests. Lets replace them with more readble functions and test those functions with unit-tests. Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Related: SYS#5549 --- M configure.ac M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_utils.h M tests/Makefile.am A tests/amr/Makefile.am A tests/amr/amr_test.c A tests/amr/amr_test.ok M tests/testsuite.at 9 files changed, 416 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/configure.ac b/configure.ac index 1b4c6e7..4f2e889 100644 --- a/configure.ac +++ b/configure.ac @@ -411,6 +411,7 @@ tests/tx_power/Makefile tests/power/Makefile tests/meas/Makefile + tests/amr/Makefile doc/Makefile doc/examples/Makefile doc/manuals/Makefile diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 00efcf8..c5d60e4 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -65,6 +65,7 @@ uint16_t ber10k; uint8_t is_sub = 0; uint8_t ft; + bool amr_is_cmr; /* 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. */ @@ -129,6 +130,8 @@ * the first FN 4,13,21 defines that CMR is included in frame. * NOTE: A frame ends 7 FN after start. */ + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); + amr_is_cmr = !ul_amr_fn_is_cmi(fn_begin); /* The AFS_ONSET frame itself does not result into an RTP frame * since it only contains a recognition pattern that marks the @@ -144,8 +147,7 @@ * 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, + amr_is_cmr, 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 @@ -419,6 +421,7 @@ enum osmo_amr_type ft_codec; enum osmo_amr_quality bfi; int8_t sti, cmi; + bool amr_is_cmr = !dl_amr_fn_is_cmi(br->fn); if (rsl_cmode != RSL_CMOD_SPD_SPEECH) { LOGL1SB(DL1P, LOGL_NOTICE, l1ts, br, "Dropping speech frame, " @@ -463,7 +466,7 @@ "Codec (FT = %d) of RTP frame not in list\n", ft_codec); goto free_bad_msg; } - if (fn_is_codec_mode_request(br->fn) && chan_state->dl_ft != ft) { + if (amr_is_cmr && chan_state->dl_ft != ft) { LOGL1SB(DL1P, LOGL_NOTICE, l1ts, br, "Codec (FT = %d) " " of RTP cannot be changed now, but in next frame\n", ft_codec); goto free_bad_msg; @@ -552,7 +555,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(br->fn), + msgb_l2len(msg_tch) - 2, !dl_amr_fn_is_cmi(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 9402204..2106a67 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -72,6 +72,7 @@ uint8_t is_sub = 0; uint8_t ft; bool mask_stolen_tch_block = false; + bool fn_is_cmi; /* 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. */ @@ -164,10 +165,21 @@ break; } + /* Calculate the frame number where the block begins */ + if (bi->fn % 13 < 4) + fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 5); + else + fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 4); + if (lchan->nr == 0) + fn_begin = gsm0502_fn_remap(fn_tch_end, FN_REMAP_TCH_H0); + else + fn_begin = gsm0502_fn_remap(fn_tch_end, FN_REMAP_TCH_H1); + fn_is_cmi = ul_amr_fn_is_cmi(fn_begin); + /* 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, + fn_is_odd, !fn_is_cmi, chan_state->codec, chan_state->codecs, &chan_state->ul_ft, &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); @@ -343,7 +355,6 @@ fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 5); else fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 4); - if (lchan->nr == 0) fn_begin = gsm0502_fn_remap(fn_tch_end, FN_REMAP_TCH_H0); else @@ -441,7 +452,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(br->fn), + msgb_l2len(msg_tch) - 2, !dl_amr_fn_is_cmi(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); diff --git a/src/osmo-bts-trx/sched_utils.h b/src/osmo-bts-trx/sched_utils.h index 4a1aaf5..f76e49b 100644 --- a/src/osmo-bts-trx/sched_utils.h +++ b/src/osmo-bts-trx/sched_utils.h @@ -23,6 +23,8 @@ #include #include +#include +#include extern void *tall_bts_ctx; @@ -35,8 +37,76 @@ 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) +/*! determine whether an uplink AMR block is CMI according to 3GPP TS 45.009. + * \param[in] fn_begin frame number of the beginning of the block. + * \returns true in case of CMI; false otherwise. */ +static inline bool ul_amr_fn_is_cmi(uint32_t fn_begin) { - return (((fn + 4) % 26) >> 2) & 1; + switch (fn_begin % 26) { + /*! See also: 3GPP TS 45.009, section 3.2.1.3 Transmitter/Receiver Synchronisation */ + /* valid for AHS subslot 0 and AFS: */ + case 0: + case 8: + case 17: + /* valid for AHS subslot 1: */ + case 1: + case 9: + case 18: + return true; + break; + /* Complementary values for sanity check */ + /* valid for AHS subslot 0 and AFS: */ + case 4: + case 13: + case 21: + /* valid for AHS subslot 1: */ + case 5: + case 14: + case 22: + return false; + break; + default: + LOGP(DL1P, LOGL_DEBUG, + "uplink frame number fn_begin=%u does not mark the beginning of a voice block!\n", fn_begin); + OSMO_ASSERT(false); + return false; + break; + } +} + +/*! determine the whether a downlink AMR block is CMI according to 3GPP TS 45.009. + * \param[in] fn_begin frame number of the beginning of the block. + * \returns true in case of CMI; false otherwise. */ +static inline bool dl_amr_fn_is_cmi(uint32_t fn_begin) +{ + switch (fn_begin % 26) { + /*! See also: 3GPP TS 45.009, section 3.2.1.3 Transmitter/Receiver Synchronisation */ + /* valid for AHS subslot 0 and AFS: */ + case 4: + case 13: + case 21: + /* valid for AHS subslot 1: */ + case 5: + case 14: + case 22: + return true; + break; + /* Complementary values for sanity check */ + /* valid for AHS subslot 0 and AFS: */ + case 0: + case 8: + case 17: + /* valid for AHS subslot 1: */ + case 1: + case 9: + case 18: + return false; + break; + default: + LOGP(DL1P, LOGL_DEBUG, + "downlink frame number fn_begin=%u does not mark the beginning of a voice block!\n", fn_begin); + OSMO_ASSERT(false); + return false; + break; + } } diff --git a/tests/Makefile.am b/tests/Makefile.am index 8d19e6e..a1d04a7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = paging cipher agch misc handover tx_power power meas ta_control +SUBDIRS = paging cipher agch misc handover tx_power power meas ta_control amr if ENABLE_SYSMOBTS SUBDIRS += sysmobts diff --git a/tests/amr/Makefile.am b/tests/amr/Makefile.am new file mode 100644 index 0000000..dc0f1b8 --- /dev/null +++ b/tests/amr/Makefile.am @@ -0,0 +1,11 @@ +AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include +AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOCODEC_CFLAGS) \ + $(LIBOSMOABIS_CFLAGS) $(LIBOSMOTRAU_CFLAGS) +LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOCODEC_LIBS) \ + $(LIBOSMOABIS_LIBS) $(LIBOSMOTRAU_LIBS) +noinst_PROGRAMS = amr_test +EXTRA_DIST = amr_test.ok + +misc_test_SOURCES = amr_test.c +misc_test_LDADD = $(top_builddir)/src/common/libbts.a \ + $(LDADD) diff --git a/tests/amr/amr_test.c b/tests/amr/amr_test.c new file mode 100644 index 0000000..4efbf40 --- /dev/null +++ b/tests/amr/amr_test.c @@ -0,0 +1,151 @@ +/* (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 "../../src/osmo-bts-trx/sched_utils.h" + +struct amr_cmi_test_data { + /* Frame number that marks the beginning of the voice block */ + uint32_t gsm_fn; + /* In uplink: True, when the voice block is a CMI block, false otherwise. */ + /* In downlink: False, when the voice block is a CMI block, true otherwise. */ + bool is_cmi; +}; + +/* The behavior of AHS in subslot 0 and AFS is the same */ +static const struct amr_cmi_test_data testvec_ahs_h0_and_afs[] = { + { 0, true }, + { 4, false }, + { 8, true }, + { 13, false }, + { 17, true }, + { 21, false }, + { 26, true }, + { 30, false }, + { 34, true }, + { 39, false }, + { 43, true }, + { 47, false }, + { 52, true }, + { 56, false }, + { 60, true }, + { 65, false }, + { 69, true }, + { 73, false }, + { 78, true }, + { 82, false }, + { 86, true }, + { 91, false }, + { 95, true }, + { 99, false }, +}; + +static const struct amr_cmi_test_data testvec_ahs_h1[] = { + { 1, true }, + { 5, false }, + { 9, true }, + { 14, false }, + { 18, true }, + { 22, false }, + { 27, true }, + { 31, false }, + { 35, true }, + { 40, false }, + { 44, true }, + { 48, false }, + { 53, true }, + { 57, false }, + { 61, true }, + { 66, false }, + { 70, true }, + { 74, false }, + { 79, true }, + { 83, false }, + { 87, true }, + { 92, false }, + { 96, true }, + { 100, false }, +}; + +static void test_amr_cmi_sched(void) +{ + unsigned int i; + bool res; + + printf("AMR transmission phase (CMI) in relation to GSM FN:\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = ul_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Uplink, AMR AHS on HR subslot 0: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == testvec_ahs_h0_and_afs[i].is_cmi); + } + + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = dl_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Downlink, AMR AHS on HR subslot 0: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == !testvec_ahs_h0_and_afs[i].is_cmi); + } + + printf("\n"); + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h1); i++) { + res = ul_amr_fn_is_cmi(testvec_ahs_h1[i].gsm_fn); + printf("Uplink, AMR AHS on HR subslot 1: fn_begin=%u, CMI=%u\n", testvec_ahs_h1[i].gsm_fn, res); + OSMO_ASSERT(res == testvec_ahs_h1[i].is_cmi); + } + + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h1); i++) { + res = dl_amr_fn_is_cmi(testvec_ahs_h1[i].gsm_fn); + printf("Downlink, AMR AHS on HR subslot 1: fn_begin=%u, CMI=%u\n", testvec_ahs_h1[i].gsm_fn, res); + OSMO_ASSERT(res == !testvec_ahs_h1[i].is_cmi); + } + + printf("\n"); + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = ul_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Uplink, AMR AFS: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == testvec_ahs_h0_and_afs[i].is_cmi); + } + + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = dl_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Downlink, AMR AFS: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == !testvec_ahs_h0_and_afs[i].is_cmi); + } +} + +int main(int argc, char **argv) +{ + + test_amr_cmi_sched(); + return EXIT_SUCCESS; +} diff --git a/tests/amr/amr_test.ok b/tests/amr/amr_test.ok new file mode 100644 index 0000000..ec1d1a0 --- /dev/null +++ b/tests/amr/amr_test.ok @@ -0,0 +1,152 @@ +AMR transmission phase (CMI) in relation to GSM FN: +Uplink, AMR AHS on HR subslot 0: fn_begin=0, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=4, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=8, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=13, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=17, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=21, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=26, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=30, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=34, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=39, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=43, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=47, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=52, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=56, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=60, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=65, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=69, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=73, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=78, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=82, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=86, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=91, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=95, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=99, CMI=0 + +Downlink, AMR AHS on HR subslot 0: fn_begin=0, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=4, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=8, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=13, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=17, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=21, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=26, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=30, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=34, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=39, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=43, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=47, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=52, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=56, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=60, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=65, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=69, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=73, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=78, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=82, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=86, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=91, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=95, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=99, CMI=1 + + +Uplink, AMR AHS on HR subslot 1: fn_begin=1, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=5, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=9, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=14, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=18, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=22, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=27, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=31, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=35, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=40, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=44, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=48, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=53, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=57, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=61, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=66, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=70, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=74, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=79, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=83, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=87, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=92, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=96, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=100, CMI=0 + +Downlink, AMR AHS on HR subslot 1: fn_begin=1, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=5, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=9, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=14, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=18, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=22, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=27, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=31, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=35, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=40, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=44, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=48, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=53, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=57, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=61, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=66, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=70, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=74, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=79, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=83, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=87, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=92, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=96, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=100, CMI=1 + + +Uplink, AMR AFS: fn_begin=0, CMI=1 +Uplink, AMR AFS: fn_begin=4, CMI=0 +Uplink, AMR AFS: fn_begin=8, CMI=1 +Uplink, AMR AFS: fn_begin=13, CMI=0 +Uplink, AMR AFS: fn_begin=17, CMI=1 +Uplink, AMR AFS: fn_begin=21, CMI=0 +Uplink, AMR AFS: fn_begin=26, CMI=1 +Uplink, AMR AFS: fn_begin=30, CMI=0 +Uplink, AMR AFS: fn_begin=34, CMI=1 +Uplink, AMR AFS: fn_begin=39, CMI=0 +Uplink, AMR AFS: fn_begin=43, CMI=1 +Uplink, AMR AFS: fn_begin=47, CMI=0 +Uplink, AMR AFS: fn_begin=52, CMI=1 +Uplink, AMR AFS: fn_begin=56, CMI=0 +Uplink, AMR AFS: fn_begin=60, CMI=1 +Uplink, AMR AFS: fn_begin=65, CMI=0 +Uplink, AMR AFS: fn_begin=69, CMI=1 +Uplink, AMR AFS: fn_begin=73, CMI=0 +Uplink, AMR AFS: fn_begin=78, CMI=1 +Uplink, AMR AFS: fn_begin=82, CMI=0 +Uplink, AMR AFS: fn_begin=86, CMI=1 +Uplink, AMR AFS: fn_begin=91, CMI=0 +Uplink, AMR AFS: fn_begin=95, CMI=1 +Uplink, AMR AFS: fn_begin=99, CMI=0 + +Downlink, AMR AFS: fn_begin=0, CMI=0 +Downlink, AMR AFS: fn_begin=4, CMI=1 +Downlink, AMR AFS: fn_begin=8, CMI=0 +Downlink, AMR AFS: fn_begin=13, CMI=1 +Downlink, AMR AFS: fn_begin=17, CMI=0 +Downlink, AMR AFS: fn_begin=21, CMI=1 +Downlink, AMR AFS: fn_begin=26, CMI=0 +Downlink, AMR AFS: fn_begin=30, CMI=1 +Downlink, AMR AFS: fn_begin=34, CMI=0 +Downlink, AMR AFS: fn_begin=39, CMI=1 +Downlink, AMR AFS: fn_begin=43, CMI=0 +Downlink, AMR AFS: fn_begin=47, CMI=1 +Downlink, AMR AFS: fn_begin=52, CMI=0 +Downlink, AMR AFS: fn_begin=56, CMI=1 +Downlink, AMR AFS: fn_begin=60, CMI=0 +Downlink, AMR AFS: fn_begin=65, CMI=1 +Downlink, AMR AFS: fn_begin=69, CMI=0 +Downlink, AMR AFS: fn_begin=73, CMI=1 +Downlink, AMR AFS: fn_begin=78, CMI=0 +Downlink, AMR AFS: fn_begin=82, CMI=1 +Downlink, AMR AFS: fn_begin=86, CMI=0 +Downlink, AMR AFS: fn_begin=91, CMI=1 +Downlink, AMR AFS: fn_begin=95, CMI=0 +Downlink, AMR AFS: fn_begin=99, CMI=1 diff --git a/tests/testsuite.at b/tests/testsuite.at index ba5a409..f2d17fb 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -63,3 +63,9 @@ cat $abs_srcdir/ta_control/ta_control_test.ok > expout AT_CHECK([$abs_top_builddir/tests/ta_control/ta_control_test], [], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([amr]) +AT_KEYWORDS([amr]) +cat $abs_srcdir/amr/amr_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/amr/amr_test], [], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25296 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25296 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:43:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:43:16 +0000 Subject: Change in osmo-bts[master]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25297 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame All generated RTP that originates from the BTS relates to uplink. When generating AMR BAD frame RTP packets, we must use ul_cmr/ul_ft and not dl_cmr/dl_ft. Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index c5d60e4..4bd0756 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -276,8 +276,8 @@ 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], + chan_state->codec[chan_state->ul_cmr], + chan_state->codec[chan_state->ul_ft], AMR_BAD); if (rc < 2) { LOGL1SB(DL1P, LOGL_ERROR, l1ts, bi, diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 2106a67..a582f92 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -317,8 +317,8 @@ 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], + chan_state->codec[chan_state->ul_cmr], + chan_state->codec[chan_state->ul_ft], AMR_BAD); if (rc < 2) { LOGL1SB(DL1P, LOGL_ERROR, l1ts, bi, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25297 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25297 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:44:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:44:51 +0000 Subject: Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25283 ) Change subject: bty_vty: add VTY settungs for temporary overpower ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Gerrit-Change-Number: 25283 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17:44:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:44:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:44:54 +0000 Subject: Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25283 ) Change subject: bty_vty: add VTY settungs for temporary overpower ...................................................................... bty_vty: add VTY settungs for temporary overpower To configure temporary overpower, new VTY commands are added. This patch also addes the logic needed to attach the temporary overpower IE to the RSL CHANNEL ACTIVATE message. Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Related: SYS#5319 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bts_vty.c 3 files changed, 76 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 291ec10..5ff798b 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -549,6 +549,11 @@ * enable/disable certain ACCH repeation features individually */ struct abis_rsl_osmo_rep_acch_cap repeated_acch_policy; + /* osmocom specific FACCH/SACCH temporary overpower value. This value + * is set to a constant value by the VTY. Temporary overpower is only + * applied when FACCH/SACCH repetition is not applicable or disabled */ + struct abis_rsl_osmo_temp_ovp_acch_cap temporary_overpower; + /* MS/BS Power Control parameters */ struct gsm_power_ctrl_params ms_power_ctrl; struct gsm_power_ctrl_params bs_power_ctrl; diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 26231ac..c7399eb 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -548,6 +548,35 @@ } } +/* indicate Temporary overpower of SACCH and FACCH channels */ +static void top_acch_cap_for_bts(struct gsm_lchan *lchan, struct msgb *msg) +{ + struct abis_rsl_osmo_temp_ovp_acch_cap cap; + struct gsm_bts *bts = lchan->ts->trx->bts; + bool acch_rep_enabled; + bool acch_rep_supp_by_ms; + + /* The BTS_FEAT_ACCH_TEMP_OVP IE is a proprietary IE, that can only be used with osmo-bts type BTSs */ + if (!(bts->model->type == GSM_BTS_TYPE_OSMOBTS && osmo_bts_has_feature(&bts->features, BTS_FEAT_ACCH_TEMP_OVP))) + return; + + memcpy(&cap, &bts->temporary_overpower, sizeof(cap)); + + /* The user has enabled one of the two downlink related ACCH repetition features. */ + acch_rep_enabled = bts->repeated_acch_policy.dl_sacch || bts->repeated_acch_policy.dl_facch_all + || bts->repeated_acch_policy.dl_facch_cmd; + + /* The MS indicates support for ACCH repetition */ + acch_rep_supp_by_ms = lchan->conn && lchan->conn->cm3_valid && lchan->conn->cm3.repeated_acch_capability; + + /* If the MS fully supports repeated ACCH capabilites as specified in 3GPP TS 44.006, section 10 and 11. and if + * ACCH repetition is enabled for this BTS, then we will not apply temporary overpower. */ + if (acch_rep_enabled && acch_rep_supp_by_ms) + cap.overpower_db = 0; + + msgb_tlv_put(msg, RSL_IE_OSMO_TEMP_OVP_ACCH_CAP, sizeof(cap), (uint8_t*) &cap); +} + /* Write RSL_IE_OSMO_TRAINING_SEQUENCE to msgb. The tsc_set argument's range is 1-4, tsc argument range is 0-7. */ static void put_osmo_training_sequence_ie(struct msgb *msg, uint8_t tsc_set, uint8_t tsc) { @@ -675,6 +704,7 @@ } rep_acch_cap_for_bts(lchan, msg); + top_acch_cap_for_bts(lchan, msg); /* Selecting a specific TSC Set is only applicable to VAMOS mode */ if (lchan->activate.info.vamos && lchan->activate.tsc_set >= 1) @@ -746,6 +776,7 @@ } rep_acch_cap_for_bts(lchan, msg); + top_acch_cap_for_bts(lchan, msg); /* Selecting a specific TSC Set is only applicable to VAMOS mode. Send this Osmocom specific IE only to OsmoBTS * types. */ diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 445eea4..bd06463 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -747,6 +747,41 @@ return CMD_SUCCESS; } +#define TOP_ACCH_STR "Temporary ACCH overpower\n" + +DEFUN_USRATTR(cfg_bts_top_dl_acch, + cfg_bts_top_dl_acch_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "overpower dl-acch <1-4>", + TOP_ACCH_STR + "Enable ACCH overpower for this BTS\n" + "overpower value in dB\n") +{ + struct gsm_bts *bts = vty->index; + + if (bts->model->type != GSM_BTS_TYPE_OSMOBTS) { + vty_out(vty, "%% repeated ACCH not supported by BTS %u%s", + bts->nr, VTY_NEWLINE); + return CMD_WARNING; + } + + bts->temporary_overpower.overpower_db = atoi(argv[0]); + return CMD_SUCCESS; +} + +DEFUN_USRATTR(cfg_bts_top_no_dl_acch, + cfg_bts_top_no_dl_acch_cmd, + X(BSC_VTY_ATTR_NEW_LCHAN), + "no overpower dl-acch", + NO_STR TOP_ACCH_STR + "Disable ACCH overpower for this BTS\n") +{ + struct gsm_bts *bts = vty->index; + + bts->temporary_overpower.overpower_db = 0; + + return CMD_SUCCESS; +} #define CD_STR "Channel Description\n" @@ -3967,6 +4002,9 @@ ho_vty_write_bts(vty, bts); + if (bts->temporary_overpower.overpower_db > 0) + vty_out(vty, " overpower dl-acch %u%s", bts->temporary_overpower.overpower_db, VTY_NEWLINE); + if (bts->repeated_acch_policy.dl_facch_all) vty_out(vty, " repeat dl-facch all%s", VTY_NEWLINE); else if (bts->repeated_acch_policy.dl_facch_cmd) @@ -4182,6 +4220,8 @@ install_element(BTS_NODE, &cfg_bts_rep_ul_dl_sacch_cmd); install_element(BTS_NODE, &cfg_bts_rep_no_ul_dl_sacch_cmd); install_element(BTS_NODE, &cfg_bts_rep_rxqual_cmd); + install_element(BTS_NODE, &cfg_bts_top_dl_acch_cmd); + install_element(BTS_NODE, &cfg_bts_top_no_dl_acch_cmd); install_element(BTS_NODE, &cfg_bts_interf_meas_avg_period_cmd); install_element(BTS_NODE, &cfg_bts_interf_meas_level_bounds_cmd); install_element(BTS_NODE, &cfg_bts_srvcc_fast_return_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I488a91bb4ed86f630db56564a0cd293f39f0f690 Gerrit-Change-Number: 25283 Gerrit-PatchSet: 4 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 Sep 2 17:45:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:45:41 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25123 ) Change subject: osmo_bsc_main: integrate MGW pooling into osmo-bsc ...................................................................... Patch Set 13: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Gerrit-Change-Number: 25123 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17:45: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 Sep 2 17:46:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:46:46 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Support EWMA algorithm for C/I measurements References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25324 ) Change subject: MS Power Control Loop: Support EWMA algorithm for C/I measurements ...................................................................... MS Power Control Loop: Support EWMA algorithm for C/I measurements Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Related: SYS#4917 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c 2 files changed, 29 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/24/25324/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 979e6d9..256cf21 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -242,6 +242,7 @@ const struct gsm_power_ctrl_params *dpc_params; /* Measurement pre-processing state (for dynamic mode) */ struct gsm_power_ctrl_meas_proc_state rxlev_meas_proc; + struct gsm_power_ctrl_meas_proc_state ci_meas_proc; /* Number of SACCH blocks to skip (for dynamic mode) */ int skip_block_num; diff --git a/src/common/power_control.c b/src/common/power_control.c index 9d874c4..80157f2 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -92,29 +92,31 @@ #define CALC_TARGET(mp) \ ((mp).lower_thresh + (mp).upper_thresh) / 2 -/* Calculate a 'delta' value (for the given MS/BS power control state and parameters) - * to be applied to the current Tx power level to approach the target level. */ -static int calc_delta(const struct gsm_power_ctrl_params *params, - struct lchan_power_ctrl_state *state, - const int rxlev_dbm) +static int do_avg_algo(const struct gsm_power_ctrl_meas_params *mp, + struct gsm_power_ctrl_meas_proc_state *mps, + const int val) { - int rxlev_dbm_avg; - uint8_t rxlev_avg; - int delta; - - /* Filter RxLev value to reduce unnecessary Tx power oscillations */ - switch (params->rxlev_meas.algo) { + int val_avg; + switch (mp->algo) { case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: - rxlev_dbm_avg = do_pf_ewma(¶ms->rxlev_meas, - &state->rxlev_meas_proc, - rxlev_dbm); + val_avg = do_pf_ewma(mp, mps, val); break; /* TODO: implement other pre-processing methods */ case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: default: /* No filtering (pass through) */ - rxlev_dbm_avg = rxlev_dbm; + val_avg = val; } + return val_avg; +} +/* Calculate a 'delta' value (for the given MS/BS power control state and parameters) + * to be applied to the current Tx power level to approach the target level. */ +static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, + struct lchan_power_ctrl_state *state, + const int rxlev_dbm_avg) +{ + uint8_t rxlev_avg; + int delta; /* FIXME: avoid this conversion, accept RxLev as-is */ rxlev_avg = dbm2rxlev(rxlev_dbm_avg); @@ -181,6 +183,8 @@ enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; + int8_t ul_rssi_dbm_avg; + int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; if (!trx_ms_pwr_ctrl_is_osmo(trx)) @@ -216,13 +220,15 @@ /* If computed C/I is out of acceptable thresholds: */ ci_meas = lchan_get_ci_thresholds(lchan); - if (ul_lqual_cb < ci_meas->lower_thresh * 10) { + ul_lqual_cb_avg = do_avg_algo(ci_meas, &state->ci_meas_proc, ul_lqual_cb); + ul_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, ul_rssi_dbm); + if (ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { new_dbm = ms_dbm + params->inc_step_size_db; - } else if (ul_lqual_cb > ci_meas->upper_thresh * 10) { + } else if (ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta(params, state, ul_rssi_dbm); + new_dbm = ms_dbm + calc_delta_rxlev(params, state, ul_rssi_dbm_avg); } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on @@ -281,6 +287,7 @@ uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; uint8_t rxqual, rxlev; + int8_t dl_rssi_dbm_avg; int delta, new; /* Check if dynamic BS Power Control is enabled */ @@ -334,6 +341,8 @@ rxlev = rxlev_full; } + dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev2dbm(rxlev)); + /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ if (rxqual > params->rxqual_meas.lower_thresh) { uint8_t old = state->current; @@ -355,7 +364,7 @@ } /* Calculate a 'delta' for the current attenuation level */ - delta = calc_delta(params, state, rxlev2dbm(rxlev)); + delta = calc_delta_rxlev(params, state, dl_rssi_dbm_avg); /* Basic signal transmission / reception formula: * -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Gerrit-Change-Number: 25324 Gerrit-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 Sep 2 17:46:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:46:46 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Improve logging References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25325 ) Change subject: MS Power Control Loop: Improve logging ...................................................................... MS Power Control Loop: Improve logging Change-Id: I8babd42566c41935079fd414d930ebf2d737892e --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files changed, 70 insertions(+), 70 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/25325/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 80157f2..d23153f 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -248,25 +248,25 @@ return 0; } - /* FIXME: this is only needed for logging, print thresholds instead */ - int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); - if (state->current == new_power_lvl) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " - "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", RSSI[curr %d, tgt %d] dBm," - " C/I[curr %d, tgt %d] dB)\n", - new_power_lvl, new_dbm, ms_power_lvl, state->max, - ul_rssi_dbm, target_dbm, ul_lqual_cb/10, CALC_TARGET(*ci_meas)); + "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," + " C/I[curr %d, avg %d, thresh %d..%d] dB\n", + new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); return 0; } current_dbm = ms_pwr_dbm(band, state->current); LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power control level %d (%d dBm) => %d (%d dBm): " - "rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", RSSI[curr %d, tgt %d] dBm," - " C/I[curr %d, tgt %d] dB\n", + "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," + " C/I[curr %d, avg %d, thresh %d..%d] dB\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", state->current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, - state->max, ul_rssi_dbm, target_dbm, ul_lqual_cb/10, CALC_TARGET(*ci_meas)); + state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 55092db..894756b 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -1,60 +1,60 @@ -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm): (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 2 (26 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 2, max-ms-pwr-lvl 0, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 0 (30 dBm): (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 0, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 0 (30 dBm) => 30 (34 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 30 (34 dBm) => 29 (36 dBm): rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 31, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 1 (28 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, RSSI[curr -73, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 1 (28 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, RSSI[curr -77, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 14 (2 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 14, RSSI[curr -73, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): rx-ms-pwr-lvl 14, max-ms-pwr-lvl 0, RSSI[curr -40, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -70, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -50, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -50, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -110, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -72, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -78, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -70, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -80, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -85, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 11, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 11, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 12, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 17, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 17, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 12, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 17, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): ms-pwr-lvl[curr 7, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm): ms-pwr-lvl[curr 5, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): ms-pwr-lvl[curr 5, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): ms-pwr-lvl[curr 3, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): ms-pwr-lvl[curr 2, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 2 (26 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 2, max 0], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 0 (30 dBm): ms-pwr-lvl[curr 0, max 0], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 0 (30 dBm) => 30 (34 dBm): ms-pwr-lvl[curr 0, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 30 (34 dBm) => 29 (36 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 31, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 1 (28 dBm): ms-pwr-lvl[curr 0, max 29], RSSI[curr -73, avg -73, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 1 (28 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 1, max 29], RSSI[curr -77, avg -77, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 0, max 14], RSSI[curr -73, avg -73, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): ms-pwr-lvl[curr 14, max 0], RSSI[curr -40, avg -40, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -80, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -110, avg -92, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -72, avg -72, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -78, avg -78, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -70, avg -70, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -80, avg -80, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -85, avg -85, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): ms-pwr-lvl[curr 7, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): ms-pwr-lvl[curr 5, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): ms-pwr-lvl[curr 3, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): ms-pwr-lvl[curr 2, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 11, avg 11, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 11, avg 11, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8babd42566c41935079fd414d930ebf2d737892e Gerrit-Change-Number: 25325 Gerrit-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 Sep 2 17:46:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:46:47 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo ...................................................................... BS Power Control Loop: Support EWMA average algo While adding the functionality, the function lchan_bs_pwr_ctrl() code and logging is changed to look similar to lchan_ms_pwr_ctrl(), so that reader can easily spot similarities between both. params->rxqual_meas.upper_thresh is left unchecked in lchan_bs_pwr_ctrl() on this commit on purpose, to keep this commit with old behavior. Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/bs_power_loop_test.err 3 files changed, 142 insertions(+), 151 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/25326/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 256cf21..33cb2af 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -242,6 +242,7 @@ const struct gsm_power_ctrl_params *dpc_params; /* Measurement pre-processing state (for dynamic mode) */ struct gsm_power_ctrl_meas_proc_state rxlev_meas_proc; + struct gsm_power_ctrl_meas_proc_state rxqual_meas_proc; struct gsm_power_ctrl_meas_proc_state ci_meas_proc; /* Number of SACCH blocks to skip (for dynamic mode) */ int skip_block_num; diff --git a/src/common/power_control.c b/src/common/power_control.c index d23153f..225198f 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -286,9 +286,9 @@ const struct gsm_power_ctrl_params *params = state->dpc_params; uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; - uint8_t rxqual, rxlev; - int8_t dl_rssi_dbm_avg; - int delta, new; + uint8_t rxqual, rxqual_avg, rxlev; + int8_t dl_rssi_dbm, dl_rssi_dbm_avg; + int new_att; /* Check if dynamic BS Power Control is enabled */ if (params == NULL) @@ -341,68 +341,55 @@ rxlev = rxlev_full; } - dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev2dbm(rxlev)); - + dl_rssi_dbm = rxlev2dbm(rxlev); + dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dl_rssi_dbm); + rxqual_avg = do_avg_algo(¶ms->rxqual_meas, &state->rxqual_meas_proc, rxqual); /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ - if (rxqual > params->rxqual_meas.lower_thresh) { - uint8_t old = state->current; - - /* Tx power has reached the maximum, nothing to do */ - if (state->current == 0) - return 0; - + if (rxqual_avg > params->rxqual_meas.lower_thresh) { /* Increase Tx power by reducing Tx attenuation */ - if (state->current >= params->inc_step_size_db) - state->current -= params->inc_step_size_db; - else - state->current = 0; - - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation: " - "%u -> %d dB due to RxQual %u worse than L_RXQUAL_XX_P %u\n", - old, state->current, rxqual, params->rxqual_meas.lower_thresh); - return 1; + new_att = state->current - params->inc_step_size_db; + } else { + /* Basic signal transmission / reception formula: + * + * RxLev = TxPwr - (PathLoss + TxAtt) + * + * Here we want to change RxLev at the MS side, so: + * + * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta + * + * The only parameter we can change here is TxAtt, so: + * + * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta + * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) + */ + new_att = state->current - calc_delta_rxlev(params, state, dl_rssi_dbm_avg); } - /* Calculate a 'delta' for the current attenuation level */ - delta = calc_delta_rxlev(params, state, dl_rssi_dbm_avg); + /* Make sure new TxAtt is never negative: */ + if (new_att < 0) + new_att = 0; - /* Basic signal transmission / reception formula: - * - * RxLev = TxPwr - (PathLoss + TxAtt) - * - * Here we want to change RxLev at the MS side, so: - * - * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta - * - * The only parameter we can change here is TxAtt, so: - * - * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta - * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) - */ - new = state->current - delta; - if (new > state->max) - new = state->max; - if (new < 0) - new = 0; + /* Don't ask for higher TxAtt than permitted: */ + if (new_att > state->max) + new_att = state->max; - if (state->current != new) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, suggested delta %d dB, " - "RxLev current %u (%d dBm), thresholds %u .. %u)\n", - state->current, new, state->max, - -delta, rxlev, rxlev2dbm(rxlev), - params->rxlev_meas.lower_thresh, - params->rxlev_meas.upper_thresh); - state->current = new; - return 1; - } else { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, suggested delta %d dB, " - "RxLev current %u (%d dBm), thresholds %u .. %u)\n", - state->current, state->max, - -delta, rxlev, rxlev2dbm(rxlev), - params->rxlev_meas.lower_thresh, - params->rxlev_meas.upper_thresh); + if (state->current == new_att) { + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping DL attenuation at %u dB: " + "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " + "RxQual[curr %d, avg %d, thresh %d..%d]\n", + state->current, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); return 0; } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s DL attenuation %u dB => %u dB:" + "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " + "RxQual[curr %d, avg %d, thresh %d..%d]\n", + (new_att > state->current) ? "Raising" : "Lowering", + state->current, new_att, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); + state->current = new_att; + return 1; } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index c4726b1..dc4f411 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,196 +1,199 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 10 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 14 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 18 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 18 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 16 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 14 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 2 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 2 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 11 dB:max 20 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 20 dB, RSSI[curr -78, avg -78, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 13 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, suggested delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 13 dB => 16 dB:max 20 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, suggested delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 10 dB => 9 dB:max 20 dB, RSSI[curr -81, avg -81, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 9 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, suggested delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 9 dB => 6 dB:max 20 dB, RSSI[curr -83, avg -83, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 6 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, suggested delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 6 dB => 1 dB:max 20 dB, RSSI[curr -85, avg -85, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 1 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 1, avg 1, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 2, avg 2, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 3, avg 3, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 4, avg 4, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 12 -> 8 dB due to RxQual 5 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -76, avg -76, thresh -80..-80] dBm, RxQual[curr 5, avg 5, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 8 -> 4 dB due to RxQual 6 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -72, avg -72, thresh -80..-80] dBm, RxQual[curr 6, avg 6, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -66, avg -66, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 13 dB:max 16 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, suggested delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 16 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -79, avg -79, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -77, avg -77, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, suggested delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 14 dB:max 30 dB, RSSI[curr -84, avg -82, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, suggested delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 11 dB:max 30 dB, RSSI[curr -84, avg -83, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, suggested delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 12 dB:max 30 dB, RSSI[curr -75, avg -79, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, suggested delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 30 dB, RSSI[curr -75, avg -77, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-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 Sep 2 17:46:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:46:47 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25327 ) Change subject: BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold ...................................................................... BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold If RxQual is considered good enough, attenuation can be increased in order to lower overall cross-channel noise among different MS. Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 --- M src/common/power_control.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/25327/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 225198f..cb96177 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -348,6 +348,9 @@ if (rxqual_avg > params->rxqual_meas.lower_thresh) { /* Increase Tx power by reducing Tx attenuation */ new_att = state->current - params->inc_step_size_db; + } else if (rxqual_avg < params->rxqual_meas.upper_thresh) { + /* Increase Tx power by Increasing Tx attenuation */ + new_att = state->current + params->red_step_size_db; } else { /* Basic signal transmission / reception formula: * -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 Gerrit-Change-Number: 25327 Gerrit-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 Sep 2 17:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:47:28 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25299/1/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/1/include/osmocom/gsm/protocol/gsm_08_58.h at 829 PS1, Line 829: / interesting that this one is auto-generated but below not? https://gerrit.osmocom.org/c/libosmocore/+/25299/1/include/osmocom/gsm/protocol/gsm_08_58.h at 933 PS1, Line 933: # not auto-generated? curious to hear why? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:47: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 Sep 2 17:47:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:47:31 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25268/4/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/25268/4/src/common/rsl.c at 920 PS4, Line 920: LOGP(DRSL, LOGL_ERROR, " tlv_parse2 failed!!! rc=%d\n", rc); > unrelated change, but not a blocker. Sorry this is a leftover, I'll fix it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-Comment-Date: Thu, 02 Sep 2021 17:47:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:49:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:49:11 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25299/1/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/1/include/osmocom/gsm/protocol/gsm_08_58.h at 933 PS1, Line 933: # > not auto-generated? curious to hear why? Because copy+paste is faster than running scripts :P -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:49: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 Thu Sep 2 17:50:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:50:24 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:50:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:50:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:50:58 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25299 to look at the new patch set (#2). Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params This commit adds new Osmocom specific IEs required to pass C/I related Power Control Parameters osmo-bsc => osmo-bts to be used by the MS Power Control Loop being implemented. Related: SYS#4917 Change-Id: Iffef0611430ad6c90606149c398d80158633bbca --- M include/osmocom/gsm/protocol/gsm_08_58.h M src/gsm/rsl.c 2 files changed, 72 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/99/25299/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:51:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:51:52 +0000 Subject: Change in osmo-trx[master]: detectBurst(): Clear downsampling code path In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25315 ) Change subject: detectBurst(): Clear downsampling code path ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82 Gerrit-Change-Number: 25315 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:51: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 Sep 2 17:52:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:52:01 +0000 Subject: Change in osmo-trx[master]: detectBurst(): constify parameter In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25316 ) Change subject: detectBurst(): constify parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694 Gerrit-Change-Number: 25316 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:52: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 Sep 2 17:52:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:52:10 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify param and pass it as reference In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25317 ) Change subject: computeCI(): Constify param and pass it as reference ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Icba5fce57c858bd16196ae3012c100c7e4134335 Gerrit-Change-Number: 25317 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:52:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:52:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:52:27 +0000 Subject: Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25318 ) Change subject: computeCI(): Rename verbose repeated getter to constant ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475 Gerrit-Change-Number: 25318 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:52:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:52:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:52:37 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify read-only variable In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25319 ) Change subject: computeCI(): Constify read-only variable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988 Gerrit-Change-Number: 25319 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17: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 Thu Sep 2 17:52:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:52:58 +0000 Subject: Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25320 ) Change subject: detectGeneralBurst(): Increase log level about clipping to INFO ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25320 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9 Gerrit-Change-Number: 25320 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:52: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 Sep 2 17:53:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:07 +0000 Subject: Change in osmo-trx[master]: detectBurst(): Clear downsampling code path In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25315 ) Change subject: detectBurst(): Clear downsampling code path ...................................................................... detectBurst(): Clear downsampling code path downsampleBurst() and the Resampler below it clearly only support or are confgiured for 1<->4 setup currently. Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 12 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index b7c41ba..ff5e32f 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -34,6 +34,7 @@ #include "Resampler.h" extern "C" { +#include #include "convolve.h" #include "scale.h" #include "mult.h" @@ -1500,12 +1501,18 @@ complex xcorr; int rc = 1; - if (sps == 4) { - dec = downsampleBurst(burst); - corr_in = dec; - sps = 1; - } else { + switch (sps) { + case 1: corr_in = &burst; + break; + case 4: + dec = downsampleBurst(burst); + /* Running at the downsampled rate at this point: */ + corr_in = dec; + sps = 1; + break; + default: + osmo_panic("%s:%d SPS %d not supported! Only 1 or 4 supported", __FILE__, __LINE__, sps); } /* Correlate */ @@ -1515,9 +1522,6 @@ goto del_ret; } - /* Running at the downsampled rate at this point */ - sps = 1; - /* Peak detection - place restrictions at correlation edges */ ebp->amp = fastPeakDetect(corr, &ebp->toa); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Iebaff7a34bd24e56627f148182859918accbfa82 Gerrit-Change-Number: 25315 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:08 +0000 Subject: Change in osmo-trx[master]: detectBurst(): constify parameter In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25316 ) Change subject: detectBurst(): constify parameter ...................................................................... detectBurst(): constify parameter Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index ff5e32f..fa8a407 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1461,7 +1461,7 @@ * It is computed from the training sequence of each received burst, * by comparing the "ideal" training sequence with the actual one. */ -static float computeCI(const signalVector *burst, CorrelationSequence *sync, +static float computeCI(const signalVector *burst, const CorrelationSequence *sync, float toa, int start, complex xcorr) { float S, C; @@ -1492,7 +1492,7 @@ * and we run full interpolating peak detection. */ static int detectBurst(const signalVector &burst, - signalVector &corr, CorrelationSequence *sync, + signalVector &corr, const CorrelationSequence *sync, float thresh, int sps, int start, int len, struct estim_burst_params *ebp) { -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25316 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I3d8738b492a175f2ef0c570579e335e7b7695694 Gerrit-Change-Number: 25316 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:08 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify param and pass it as reference In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25317 ) Change subject: computeCI(): Constify param and pass it as reference ...................................................................... computeCI(): Constify param and pass it as reference Change-Id: Icba5fce57c858bd16196ae3012c100c7e4134335 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index fa8a407..7169a15 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1462,7 +1462,7 @@ * by comparing the "ideal" training sequence with the actual one. */ static float computeCI(const signalVector *burst, const CorrelationSequence *sync, - float toa, int start, complex xcorr) + float toa, int start, const complex &xcorr) { float S, C; int ps; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25317 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Icba5fce57c858bd16196ae3012c100c7e4134335 Gerrit-Change-Number: 25317 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:08 +0000 Subject: Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25318 ) Change subject: computeCI(): Rename verbose repeated getter to constant ...................................................................... computeCI(): Rename verbose repeated getter to constant Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 5 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 7169a15..1a72e00 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1464,20 +1464,21 @@ static float computeCI(const signalVector *burst, const CorrelationSequence *sync, float toa, int start, const complex &xcorr) { + const int N = sync->sequence->size(); float S, C; int ps; /* Integer position where the sequence starts */ - ps = start + 1 - sync->sequence->size() + (int)roundf(toa); + ps = start + 1 - N + (int)roundf(toa); /* Estimate Signal power */ S = 0.0f; - for (int i=0, j=ps; i<(int)sync->sequence->size(); i++,j++) + for (int i=0, j=ps; i<(int)N; i++,j++) S += (*burst)[j].norm2(); - S /= sync->sequence->size(); + S /= N; /* Esimate Carrier power */ - C = xcorr.norm2() / ((sync->sequence->size() - 1) * sync->gain.abs()); + C = xcorr.norm2() / ((N - 1) * sync->gain.abs()); /* Interference = Signal - Carrier, so C/I = C / (S - C) */ return 3.0103f * log2f(C / (S - C)); -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I9b426d01a282f572c0b915c5666642dce4c60475 Gerrit-Change-Number: 25318 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:08 +0000 Subject: Change in osmo-trx[master]: computeCI(): Constify read-only variable In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25319 ) Change subject: computeCI(): Constify read-only variable ...................................................................... computeCI(): Constify read-only variable Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 1a72e00..b3e3969 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1466,10 +1466,8 @@ { const int N = sync->sequence->size(); float S, C; - int ps; - /* Integer position where the sequence starts */ - ps = start + 1 - N + (int)roundf(toa); + const int ps = start + 1 - N + (int)roundf(toa); /* Estimate Signal power */ S = 0.0f; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25319 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia157b970db92eef252c3657b35607307b7ebf988 Gerrit-Change-Number: 25319 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:09 +0000 Subject: Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25320 ) Change subject: detectGeneralBurst(): Increase log level about clipping to INFO ...................................................................... detectGeneralBurst(): Increase log level about clipping to INFO There's another related logging line also at INFO level in the caller path in Transceiver.cpp, but it only prints if detectBurst() failed. Let's print this one as INFO too, which proved to be a good logging level. This way user also notices gain is too high despite osmo-trx is still able to decode bursts. Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index b3e3969..91d1677 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1589,7 +1589,7 @@ // and only report clipping if we can't demod. float maxAmpl = maxAmplitude(rxBurst); if (maxAmpl > CLIP_THRESH) { - LOG(DEBUG) << "max burst amplitude: " << maxAmpl << " is above the clipping threshold: " << CLIP_THRESH << std::endl; + LOG(INFO) << "max burst amplitude: " << maxAmpl << " is above the clipping threshold: " << CLIP_THRESH << std::endl; clipping = true; } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25320 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ieca4f19ae1099a430e9b838f8b6780b1c61a87a9 Gerrit-Change-Number: 25320 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:53:09 +0000 Subject: Change in osmo-trx[master]: cosmetic: Fix typo in comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25321 ) Change subject: cosmetic: Fix typo in comment ...................................................................... cosmetic: Fix typo in comment Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111 --- M Transceiver52M/sigProcLib.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 91d1677..21978ff 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1865,7 +1865,7 @@ * delay filters. Symbol rotation and after always operates at 1 SPS. * * Allow 1 SPS demodulation here, but note that other parts of the - * transceiver restrict EDGE operatoin to 4 SPS - 8-PSK distortion + * transceiver restrict EDGE operation to 4 SPS - 8-PSK distortion * through the fractional delay filters at 1 SPS renders signal * nearly unrecoverable. */ -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25321 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I33f4253cecab8d92eec75af49e1671874b8cc111 Gerrit-Change-Number: 25321 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:53:26 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 to look at the new patch set (#5). Change subject: MS Power Control Loop: Take C/I into account ...................................................................... MS Power Control Loop: Take C/I into account This commit extends existing MW Power Control Loop algorithm to take into account computed C/I values on the UL, received from MS. The related C/I parameters used by the algorithm are configured at and provided by the BSC, which transmits them to the BTS similar to already existing parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/gsm_data.c M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 10 files changed, 414 insertions(+), 137 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/25268/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:53:59 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... BS Power Control Loop: Support EWMA average algo for RxQual meas While adding the functionality, the function lchan_bs_pwr_ctrl() code and logging is changed to look similar to lchan_ms_pwr_ctrl(), so that reader can easily spot similarities between both. params->rxqual_meas.upper_thresh is left unchecked in lchan_bs_pwr_ctrl() on this commit on purpose, to keep this commit with old behavior. Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/bs_power_loop_test.err 3 files changed, 142 insertions(+), 151 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/25326/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:53:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 17:53:59 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ... In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-bts/+/25327 ) Change subject: BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold ...................................................................... BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold If RxQual is considered good enough, attenuation can be increased in order to lower overall cross-channel noise among different MS. Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 --- M src/common/power_control.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/25327/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 Gerrit-Change-Number: 25327 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:54:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:54:03 +0000 Subject: Change in osmo-trx[master]: d/patches/build-for-debian8.patch: remove In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25312 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 Gerrit-Change-Number: 25312 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:54: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 Sep 2 17:54:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:54:06 +0000 Subject: Change in osmo-gsm-manuals[master]: d/patches/build-for-debian8.patch: remove In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 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: I8285b8c483fe2d136b83946414587fc993d5f489 Gerrit-Change-Number: 25313 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17:54:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:54:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:54:18 +0000 Subject: Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25314 ) Change subject: OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 Gerrit-Change-Number: 25314 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 17: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 Sep 2 17:54:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:54:34 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore LONG_LINE_* In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25301 ) Change subject: lint: checkpatch_osmo.sh: ignore LONG_LINE_* ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 Gerrit-Change-Number: 25301 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17:54:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:55:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:55:26 +0000 Subject: Change in osmo-ci[master]: jobs/gerrit-lint.yml: add lint jobs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/24703 ) Change subject: jobs/gerrit-lint.yml: add lint jobs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/24703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic473a5c535dfbdda55751e53fc751ede1adde7e2 Gerrit-Change-Number: 24703 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 02 Sep 2021 17:55:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 17:56:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 17:56:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 ) Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 02 Sep 2021 17:56:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 2 18:22:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 2 Sep 2021 18:22:21 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 02 Sep 2021 18:22: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 Sep 2 18:39:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 18:39:35 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25328 ) Change subject: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels ...................................................................... MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels Before this comits, averaging and delta calculation was done in RSSI, but stored the averaging cached state in variables named "rxlev", which was really confusing. Let's keeping averaging and delta calculations based on RxLevels. Some of the tests change results due to test passing RSSI -45, which is an invalid Rxlev (only up to -47 is supported). Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c 2 files changed, 36 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/28/25328/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index cb96177..b3066cd 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -113,22 +113,18 @@ * to be applied to the current Tx power level to approach the target level. */ static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, struct lchan_power_ctrl_state *state, - const int rxlev_dbm_avg) + const uint8_t rxlev) { - uint8_t rxlev_avg; int delta; - /* FIXME: avoid this conversion, accept RxLev as-is */ - rxlev_avg = dbm2rxlev(rxlev_dbm_avg); - /* Check if RxLev is within the threshold window */ - if (rxlev_avg >= params->rxlev_meas.lower_thresh && - rxlev_avg <= params->rxlev_meas.upper_thresh) + if (rxlev >= params->rxlev_meas.lower_thresh && + rxlev <= params->rxlev_meas.upper_thresh) return 0; /* How many dBs measured power should be increased (+) or decreased (-) * to reach expected power. */ - delta = CALC_TARGET(params->rxlev_meas) - rxlev_avg; + delta = CALC_TARGET(params->rxlev_meas) - rxlev; /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop * iteration, i.e. reduce the speed at which the MS transmit power can @@ -183,7 +179,7 @@ enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; - int8_t ul_rssi_dbm_avg; + uint8_t rxlev_avg; int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; @@ -221,14 +217,14 @@ /* If computed C/I is out of acceptable thresholds: */ ci_meas = lchan_get_ci_thresholds(lchan); ul_lqual_cb_avg = do_avg_algo(ci_meas, &state->ci_meas_proc, ul_lqual_cb); - ul_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, ul_rssi_dbm); + rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dbm2rxlev(ul_rssi_dbm)); if (ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { new_dbm = ms_dbm + params->inc_step_size_db; } else if (ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta_rxlev(params, state, ul_rssi_dbm_avg); + new_dbm = ms_dbm + calc_delta_rxlev(params, state, rxlev_avg); } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on @@ -252,7 +248,7 @@ LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," " C/I[curr %d, avg %d, thresh %d..%d] dB\n", - new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); return 0; @@ -264,7 +260,7 @@ " C/I[curr %d, avg %d, thresh %d..%d] dB\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", state->current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, - state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + state->max, ul_rssi_dbm, rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); @@ -286,8 +282,7 @@ const struct gsm_power_ctrl_params *params = state->dpc_params; uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; - uint8_t rxqual, rxqual_avg, rxlev; - int8_t dl_rssi_dbm, dl_rssi_dbm_avg; + uint8_t rxqual, rxqual_avg, rxlev, rxlev_avg; int new_att; /* Check if dynamic BS Power Control is enabled */ @@ -341,8 +336,7 @@ rxlev = rxlev_full; } - dl_rssi_dbm = rxlev2dbm(rxlev); - dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dl_rssi_dbm); + rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev); rxqual_avg = do_avg_algo(¶ms->rxqual_meas, &state->rxqual_meas_proc, rxqual); /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ if (rxqual_avg > params->rxqual_meas.lower_thresh) { @@ -365,7 +359,7 @@ * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) */ - new_att = state->current - calc_delta_rxlev(params, state, dl_rssi_dbm_avg); + new_att = state->current - calc_delta_rxlev(params, state, rxlev_avg); } /* Make sure new TxAtt is never negative: */ @@ -380,7 +374,7 @@ LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping DL attenuation at %u dB: " "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " "RxQual[curr %d, avg %d, thresh %d..%d]\n", - state->current, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + state->current, state->max, rxlev2dbm(rxlev), rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); return 0; @@ -390,7 +384,7 @@ "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " "RxQual[curr %d, avg %d, thresh %d..%d]\n", (new_att > state->current) ? "Raising" : "Lowering", - state->current, new_att, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + state->current, new_att, state->max, rxlev2dbm(rxlev), rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); state->current = new_att; diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index f0c0250..e53cc43 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -185,32 +185,30 @@ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); -#define CHECK_UL_RSSI_AVG100(exp) \ - printf("\tAvg[t] is %2.2f dBm (expected %2.2f dBm)\n", \ +#define CHECK_RXLEV_AVG100(exp) \ + printf("\tAvg[t] is RxLev %2.2f (expected %2.2f)\n", \ ((float) *avg100) / 100, exp); /* UL RSSI remains constant => no UL power change */ apply_power_test(lchan, -75, good_lqual, 0, 15); - CHECK_UL_RSSI_AVG100(-75.00); + CHECK_RXLEV_AVG100((float)dbm2rxlev(-75)); /* RXLEV 35 */ - /* Avg[t] = (0.2 * -90) + (0.8 * -75) = -78.0 dBm */ - apply_power_test(lchan, -90, good_lqual, 1, 13); - CHECK_UL_RSSI_AVG100(-78.00); + /* Avg[t] = (0.2 * 20) + (0.8 * 35) = RXLEV 32, (-78 dBm) */ + apply_power_test(lchan, -90, good_lqual, 1, 13); /* -90 dBm = RXLEV 20 */ + CHECK_RXLEV_AVG100(32.00); - /* Avg[t] = (0.2 * -90) + (0.8 * -78) = -80.4 dBm */ - apply_power_test(lchan, -90, good_lqual, 1, 11); - CHECK_UL_RSSI_AVG100(-80.40); + /* Avg[t] = (0.2 * 20) + (0.8 * 32) = RXLEV 29.6 (-80.4 dBm) */ + apply_power_test(lchan, -90, good_lqual, 1, 11); /* -90 dBm = RXLEV 20 */ + CHECK_RXLEV_AVG100(29.60); - /* Avg[t] = (0.2 * -70) + (0.8 * -80.4) = -78.32 dBm, + /* Avg[t] = (0.2 * 40) + (0.8 * 29.60) = RXLEV 31.68 (-78.32 dBm), * but due to up-/down-scaling artefacts we get the following: * Avg100[t] = Avg100[t - 1] + A * (Pwr - Avg[t] / 100) - * Avg100[t] = -8040 + 20 * (-70 - (-8040 / 100)) - * Avg100[t] = -8040 + 20 * (-70 - (-8040 / 100)) - * Avg100[t] = -8040 + 20 * (-70 + 80) - * Avg100[t] = -8040 + 200 = -7840 - * Avg[t] = -7840 / 100 = -78.4 */ - apply_power_test(lchan, -70, good_lqual, 1, 9); - CHECK_UL_RSSI_AVG100(-78.40); + * Avg100[t] = 2960 + 20 * (40 - (2960 / 100)) + * Avg100[t] = 2960 + 20 * (40 - 29) + * Avg100[t] = 3180 / 100 = 31.80 */ + apply_power_test(lchan, -70, good_lqual, 1, 9); /* RXLEV 40 */ + CHECK_RXLEV_AVG100(31.80); mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; @@ -218,17 +216,17 @@ (struct gsm_power_ctrl_meas_proc_state) { 0 }; /* This is the first sample, the filter outputs it as-is */ - apply_power_test(lchan, -50, good_lqual, 0, 15); - CHECK_UL_RSSI_AVG100(-50.00); + apply_power_test(lchan, -50, good_lqual, 0, 15); /* RXLEV 60 */ + CHECK_RXLEV_AVG100((float)dbm2rxlev(-50)); - /* Avg[t] = (0.7 * -50) + (0.3 * -50) = -50.0 dBm */ + /* Avg[t] = (0.7 * 60) + (0.3 * 60) = RXLEV 60 (-50.0 dBm) */ apply_power_test(lchan, -50, good_lqual, 0, 15); - CHECK_UL_RSSI_AVG100(-50.0); + CHECK_RXLEV_AVG100((float)dbm2rxlev(-50)); /* Simulate SACCH block loss (-110 dBm): - * Avg[t] = (0.7 * -110) + (0.3 * -50) = -92.0 dBm */ - apply_power_test(lchan, -110, good_lqual, 1, 13); - CHECK_UL_RSSI_AVG100(-92.0); + * Avg[t] = (0.7 * 0) + (0.3 * 60) = RXLEV 18.0 (-92.0 dBm) */ + apply_power_test(lchan, -110, good_lqual, 1, 13); /* RXLEV 0 */ + CHECK_RXLEV_AVG100(18.0); } static void test_power_hysteresis(void) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 Gerrit-Change-Number: 25328 Gerrit-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 Sep 2 19:31:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 19:31:40 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire... 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/+/25328 to look at the new patch set (#2). Change subject: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels ...................................................................... MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels Before this comits, averaging and delta calculation was done in RSSI, but stored the averaging cached state in variables named "rxlev", which was really confusing. Let's keeping averaging and delta calculations based on RxLevels. Some of the tests change results due to test passing RSSI -45, which is an invalid Rxlev (only up to -47 is supported). Others fail due to an unrelated bug showing up now. Basically the averaging algo is doing rounding the wrong way when downscaling the values. It will be fixed in a follow-up commit. Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 49 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/28/25328/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 Gerrit-Change-Number: 25328 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 Sep 2 19:31:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 2 Sep 2021 19:31:41 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Fix downscaling averaging bug References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25329 ) Change subject: MS/BS Power Control Loop: Fix downscaling averaging bug ...................................................................... MS/BS Power Control Loop: Fix downscaling averaging bug The bug showed up in previous commit and is fixed in this commit. It can be seen how rounding error is carried over time in the average measurement, and affects final values. Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 11 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/25329/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index b3066cd..0362675 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -36,6 +36,8 @@ /* We don't want to deal with floating point, so we scale up */ #define EWMA_SCALE_FACTOR 100 +/* EWMA_SCALE_FACTOR/2 = +50: Round to nearest value when downscaling, otherwise floor() is applied. */ +#define EWMA_ROUND_FACTOR (EWMA_SCALE_FACTOR / 2) /* Base Low-Pass Single-Pole IIR Filter (EWMA) formula: * @@ -84,8 +86,8 @@ return Val; } - *Avg100 += A * (Val - *Avg100 / EWMA_SCALE_FACTOR); - return *Avg100 / EWMA_SCALE_FACTOR; + *Avg100 += A * (Val - (*Avg100 + EWMA_ROUND_FACTOR) / EWMA_SCALE_FACTOR); + return (*Avg100 + EWMA_ROUND_FACTOR) / EWMA_SCALE_FACTOR; } /* Calculate target RxLev value from lower/upper thresholds */ diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index b9d6867..5f83329 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -204,11 +204,11 @@ /* Avg[t] = (0.2 * 40) + (0.8 * 29.60) = RXLEV 31.68 (-78.32 dBm), * but due to up-/down-scaling artefacts we get the following: * Avg100[t] = Avg100[t - 1] + A * (Pwr - Avg[t] / 100) - * Avg100[t] = 2960 + 20 * (40 - (2960 / 100)) - * Avg100[t] = 2960 + 20 * (40 - 29) - * Avg[t] = 3180 / 100 = 31.80 */ + * Avg100[t] = 2960 + 20 * (40 - ((2960+50) / 100)) <- HERE we lose 0.1: (2960+50) / 100) = 30.1 + * Avg100[t] = 2960 + 20 * (40 - 30) <- HERE we lose 20*0.1 = 2.0! (upscaled, hence we lose finally 2.0/100=0.2) + * Avg[t] = (3160) / 100 = 31.60*/ apply_power_test(lchan, -70, good_lqual, 1, 9); /* RXLEV 40 */ - CHECK_RXLEV_AVG100(31.80); + CHECK_RXLEV_AVG100(31.60); mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 8ab6419..8f58882 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -23,8 +23,8 @@ (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): ms-pwr-lvl[curr 14, max 0], RSSI[curr -40, avg -47, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -81, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -79, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -80, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -110, avg -92, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 8c92b03..27992b1 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -62,7 +62,7 @@ Avg[t] is RxLev 29.60 (expected 29.60) lchan_ms_pwr_ctrl(RxLvl=-70 dBm) returns 1 (expected 1) MS current power 11 -> 9 (expected 9) - Avg[t] is RxLev 31.80 (expected 31.80) + Avg[t] is RxLev 31.60 (expected 31.60) lchan_ms_pwr_ctrl(RxLvl=-50 dBm) returns 0 (expected 0) MS current power 15 -> 15 (expected 15) Avg[t] is RxLev 60.00 (expected 60.00) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 Gerrit-Change-Number: 25329 Gerrit-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 Sep 3 08:26:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 08:26:32 +0000 Subject: Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25314 ) Change subject: OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 Gerrit-Change-Number: 25314 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 08:26:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 08:26:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 08:26:35 +0000 Subject: Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25314 ) Change subject: OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 ...................................................................... OBS: remove {osmo-gsm-manuals,osmo-trx}-debian8 Drop these workarounds, as we are not building binary packages for debian 8 anymore. Related: OS#5223 Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 0 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved osmith: Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index bbdc5a1..e218f1e 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -196,12 +196,10 @@ checkout osmo-gbproxy cd "$TOP" - osmo_obs_checkout_copy debian8 osmo-gsm-manuals build osmocom-$FEED build limesuite --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals - build osmo-gsm-manuals-debian8 build libosmocore build libosmo-sccp build libosmo-abis diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index cd50c7d..d9fd996 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -227,13 +227,10 @@ checkout osmo-gbproxy cd "$REPO" - osmo_obs_checkout_copy debian8 osmo-gsm-manuals - osmo_obs_checkout_copy debian8 osmo-trx build osmocom-$FEED no_commit build limesuite no_commit --git-upstream-tree="$(get_last_tag limesuite)" build osmo-gsm-manuals - build osmo-gsm-manuals-debian8 build libosmocore build libosmo-sccp build libosmo-abis @@ -247,7 +244,6 @@ build osmo-sgsn build osmo-pcap build osmo-trx - build osmo-trx-debian8 build osmo-sip-connector build osmo-bts build osmo-pcu -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25314 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ibe7ba124557969df62798ba49c4489e9606c2341 Gerrit-Change-Number: 25314 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 08:26:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 08:26:52 +0000 Subject: Change in osmo-gsm-manuals[master]: d/patches/build-for-debian8.patch: remove In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Depends: osmo-ci Ibe7ba124557969df62798ba49c4489e9606c2341 Change-Id: I8285b8c483fe2d136b83946414587fc993d5f489 --- D debian/patches/build-for-debian8.patch 1 file changed, 0 insertions(+), 18 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/patches/build-for-debian8.patch b/debian/patches/build-for-debian8.patch deleted file mode 100644 index 58f49c3..0000000 --- a/debian/patches/build-for-debian8.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/debian/control -+++ b/debian/control -@@ -7,7 +7,6 @@ Build-Depends: autotools-dev, - pkg-config, - # All below also need to be in Depends - asciidoc, -- asciidoc-dblatex, - dblatex, - docbook5-xml, - graphviz, -@@ -23,7 +22,6 @@ Package: osmo-gsm-manuals-dev - Architecture: all - Depends: ${misc:Depends}, - asciidoc, -- asciidoc-dblatex, - dblatex, - docbook5-xml, - graphviz, -- To view, visit https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/25313 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: I8285b8c483fe2d136b83946414587fc993d5f489 Gerrit-Change-Number: 25313 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 08:26:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 08:26:59 +0000 Subject: Change in osmo-trx[master]: d/patches/build-for-debian8.patch: remove In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25312 ) Change subject: d/patches/build-for-debian8.patch: remove ...................................................................... d/patches/build-for-debian8.patch: remove Remove this workaround, as we are not building for debian 8 anymore. Related: OS#5223 Depends: osmo-ci Ibe7ba124557969df62798ba49c4489e9606c2341 Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 --- M contrib/jenkins.sh D debian/patches/build-for-debian8.patch D debian/patches/series 3 files changed, 0 insertions(+), 66 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 3cf12c6..bcdcca4 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -115,9 +115,4 @@ $MAKE $PARALLEL_MAKE maintainer-clean -# Verify distro-specific package patches apply: -for patch in debian/patches/*.patch; do - patch --dry-run -p1 < "$patch" -done - osmo-clean-workspace.sh diff --git a/debian/patches/build-for-debian8.patch b/debian/patches/build-for-debian8.patch deleted file mode 100644 index 074dca9..0000000 --- a/debian/patches/build-for-debian8.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/debian/control b/debian/control -index 12d9af5..27b9d60 100644 ---- a/debian/control -+++ b/debian/control -@@ -13,7 +13,6 @@ Build-Depends: debhelper (>= 9), - libfftw3-dev, - libtalloc-dev, - libusrp-dev, -- liblimesuite-dev, - libosmocore-dev (>= 1.5.0), - osmo-gsm-manuals-dev - Standards-Version: 3.9.6 -@@ -30,7 +29,7 @@ Package: osmo-trx-dbg - Architecture: any - Section: debug - Priority: extra --Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-lms (= ${binary:Version}), osmo-trx-ipc (= ${binary:Version}), ${misc:Depends} -+Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-ipc (= ${binary:Version}), ${misc:Depends} - Description: Debug symbols for the osmo-trx-* - Make debugging possible - -@@ -72,25 +71,6 @@ Description: SDR transceiver that implements Layer 1 of a GSM BTS (USRP1) - between different telecommunication associations for developing new - generations of mobile phone networks. (post-2G/GSM) - --Package: osmo-trx-lms --Architecture: any --Depends: ${shlibs:Depends}, ${misc:Depends} --Description: SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite) -- OsmoTRX is a software-defined radio transceiver that implements the Layer 1 -- physical layer of a BTS comprising the following 3GPP specifications: -- . -- TS 05.01 "Physical layer on the radio path" -- TS 05.02 "Multiplexing and Multiple Access on the Radio Path" -- TS 05.04 "Modulation" -- TS 05.10 "Radio subsystem synchronization" -- . -- In this context, BTS is "Base transceiver station". It's the stations that -- connect mobile phones to the mobile network. -- . -- 3GPP is the "3rd Generation Partnership Project" which is the collaboration -- between different telecommunication associations for developing new -- generations of mobile phone networks. (post-2G/GSM) -- - Package: osmo-trx-ipc - Architecture: any - Depends: ${shlibs:Depends}, ${misc:Depends} -diff --git a/debian/rules b/debian/rules -index 5795643..5937c17 100755 ---- a/debian/rules -+++ b/debian/rules -@@ -9,7 +9,7 @@ override_dh_shlibdeps: - dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info - - override_dh_auto_configure: -- dh_auto_configure -- --with-uhd --with-usrp1 --with-lms --with-ipc --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals -+ dh_auto_configure -- --with-uhd --with-usrp1 --with-ipc --with-systemdsystemunitdir=/lib/systemd/system --enable-manuals - - override_dh_strip: - dh_strip --dbg-package=osmo-trx-dbg diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 82063b7..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -# build-for-debian8.patch -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25312 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I5519075a7f95fa61b0b5f1825e4e9324b9eede76 Gerrit-Change-Number: 25312 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 08:27:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 08:27:25 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore LONG_LINE_* In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25301 ) Change subject: lint: checkpatch_osmo.sh: ignore LONG_LINE_* ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 Gerrit-Change-Number: 25301 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 08:27: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 Sep 3 08:27:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 08:27:28 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore LONG_LINE_* In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25301 ) Change subject: lint: checkpatch_osmo.sh: ignore LONG_LINE_* ...................................................................... lint: checkpatch_osmo.sh: ignore LONG_LINE_* According to a comment in checkpatch.pl, these should automatically be ignored when LONG_LINE is ignored. However I found that it's still complaining about LONG_LINE_COMMENT, so explicitly disable it. Related: OS#5087 Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Verified diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index b465b5a..849ccda 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -24,7 +24,7 @@ # * INITIALISED_STATIC: we use this, see also http://lkml.iu.edu/hypermail/linux/kernel/0808.1/2235.html # * LINE_CONTINUATIONS: false positives # * LINE_SPACING: we don't always put a blank line after declarations -# * LONG_LINE: should be 120 chars, but exceptions are done often so don't fail here +# * LONG_LINE*: should be 120 chars, but exceptions are done often so don't fail here # * PREFER_DEFINED_ATTRIBUTE_MACRO: macros like __packed not defined in libosmocore # * PREFER_FALLTHROUGH: pseudo keyword macro "fallthrough" is not defined in libosmocore # * REPEATED_WORD: false positives in doxygen descriptions (e.g. '\param[in] data Data passed through...') @@ -54,6 +54,8 @@ --ignore LINE_CONTINUATIONS \ --ignore LINE_SPACING \ --ignore LONG_LINE \ + --ignore LONG_LINE_COMMENT \ + --ignore LONG_LINE_STRING \ --ignore PREFER_DEFINED_ATTRIBUTE_MACRO \ --ignore PREFER_FALLTHROUGH \ --ignore REPEATED_WORD \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25301 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I7aed3bfbfcb0b9e2f1d743b111e8418846f031d2 Gerrit-Change-Number: 25301 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 09:23:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 09:23:05 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25123 ) Change subject: osmo_bsc_main: integrate MGW pooling into osmo-bsc ...................................................................... Patch Set 13: Thanks for reviewing this. I will give this one more run in the TTCN3 testsuite and then we can merge this. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Gerrit-Change-Number: 25123 Gerrit-PatchSet: 13 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 09:23:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 09:32:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 09:32:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24591 ) Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... Patch Set 9: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c at 2110 PS4, Line 2110: gprs_ns2_free_nsvc(nsvc); > Check if runtime NSVCs are still valid (sig_weight > 0) This one hasn't been fixed iuuc? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 09:32:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 09:34:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 09:34:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures ...................................................................... Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 03 Sep 2021 09:34:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 09:36:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 09:36:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 3: SAme prefix GPRS_SNS_EV* is still used for both internal and public enums, which is really confusing... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 09:36: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 Fri Sep 3 09:37:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 09:37:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing n... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25323 ) Change subject: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 Gerrit-Change-Number: 25323 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 09:37:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 09:39:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 09:39:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23187 ) Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... Patch Set 15: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 15 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 09:39: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 Sep 3 09:41:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 09:41:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25147 ) Change subject: gprs_ns2: don't use llist_for_each when freeing an element ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25147/4/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/25147/4/src/gb/gprs_ns2.c at 671 PS4, Line 671: /* prevent recursive free() because of events user/fsm */ So, the non-generic warning here is that freeing an nsvc can end up in another nsvc being freed? An explanation on why/how that can happen would be interesting. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 09:41:56 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 09:53:50 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 09:53:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 ) Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 09:53: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 Sep 3 10:43:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 10:43:29 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped When a PDCH TS becomes disabled (eg due to dyn TS being used for a call), we are currently freeing all attached PDCHs in order to avoid further use of it. However, pdch_free_all_tbf() was only freeing TBFs attached to the PDCH, that is, TBFs having a valid TFI assigned. There are some cases where tempotary dummy TBFs are created which have no TFI assigned, such as when creating an ImmAssReject. Let's take those into account too, and make sure they are freed. Related: OS#5226 Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 --- M src/pdch.cpp 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/25330/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index da43bdf..49f9eb6 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1145,6 +1145,9 @@ void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch) { + struct llist_item *pos; + struct llist_item *pos2; + for (uint8_t tfi = 0; tfi < 32; tfi++) { struct gprs_rlcmac_tbf *tbf; @@ -1155,6 +1158,15 @@ if (tbf) tbf_free(tbf); } + + /* Some temporary dummy TBFs to tx ImmAssRej may be left linked to the + * PDCH, since they have no TFI assigned (see handle_tbf_reject()). + * Get rid of them too: */ + llist_for_each_entry_safe(pos, pos2, &pdch->trx->ul_tbfs, list) { + struct gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf((struct gprs_rlcmac_tbf *)pos->entry); + if (ul_tbf->control_ts == pdch->ts_no) + tbf_free(ul_tbf); + } } void pdch_disable(struct gprs_rlcmac_pdch *pdch) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-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 Sep 3 11:52:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 11:52:15 +0000 Subject: Change in osmo-trx[master]: computeCI: Document hardcoded multiplier References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25331 ) Change subject: computeCI: Document hardcoded multiplier ...................................................................... computeCI: Document hardcoded multiplier Logarithm change of base rule is used. Document it so it's clear where it comes from. Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba --- M Transceiver52M/sigProcLib.cpp 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/31/25331/1 diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 21978ff..df87f94 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1478,7 +1478,13 @@ /* Esimate Carrier power */ C = xcorr.norm2() / ((N - 1) * sync->gain.abs()); - /* Interference = Signal - Carrier, so C/I = C / (S - C) */ + /* Interference = Signal - Carrier, so C/I = C / (S - C). + * Calculated in dB: + * C/I_dB = 10 * log10(C/I) + * C/I_dB = 10 * (1/log2(10)) * log2(C/I) + * C/I_dB = 10 * 0.30103 * log2(C/I) + * C/I_dB = 3.0103 * log2(C/I) + */ return 3.0103f * log2f(C / (S - C)); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba Gerrit-Change-Number: 25331 Gerrit-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 Sep 3 13:20:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 13:20:18 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 13:20:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 13:21:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 13:21:13 +0000 Subject: Change in osmo-trx[master]: computeCI: Document hardcoded multiplier In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25331 ) Change subject: computeCI: Document hardcoded multiplier ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba Gerrit-Change-Number: 25331 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 13: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 Fri Sep 3 13:22:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 13:22:38 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25330/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/25330/1//COMMIT_MSG at 13 PS1, Line 13: tempotary temporary -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 13:22:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 13:52:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 13:52:24 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 5: (3 comments) some vty prints are wrong, rest looks good https://gerrit.osmocom.org/c/osmo-bts/+/25268/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25268/5//COMMIT_MSG at 9 PS5, Line 9: MW MS? https://gerrit.osmocom.org/c/osmo-bts/+/25268/5/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/25268/5/src/common/rsl.c at 1059 PS5, Line 1059: #define SET_AVE_CFG(PARAMS, FROM, TYPE, PARAM_OFFSET) do {\ (IMHO this would be more readable as function instead of a macro) https://gerrit.osmocom.org/c/osmo-bts/+/25268/5/src/common/vty.c File src/common/vty.c: https://gerrit.osmocom.org/c/osmo-bts/+/25268/5/src/common/vty.c at 1423 PS5, Line 1423: ci_amr_fr_meas ci_amr_hr_meas, below for SDCCH and GPRS it's also wrong -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 13:52:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 14:44:54 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 14:44:54 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h at 929 PS2, Line 929: uint8_t Shouldn't it be signed? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 14:44:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:03:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:03:35 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Fix downscaling averaging bug In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25329 ) Change subject: MS/BS Power Control Loop: Fix downscaling averaging bug ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 Gerrit-Change-Number: 25329 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 03 Sep 2021 15:03:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:03:38 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 15:03:38 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25123 ) Change subject: osmo_bsc_main: integrate MGW pooling into osmo-bsc ...................................................................... osmo_bsc_main: integrate MGW pooling into osmo-bsc Since the libosmo-mgcp-client now supports MGW pooling, lets use this feature in osmo-bsc. Large RAN installations may benefit from distributing the RTP voice stream load on multiple media gateways. Depends: osmo-mgw Icaaba0e470e916eefddfee750b83f5f65291a6b0 Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Related: SYS#5091 --- A doc/manuals/chapters/mgwpool.adoc M doc/manuals/chapters/running.adoc M doc/manuals/osmobsc-usermanual.adoc M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/vty.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/osmo_bsc_main.c M tests/handover/handover_test.c 9 files changed, 330 insertions(+), 18 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/mgwpool.adoc b/doc/manuals/chapters/mgwpool.adoc new file mode 100644 index 0000000..7d9e9a6 --- /dev/null +++ b/doc/manuals/chapters/mgwpool.adoc @@ -0,0 +1,243 @@ +[[mgw_pooling]] +== MGW Pooling + +OsmoBSC is able to use a pool of media gateway (MGW) instances since mid 2021. +The aim of MGW pooling is to evenly distribute the RTP voice stream load across +multiple MGW instances. This can help to scale out over multiple VMs or physical +machines. Until osmo-mgw includes multithreading support, it may also be used to +scale-out to multiple cores on a single host. + +The load distribution is managed in such a way that when a new call is placed, +the pool will automatically assign the call to the MGW with the lowest load. + +MGW pooling is recommended for larger RAN installations. For small networks and +lab installations the classic method with one MGW per BSC offers sufficient +performance. + +=== VTY configuration + +In OsmoBSC the MGW is controlled via an MGCP-Client. The VTY commands to +configure the MGCP-Client are part of the 'msc' node due to historical reasons. +Unfortunately this concept does not allow to configure multiple MGCP-Client +instances as required by MGW pooling. In order to support MGW pooling a new +'mgw' node has been added under the 'network' node. + +=== Existing configuration files + +Existing OsmoBSC configuration files will continue to work, but as soon as an +MGW pool is configured the 'mgw' settings under the 'msc' node will be ignored. + +Example configuration with only one MGCP-Client under the 'msc' node: +---- +msc 0 + mgw remote-ip 127.0.0.1 + mgw remote-port 2428 +---- + +=== MGW pool configuration + +To setup an MGW pool, the user must first install multiple OsmoMGW instances, so +that they won?t interfere with each other. This can be done using different +local host IP addresses or different ports. When OsmoMGW is installed from +packages, the systemd configuration may also require adjustment. + +The VTY settings under the 'mgw' node works the same way as the VTY settings for +the MGW under the 'msc' node. + +Example configuration with two MGCP-Client instances in a pool: +---- + mgw 0 + mgw remote-ip 127.0.0.1 + mgw remote-port 2432 + mgw local-ip 127.0.0.1 + mgw local-port 2431 + mgw endpoint-domain mgw0 <1> + mgw 1 + mgw remote-ip 127.0.0.1 + mgw remote-port 2430 + mgw local-ip 127.0.0.1 + mgw local-port 2429 + mgw endpoint-domain mgw1 <1> +---- + +<1> When working with multiple MGW / MGCP-Client instances, the domain name for +each MGW should be different. Otherwise it won't be possible to distinguish the +endpoint names in the log. It should also be noted that the domain name must +match the configuration of the related OsmoMGW instance. + +=== MGW pool management + +While it was not possible to change the MGCP-Client configuration under the +?msc? node at runtime, the pool is fully runtime-manageable. The only limitation +is that an MGCP-Client can not be restarted or removed as long as it is serving +calls (see also: <>). + +==== MGW pool status + +The VTY implements a 'show mgw-pool' command that lists the currently configured +MGW pool members, their status and call utilization. + +---- +OsmoBSC> show mgw-pool +% MGW-Pool: +% MGW 0 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 1 +% MGW 1 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 0 +---- + +==== Adding an MGW / MGCP-Client to the MGW pool + +To add a new MGCP-Client to the pool, the 'mgw' node is used. Like with the +'bts' or the 'msc' node a reference number is used that usually starts at 0. +However it is still possible to assign any number from 0-255. The enumeration +also may contain gaps. + +---- +OsmoBSC> enable +OsmoBSC# configure terminal +OsmoBSC(config)# network +OsmoBSC(config-net)# mgw 2 +OsmoBSC(config-mgw)# mgw + local-ip local bind to connect to MGW from + local-port local port to connect to MGW from + remote-ip remote IP address to reach the MGW at + remote-port remote port to reach the MGW at + endpoint-domain Set the domain name to send in MGCP messages, e.g. the part 'foo' in 'rtpbridge/*@foo'. + reset-endpoint Add an endpoint name that should be reset (DLCX) on connect to the reset-endpoint list,e.g. 'rtpbridge/*' +---- + +The newly added MGW will immediately appear in the mgw-pool list but it won't +be used until its configuration finished by reconnecting it. + +---- +% MGW-Pool: +% MGW 0 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 2 +% MGW 1 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 3 +% MGW 2 +% mgcp-client: disconnected +% service: unblocked +% ongoing calls: 0 +---- + +==== Reconnecting an MGW / MGCP-Client + +It may become necessary to reconnect an MGCP-Client. This is the case when the +VTY configuration was changed at runtime. In order to make the changes effective +the MGW configuration must be reloaded by reconnecting the MGW connection. Also +newly created MGW instances require a reconnect once their configuration is +done. + +To reconnect an MGCP-Client use the 'reconnect' VTY command: +---- +OsmoBSC# mgw 2 reconnect +---- + +The mgcp-client status should immediately change to 'connected'. The MGW is now +ready to be used for new calls. + +---- +OsmoBSC# show mgw-pool +% MGW-Pool: +% MGW 0 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 2 +% MGW 1 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 3 +% MGW 2 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 0 +---- + +It should be noted that MGCP a protocol is used via UDP, the connect only +happens locally to forward the UDP datagrams properly. Also (unless a reset +endpoint is configured like in the example config above) there will be no +immediate interaction with the MGW. However, the log should at least confirm +the the connect worked and the MGCP client has been created successfully. + +---- +Mon Aug 2 17:15:00 2021 DLMGCP mgcp_client.c:788 MGCP client: using endpoint domain '@mgw' +Mon Aug 2 17:15:00 2021 DLMGCP mgcp_client.c:908 MGCP GW connection: r=127.0.0.1:2427<->l=127.0.0.1:2727 +---- + +It is strongly advised to check the activity on the related MGW and to follow +the log in order to see that the communication between OsmoBSC and the MGW is +working correctly. + +[[mgw_pooling_blocking]] +==== Blocking an MGW / MGCP-Client + +If it becomes apparent that an MGCP-Client must be restarted or removed from +the config (maintenance) the operator can put that MGCP-Client into a blocked +mode. A blocked MGCP-Client will still serve the ongoing calls but it will not +be picked for the assignment of new calls. + +To block an MGCP-Client use the 'block' VTY command: +---- +OsmoBSC# mgw 2 block +OsmoBSC# show mgw-pool +% MGW-Pool: +% MGW 0 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 11 +% MGW 1 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 12 +% MGW 2 +% mgcp-client: connected +% service: blocked +% ongoing calls: 10 +---- + +When the number of ongoing calls has tapered off, the MGW / MGCP-Client can be +restarted or removed if necessary. + +---- +OsmoBSC# show mgw-pool +% MGW-Pool: +% MGW 0 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 15 +% MGW 1 +% mgcp-client: connected +% service: unblocked +% ongoing calls: 14 +% MGW 2 +% mgcp-client: connected +% service: blocked +% ongoing calls: 0 +---- + +If the blockade should be reverted, the 'unblock' VTY command can be used in +the same way to remove the blockade. (Reconnecting will not remove the +blockade.) + +==== Removing an MGW / MGCP-Client + +An MGCP-Client is removed from the pool using the 'no mgw' command from the +configure terminal. The MGCP-Client instance will automatically be terminated +and the related resources are freed. The only requirement is that there are no +ongoing calls on the selected instance. + +---- +OsmoBSC# configure terminal +OsmoBSC(config)# network +OsmoBSC(config-net)# no mgw 2 +---- diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc index 327e0bd..8e1c8e9 100644 --- a/doc/manuals/chapters/running.adoc +++ b/doc/manuals/chapters/running.adoc @@ -143,6 +143,9 @@ DLCX to the media gateway. This helps to clear lingering calls from the media gateway when the OsmoBSC is restarted. +NOTE: OsmoBSC is also able to handle a pool of media gateways for load +distribution. See also <>. + ==== Configure Lb to connect to an SMLC diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index c7589cc..120fe2c 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -32,6 +32,8 @@ include::{srcdir}/chapters/mscpool.adoc[] +include::{srcdir}/chapters/mgwpool.adoc[] + include::{srcdir}/chapters/smlc.adoc[] include::./common/chapters/qos-dscp-pcp.adoc[] diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index db0f249..bed36f3 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1203,8 +1203,15 @@ struct osmo_timer_list bts_store_uptime_timer; struct { + /* Single MGCP client configuration under msc node (also required for + * MGCP proxy when sccp-lite is used) */ struct mgcp_client_conf *conf; - struct mgcp_client *client; + + /* MGW pool, also includes the single MGCP client as fallback if no + * pool is configured. */ + struct mgcp_client_pool *mgw_pool; + + /* Timer definitions, the same for all MGW pool members */ struct osmo_tdef *tdefs; } mgw; diff --git a/include/osmocom/bsc/vty.h b/include/osmocom/bsc/vty.h index 9ea9835..70b973d 100644 --- a/include/osmocom/bsc/vty.h +++ b/include/osmocom/bsc/vty.h @@ -23,6 +23,7 @@ enum bsc_vty_node { GSMNET_NODE = _LAST_OSMOVTY_NODE + 1, + MGW_NODE, BTS_NODE, TRX_NODE, TS_NODE, diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index afb633d..1e61d3f 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -518,39 +519,47 @@ uint16_t msc_assigned_cic, struct gsm_lchan *for_lchan) { const char *epname; + struct mgcp_client *mgcp_client = NULL; if (conn->user_plane.mgw_endpoint) return conn->user_plane.mgw_endpoint; + if (gscon_is_sccplite(conn) || gscon_is_aoip(conn)) { + /* Get MGCP client from pool */ + mgcp_client = mgcp_client_pool_get(conn->network->mgw.mgw_pool); + if (!mgcp_client) { + LOGPFSML(conn->fi, LOGL_ERROR, + "cannot ensure MGW endpoint -- no MGW configured, check configuration!\n"); + conn->user_plane.mgw_endpoint = NULL; + return NULL; + } + } + if (gscon_is_sccplite(conn)) { /* derive endpoint name from CIC on A interface side */ conn->user_plane.mgw_endpoint = osmo_mgcpc_ep_alloc(conn->fi, GSCON_EV_FORGET_MGW_ENDPOINT, - conn->network->mgw.client, + mgcp_client, conn->network->mgw.tdefs, conn->fi->id, "%x@%s", msc_assigned_cic, - mgcp_client_endpoint_domain(conn->network->mgw.client)); + mgcp_client_endpoint_domain(mgcp_client)); LOGPFSML(conn->fi, LOGL_DEBUG, "MGW endpoint name derived from CIC 0x%x: %s\n", msc_assigned_cic, osmo_mgcpc_ep_name(conn->user_plane.mgw_endpoint)); } else if (gscon_is_aoip(conn)) { - if (is_ipaccess_bts(for_lchan->ts->trx->bts)) /* use dynamic RTPBRIDGE endpoint allocation in MGW */ - epname = mgcp_client_rtpbridge_wildcard(conn->network->mgw.client); + epname = mgcp_client_rtpbridge_wildcard(mgcp_client); else { - epname = mgcp_client_e1_epname(conn, conn->network->mgw.client, for_lchan->ts->e1_link.e1_nr, + epname = mgcp_client_e1_epname(conn, mgcp_client, for_lchan->ts->e1_link.e1_nr, for_lchan->ts->e1_link.e1_ts, 16, for_lchan->ts->e1_link.e1_ts_ss*2); } conn->user_plane.mgw_endpoint = - osmo_mgcpc_ep_alloc(conn->fi, GSCON_EV_FORGET_MGW_ENDPOINT, - conn->network->mgw.client, - conn->network->mgw.tdefs, - conn->fi->id, - "%s", epname); + osmo_mgcpc_ep_alloc(conn->fi, GSCON_EV_FORGET_MGW_ENDPOINT, mgcp_client, + conn->network->mgw.tdefs, conn->fi->id, "%s", epname); } else { LOGPFSML(conn->fi, LOGL_ERROR, "Conn is neither SCCPlite nor AoIP!?\n"); return NULL; @@ -801,6 +810,12 @@ static void gscon_forget_mgw_endpoint(struct gsm_subscriber_connection *conn) { + struct mgcp_client *mgcp_client; + + /* Put MGCP client back into MGW pool */ + mgcp_client = osmo_mgcpc_ep_client(conn->user_plane.mgw_endpoint); + mgcp_client_pool_put(mgcp_client); + conn->user_plane.mgw_endpoint = NULL; conn->user_plane.mgw_endpoint_ci_msc = NULL; conn->ho.created_ci_for_msc = NULL; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 17fdb45..5ccd784 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -37,6 +37,7 @@ #include #include +#include #include #include @@ -3384,6 +3385,7 @@ install_element(GSMNET_NODE, &cfg_net_nri_null_del_cmd); bts_vty_init(); + mgcp_client_pool_vty_init(GSMNET_NODE, MGW_NODE, " ", vty_global_gsm_network->mgw.mgw_pool); install_element(ENABLE_NODE, &drop_bts_cmd); install_element(ENABLE_NODE, &restart_bts_cmd); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index b3bd365..14cbc22 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -57,6 +57,7 @@ #include #include +#include #include #include @@ -70,6 +71,7 @@ #include #include +#include #include @@ -867,6 +869,41 @@ extern void *tall_tqe_ctx; extern void *tall_ctr_ctx; +static int bsc_mgw_setup(void) +{ + struct mgcp_client *mgcp_client_single; + unsigned int pool_members_initalized; + + /* Initalize MGW pool. This initalizes and connects all MGCP clients that are currently configured in + * the pool. Adding additional MGCP clients to the pool is possible but the user has to configure and + * (re)connect them manually from the VTY. */ + pool_members_initalized = mgcp_client_pool_connect(bsc_gsmnet->mgw.mgw_pool); + if (pool_members_initalized) { + LOGP(DNM, LOGL_NOTICE, + "MGW pool with %u pool members configured, (ignoring MGW configuration in VTY node 'msc').\n", + pool_members_initalized); + return 0; + } + + /* Initialize and connect a single MGCP client. This MGCP client will appear as the one and only pool + * member if there is no MGW pool configured. */ + LOGP(DNM, LOGL_NOTICE, "No MGW pool configured, using MGW configuration in VTY node 'msc'\n"); + mgcp_client_single = mgcp_client_init(bsc_gsmnet, bsc_gsmnet->mgw.conf); + if (!mgcp_client_single) { + LOGP(DNM, LOGL_ERROR, "MGW (single) client initalization failed\n"); + return -EINVAL; + } + if (mgcp_client_connect(mgcp_client_single)) { + LOGP(DNM, LOGL_ERROR, "MGW (single) connect failed at (%s:%u)\n", + bsc_gsmnet->mgw.conf->remote_addr, + bsc_gsmnet->mgw.conf->remote_port); + return -EINVAL; + } + mgcp_client_pool_register_single(bsc_gsmnet->mgw.mgw_pool, mgcp_client_single); + + return 0; +} + int main(int argc, char **argv) { struct bsc_msc_data *msc; @@ -897,6 +934,7 @@ } bsc_gsmnet->mgw.conf = talloc_zero(bsc_gsmnet, struct mgcp_client_conf); + bsc_gsmnet->mgw.mgw_pool = mgcp_client_pool_alloc(bsc_gsmnet); mgcp_client_conf_init(bsc_gsmnet->mgw.conf); bts_init(); @@ -1000,14 +1038,8 @@ } } - bsc_gsmnet->mgw.client = mgcp_client_init(bsc_gsmnet, bsc_gsmnet->mgw.conf); - - if (mgcp_client_connect(bsc_gsmnet->mgw.client)) { - LOGP(DNM, LOGL_ERROR, "MGW connect failed at (%s:%u)\n", - bsc_gsmnet->mgw.conf->remote_addr, - bsc_gsmnet->mgw.conf->remote_port); + if (bsc_mgw_setup() != 0) exit(1); - } if (osmo_bsc_sigtran_init(&bsc_gsmnet->mscs) != 0) { LOGP(DNM, LOGL_ERROR, "Failed to initialize sigtran backhaul.\n"); diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index f76a700..a355d3b 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -52,6 +52,7 @@ #include #include #include +#include #include "../../bscconfig.h" @@ -1617,6 +1618,12 @@ if (!bsc_gsmnet) exit(1); + /* The MGCP client which is handling the pool (mgcp_client_pool_vty_init) is used from the bsc_vty_init, so + * we must allocate an empty mgw pool even though we do not need it for this test. */ + bsc_gsmnet->mgw.mgw_pool = mgcp_client_pool_alloc(bsc_gsmnet); + if (!bsc_gsmnet->mgw.mgw_pool) + exit(1); + vty_init(&vty_info); bsc_vty_init(bsc_gsmnet); ho_test_vty_init(); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I8f33ab2cea04b545c403a6fe479aa963a0fc0d0d Gerrit-Change-Number: 25123 Gerrit-PatchSet: 14 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:09:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:09:21 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... Patch Set 3: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25326/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25326/3//COMMIT_MSG at 9 PS3, Line 9: the function lchan_bs_pwr_ctrl() code I don't like that you mix up refactoring and enabling EWMA for RxQual in a single commit. I am also not sure if this refactoring really makes sense. I like it the way it's currently done, including the variable naming. Let's please submit both things separately. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 03 Sep 2021 15:09: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 Sep 3 15:18:04 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 15:18:04 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 15: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 Fri Sep 3 15:18:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:18:13 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25328 ) Change subject: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 Gerrit-Change-Number: 25328 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 03 Sep 2021 15:18: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 Sep 3 15:18:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:18:24 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25327 ) Change subject: BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 Gerrit-Change-Number: 25327 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 03 Sep 2021 15: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 Fri Sep 3 15:20:01 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:20:01 +0000 Subject: Change in osmo-trx[master]: computeCI: Document hardcoded multiplier In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25331 ) Change subject: computeCI: Document hardcoded multiplier ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba Gerrit-Change-Number: 25331 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 15:20: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 Sep 3 15:20:27 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 15:20:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use an event to free the nsvscs when using SNS In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25146 ) Change subject: gprs_ns2: use an event to free the nsvscs when using SNS ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 Gerrit-Change-Number: 25146 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 03 Sep 2021 15:20:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:28:50 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 to look at the new patch set (#2). Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped When a PDCH TS becomes disabled (eg due to dyn TS being used for a call), we are currently freeing all attached PDCHs in order to avoid further use of it. However, pdch_free_all_tbf() was only freeing TBFs attached to the PDCH, that is, TBFs having a valid TFI assigned. There are some cases where temporary dummy TBFs are created which have no TFI assigned, such as when creating an ImmAssReject. Let's take those into account too, and make sure they are freed. Related: OS#5226 Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 --- M src/pdch.cpp 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/25330/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:30:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:30:12 +0000 Subject: Change in osmo-trx[master]: computeCI: Document hardcoded multiplier In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25331 ) Change subject: computeCI: Document hardcoded multiplier ...................................................................... computeCI: Document hardcoded multiplier Logarithm change of base rule is used. Document it so it's clear where it comes from. Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba --- M Transceiver52M/sigProcLib.cpp 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/Transceiver52M/sigProcLib.cpp b/Transceiver52M/sigProcLib.cpp index 21978ff..df87f94 100644 --- a/Transceiver52M/sigProcLib.cpp +++ b/Transceiver52M/sigProcLib.cpp @@ -1478,7 +1478,13 @@ /* Esimate Carrier power */ C = xcorr.norm2() / ((N - 1) * sync->gain.abs()); - /* Interference = Signal - Carrier, so C/I = C / (S - C) */ + /* Interference = Signal - Carrier, so C/I = C / (S - C). + * Calculated in dB: + * C/I_dB = 10 * log10(C/I) + * C/I_dB = 10 * (1/log2(10)) * log2(C/I) + * C/I_dB = 10 * 0.30103 * log2(C/I) + * C/I_dB = 3.0103 * log2(C/I) + */ return 3.0103f * log2f(C / (S - C)); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: Ia588e8dafda4e1abe0721f12491661949339a1ba Gerrit-Change-Number: 25331 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 15:30:50 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 15:30:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:32:49 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 15:32:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:32:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:32:51 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params This commit adds new Osmocom specific IEs required to pass C/I related Power Control Parameters osmo-bsc => osmo-bts to be used by the MS Power Control Loop being implemented. Related: SYS#4917 Change-Id: Iffef0611430ad6c90606149c398d80158633bbca --- M include/osmocom/gsm/protocol/gsm_08_58.h M src/gsm/rsl.c 2 files changed, 72 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_08_58.h b/include/osmocom/gsm/protocol/gsm_08_58.h index e4e90ed..fd22d91 100644 --- a/include/osmocom/gsm/protocol/gsm_08_58.h +++ b/include/osmocom/gsm/protocol/gsm_08_58.h @@ -799,8 +799,14 @@ RSL_IPAC_EIE_SDCCH_CTL_PARAM = 0x1a, RSL_IPAC_EIE_AMR_CONV_THRESH = 0x1b, + /* Osmocom specific extensions: */ + RSL_IPAC_EIE_OSMO_MEAS_AVG_CFG = 0xf0, + RSL_IPAC_EIE_OSMO_MS_PWR_CTL = 0xf1, + RSL_IPAC_EIE_OSMO_PC_THRESH_COMP = 0xf2, + }; +/* Value of TLV IE RSL_IPAC_EIE_MEAS_AVG_CFG */ struct ipac_preproc_ave_cfg { #if OSMO_IS_LITTLE_ENDIAN uint8_t h_reqave:5, @@ -817,7 +823,32 @@ #endif }__attribute__ ((packed)); -/*! MS/BS Power Control Thresholds */ + +struct osmo_preproc_ave_cfg_field { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t h_reqave:5, + ave_enabled:1, + reserved:2; + uint8_t h_reqt:5, + ave_method:3; +#elif OSMO_IS_BIG_ENDIAN +/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianess.py) */ + uint8_t reserved:2, ave_enabled:1, h_reqave:5; + uint8_t ave_method:3, h_reqt:5; +#endif +}__attribute__ ((packed)); +/* Value of TLV IE RSL_IPAC_EIE_OSMO_MEAS_AVG_CFG: */ +struct osmo_preproc_ave_cfg { + struct osmo_preproc_ave_cfg_field ci_fr; + struct osmo_preproc_ave_cfg_field ci_hr; + struct osmo_preproc_ave_cfg_field ci_amr_fr; + struct osmo_preproc_ave_cfg_field ci_amr_hr; + struct osmo_preproc_ave_cfg_field ci_sdcch; + struct osmo_preproc_ave_cfg_field ci_gprs; + uint8_t params[0]; /* Contains params for each above, appended one after the other */ +}__attribute__ ((packed)); + +/*! MS/BS Power Control Thresholds (RSL_IPAC_EIE_MS_PWR_CTL) */ struct ipac_preproc_pc_thresh { #if OSMO_IS_LITTLE_ENDIAN uint8_t l_rxlev:6, reserved_l_rxlev:2; @@ -832,6 +863,17 @@ #endif }__attribute__ ((packed)); +/*! Osmocom extension for: MS/BS Power Control Thresholds (RSL_IPAC_EIE_OSMO_MS_PWR_CTL) */ +struct osmo_preproc_pc_thresh { + /* Carrier-to-Interference (C/I), in dB: */ + int8_t l_ci_fr; int8_t u_ci_fr; /* FR/EFR */ + int8_t l_ci_hr; int8_t u_ci_hr; /* HR */ + int8_t l_ci_amr_fr; int8_t u_ci_amr_fr; /* AMR FR */ + int8_t l_ci_amr_hr; int8_t u_ci_amr_hr; /* AMR HR */ + int8_t l_ci_sdcch; int8_t u_ci_sdcch; /* SDCCH */ + int8_t l_ci_gprs; int8_t u_ci_gprs; /* GPRS */ +}__attribute__ ((packed)); + /*! Handover Thresholds */ struct ipac_preproc_ho_thresh { #if OSMO_IS_LITTLE_ENDIAN @@ -860,7 +902,7 @@ #endif }__attribute__ ((packed)); -/*! PC Threshold Comparators */ +/*! PC Threshold Comparators (RSL_IPAC_EIE_PC_THRESH_COMP) */ struct ipac_preproc_pc_comp { #if OSMO_IS_LITTLE_ENDIAN uint8_t p1:5, reserved_p1:3; @@ -887,6 +929,30 @@ #endif }__attribute__ ((packed)); +/*! Osmocom extension for: PC Threshold Comparators (RSL_IPAC_EIE_OSMO_PC_THRESH_COMP) */ +struct ipac_preproc_pc_comp_field { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t lower_p:5, reserved_lower_p:3; + uint8_t lower_n:5, reserved_lower_n:3; + uint8_t upper_p:5, reserved_upper_p:3; + uint8_t upper_n:5, reserved_upper_n:3; +#elif OSMO_IS_BIG_ENDIAN + uint8_t reserved_lower_p:3, lower_p:5; + uint8_t reserved_lower_n:3, lower_n:5; + uint8_t reserved_upper_p:3, upper_p:5; + uint8_t reserved_upper_n:3, upper_n:5; + #endif +}__attribute__ ((packed)); +struct osmo_preproc_pc_comp { + /* Used for Carrier-to-Interference (C/I), in dB: */ + struct ipac_preproc_pc_comp_field ci_fr; + struct ipac_preproc_pc_comp_field ci_hr; + struct ipac_preproc_pc_comp_field ci_amr_fr; + struct ipac_preproc_pc_comp_field ci_amr_hr; + struct ipac_preproc_pc_comp_field ci_sdcch; + struct ipac_preproc_pc_comp_field ci_gprs; +}__attribute__ ((packed)); + /*! HO Threshold Comparators */ struct ipac_preproc_ho_comp { #if OSMO_IS_LITTLE_ENDIAN diff --git a/src/gsm/rsl.c b/src/gsm/rsl.c index e3b21e6..0574966 100644 --- a/src/gsm/rsl.c +++ b/src/gsm/rsl.c @@ -621,6 +621,10 @@ [RSL_IPAC_EIE_3G_NCELL_LIST] = { TLV_TYPE_TLV }, [RSL_IPAC_EIE_SDCCH_CTL_PARAM] = { TLV_TYPE_TV }, [RSL_IPAC_EIE_AMR_CONV_THRESH] = { TLV_TYPE_FIXED, 9 }, + /* Osmocom extensions: */ + [RSL_IPAC_EIE_OSMO_MEAS_AVG_CFG]= { TLV_TYPE_TLV }, + [RSL_IPAC_EIE_OSMO_MS_PWR_CTL] = { TLV_TYPE_TLV }, + [RSL_IPAC_EIE_OSMO_PC_THRESH_COMP]= { TLV_TYPE_TLV }, }, }; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:37:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:37:25 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h at 929 PS2, Line 929: uint8_t > Shouldn't it be signed? Nope, see ipac_preproc_pc_comp above. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 15:37:25 +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 Sep 3 15:41:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:41:22 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h at 929 PS2, Line 929: uint8_t > Nope, see ipac_preproc_pc_comp above. But 'ipac_preproc_pc_comp' is for RxLev and RxQual, which are unsigned. This structure is used for C/I below, which [generally] can be negative. I am asking because I see signed members in 'osmo_preproc_pc_thresh' above. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 15:41: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 Fri Sep 3 15:46:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 15:46:19 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 03 Sep 2021 15:46:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:50:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 15:50:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 ) Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... pcu: add TC_stat_pdch_avail_occ Test new stats bts.N.pdch.available/occupied. Related: SYS#4878 Related: osmo-pcu I74760a68ee055510a79e80854ec7bf1521669119 Change-Id: I607b4729740159c161af824317f9fc04878eb13d --- M pcu/PCU_Tests.ttcn 1 file changed, 47 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/25332/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 6f0df06..88893ec 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -5992,6 +5992,51 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Test stats for available and occupied PDCHs */ +testcase TC_stat_pdch_avail_occ() runs on RAW_PCU_Test_CT { + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + const BssgpBvci bvci := mp_gb_cfg.bvc[0].bvci; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + + /* Only 1 TRX with 8 PDCH */ + f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0); + f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); + + /* Allocate 17 GprsMS instances */ + f_init_gprs_ms(4); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Reset stats */ + f_statsd_reset(); + + /* Establish BSSGP */ + f_bssgp_establish(); + + /* 8 PDCHs available, 0 occupied */ + var StatsDExpects expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 } + }; + f_statsd_expect(expect); + + /* Establish an Uplink TBF for each GprsMS instance */ + f_multi_ms_bssgp_register(); + f_multi_ms_establish_tbf(do_activate := false); + + /* 4 PDCHs occupied */ + expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 } + }; + f_statsd_expect(expect); + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -6098,6 +6143,8 @@ execute( TC_rim_ran_info_req_single_rep_no_si() ); execute (TC_pdch_energy_saving() ); + + execute( TC_stat_pdch_avail_occ() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:50:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 15:50:44 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.available/occupied References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25333 ) Change subject: Add stats: pcu.bts.N.pdch.available/occupied ...................................................................... Add stats: pcu.bts.N.pdch.available/occupied Count available PDCHs (3GPP TS 52.402 ? B.2.1.38) as well as occupied PDCHs (? B.2.1.42-44). Related: SYS#4878 Change-Id: I74760a68ee055510a79e80854ec7bf1521669119 --- M src/bts.cpp M src/bts.h M src/pdch.cpp 3 files changed, 24 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/33/25333/1 diff --git a/src/bts.cpp b/src/bts.cpp index 8ccbee9..beb626d 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -199,6 +199,10 @@ static const struct osmo_stat_item_desc bts_stat_item_description[] = { { "ms.present", "MS Present ", OSMO_STAT_ITEM_NO_UNIT, 4, 0}, + { "pdch.available", "PDCH available ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, + { "pdch.occupied", "PDCH occupied ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, }; static const struct osmo_stat_item_group_desc bts_statg_desc = { diff --git a/src/bts.h b/src/bts.h index 5e45527..a6e7150 100644 --- a/src/bts.h +++ b/src/bts.h @@ -182,6 +182,8 @@ enum { STAT_MS_PRESENT, + STAT_PDCH_AVAILABLE, + STAT_PDCH_OCCUPIED, }; /* RACH.ind parameters (to be parsed) */ @@ -346,6 +348,10 @@ osmo_stat_item_set(item, val + inc); } +#define bts_stat_item_inc(bts, stat_id) bts_stat_item_add(bts, stat_id, 1) + +#define bts_stat_item_dec(bts, stat_id) bts_stat_item_add(bts, stat_id, -1) + struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu, uint8_t bts_nr); struct gprs_rlcmac_sba *bts_alloc_sba(struct gprs_rlcmac_bts *bts, uint8_t ta); diff --git a/src/pdch.cpp b/src/pdch.cpp index da43bdf..6574db5 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -150,6 +150,7 @@ this->ulc = pdch_ulc_alloc(this, trx->bts); m_is_enabled = 1; + bts_stat_item_inc(trx->bts, STAT_PDCH_AVAILABLE); } void gprs_rlcmac_pdch::disable() @@ -158,6 +159,7 @@ this->free_resources(); m_is_enabled = 0; + bts_stat_item_dec(trx->bts, STAT_PDCH_AVAILABLE); } void gprs_rlcmac_pdch::free_resources() @@ -1043,6 +1045,12 @@ "%s has not been detached, overwriting it\n", m_tbfs[tbf->direction][tbf->tfi()]->name()); + /* Count PDCHs with at least one TBF as "occupied", as in + * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 0 TBFs in + * this PDCH to 1, increase the counter by 1. */ + if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 0) + bts_stat_item_inc(trx->bts, STAT_PDCH_OCCUPIED); + m_num_tbfs[tbf->direction] += 1; if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); @@ -1063,6 +1071,12 @@ OSMO_ASSERT(m_num_tbfs[tbf->direction] > 0); + /* Count PDCHs with at least one TBF as "occupied", as in + * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 1 TBFs in + * this PDCH to 0, decrease the counter by 1. */ + if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 1) + bts_stat_item_dec(trx->bts, STAT_PDCH_OCCUPIED); + m_num_tbfs[tbf->direction] -= 1; if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74760a68ee055510a79e80854ec7bf1521669119 Gerrit-Change-Number: 25333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:58:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:58:04 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 to look at the new patch set (#6). Change subject: MS Power Control Loop: Take C/I into account ...................................................................... MS Power Control Loop: Take C/I into account This commit extends existing MS Power Control Loop algorithm to take into account computed C/I values on the UL, received from MS. The related C/I parameters used by the algorithm are configured at and provided by the BSC, which transmits them to the BTS similar to already existing parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/gsm_data.c M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 10 files changed, 414 insertions(+), 137 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/25268/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 15:58:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:58:04 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 to look at the new patch set (#4). Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... BS Power Control Loop: Support EWMA average algo for RxQual meas params->rxqual_meas.upper_thresh is left unchecked in lchan_bs_pwr_ctrl() on this commit on purpose, to keep this commit with old behavior wrt to algo logic. Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf --- M include/osmo-bts/gsm_data.h M src/common/power_control.c M tests/power/bs_power_loop_test.err 3 files changed, 103 insertions(+), 101 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/25326/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 4 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 Fri Sep 3 15:58:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 15:58:05 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() This commit reworks the code in function lchan_bs_pwr_ctrl() and logging to look similar to that of lchan_ms_pwr_ctrl(), so that reader can easily spot similarities between both and add simillar features more easily. This commit is also a preparation to add EWMA avg support for RxQual measurements. Logging is also reworked now to look similar to that of MS Power Control Loop, because having several parameters driving the algo (RxLev and RxQual), it becomes more suitable to log all of them together instead of intermediate info only aplicable to one param such as "delta". Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 138 insertions(+), 149 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/25334/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index d23153f..4c3ff89 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -287,8 +287,8 @@ uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; uint8_t rxqual, rxlev; - int8_t dl_rssi_dbm_avg; - int delta, new; + int8_t dl_rssi_dbm, dl_rssi_dbm_avg; + int new_att; /* Check if dynamic BS Power Control is enabled */ if (params == NULL) @@ -341,68 +341,54 @@ rxlev = rxlev_full; } - dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev2dbm(rxlev)); - + dl_rssi_dbm = rxlev2dbm(rxlev); + dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dl_rssi_dbm); /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ if (rxqual > params->rxqual_meas.lower_thresh) { - uint8_t old = state->current; - - /* Tx power has reached the maximum, nothing to do */ - if (state->current == 0) - return 0; - /* Increase Tx power by reducing Tx attenuation */ - if (state->current >= params->inc_step_size_db) - state->current -= params->inc_step_size_db; - else - state->current = 0; - - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation: " - "%u -> %d dB due to RxQual %u worse than L_RXQUAL_XX_P %u\n", - old, state->current, rxqual, params->rxqual_meas.lower_thresh); - return 1; + new_att = state->current - params->inc_step_size_db; + } else { + /* Basic signal transmission / reception formula: + * + * RxLev = TxPwr - (PathLoss + TxAtt) + * + * Here we want to change RxLev at the MS side, so: + * + * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta + * + * The only parameter we can change here is TxAtt, so: + * + * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta + * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) + */ + new_att = state->current - calc_delta_rxlev(params, state, dl_rssi_dbm_avg); } - /* Calculate a 'delta' for the current attenuation level */ - delta = calc_delta_rxlev(params, state, dl_rssi_dbm_avg); + /* Make sure new TxAtt is never negative: */ + if (new_att < 0) + new_att = 0; - /* Basic signal transmission / reception formula: - * - * RxLev = TxPwr - (PathLoss + TxAtt) - * - * Here we want to change RxLev at the MS side, so: - * - * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta - * - * The only parameter we can change here is TxAtt, so: - * - * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta - * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) - */ - new = state->current - delta; - if (new > state->max) - new = state->max; - if (new < 0) - new = 0; + /* Don't ask for higher TxAtt than permitted: */ + if (new_att > state->max) + new_att = state->max; - if (state->current != new) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, suggested delta %d dB, " - "RxLev current %u (%d dBm), thresholds %u .. %u)\n", - state->current, new, state->max, - -delta, rxlev, rxlev2dbm(rxlev), - params->rxlev_meas.lower_thresh, - params->rxlev_meas.upper_thresh); - state->current = new; - return 1; - } else { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, suggested delta %d dB, " - "RxLev current %u (%d dBm), thresholds %u .. %u)\n", - state->current, state->max, - -delta, rxlev, rxlev2dbm(rxlev), - params->rxlev_meas.lower_thresh, - params->rxlev_meas.upper_thresh); + if (state->current == new_att) { + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping DL attenuation at %u dB: " + "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " + "RxQual[curr %d, thresh %d..%d]\n", + state->current, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + rxqual, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); return 0; } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s DL attenuation %u dB => %u dB:" + "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " + "RxQual[curr %d, thresh %d..%d]\n", + (new_att > state->current) ? "Raising" : "Lowering", + state->current, new_att, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + rxqual, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); + state->current = new_att; + return 1; } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index c4726b1..6af6c3f 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,196 +1,199 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 10 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 14 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 18 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 18 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 16 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 14 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 2 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 2 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 11 dB:max 20 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 20 dB, RSSI[curr -78, avg -78, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 13 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, suggested delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 13 dB => 16 dB:max 20 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, suggested delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 10 dB => 9 dB:max 20 dB, RSSI[curr -81, avg -81, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 9 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, suggested delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 9 dB => 6 dB:max 20 dB, RSSI[curr -83, avg -83, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 6 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, suggested delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 6 dB => 1 dB:max 20 dB, RSSI[curr -85, avg -85, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 1 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 1, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 2, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 3, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 4, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 12 -> 8 dB due to RxQual 5 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -76, avg -76, thresh -80..-80] dBm, RxQual[curr 5, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 8 -> 4 dB due to RxQual 6 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -72, avg -72, thresh -80..-80] dBm, RxQual[curr 6, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -66, avg -66, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 13 dB:max 16 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, suggested delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 16 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -79, avg -79, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -77, avg -77, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, suggested delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 14 dB:max 30 dB, RSSI[curr -84, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, suggested delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 11 dB:max 30 dB, RSSI[curr -84, avg -83, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, suggested delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 12 dB:max 30 dB, RSSI[curr -75, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, suggested delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 30 dB, RSSI[curr -75, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-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 Sep 3 16:00:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 3 Sep 2021 16:00:11 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25330/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/25330/2//COMMIT_MSG at 10 PS2, Line 10: PDCHs attached TBFs? Attached UEs? The sentence reads like a "PDCH TS" has multiple "attached PDCHs", which doesn't make sene to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 03 Sep 2021 16:00: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 Fri Sep 3 16:01:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:01:03 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h at 929 PS2, Line 929: uint8_t > But 'ipac_preproc_pc_comp' is for RxLev and RxQual, which are unsigned. [?] These fields are independent of the value type of the measurement, it's just saying "p times out of N", so they unsigned since they are counters. In any case, C/I thresholds are defined to be 0-30, hence unsigned, since other values are considered non interesting at all. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 16:01:03 +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 Sep 3 16:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:01:35 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 03 Sep 2021 16:01: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 Sep 3 16:01:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:01:37 +0000 Subject: Change in osmo-pcu[master]: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dro... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25330 ) Change subject: pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped ...................................................................... pdch: Make sure pending ImmAssRej scheduled for disabled pdch are dropped When a PDCH TS becomes disabled (eg due to dyn TS being used for a call), we are currently freeing all attached PDCHs in order to avoid further use of it. However, pdch_free_all_tbf() was only freeing TBFs attached to the PDCH, that is, TBFs having a valid TFI assigned. There are some cases where temporary dummy TBFs are created which have no TFI assigned, such as when creating an ImmAssReject. Let's take those into account too, and make sure they are freed. Related: OS#5226 Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 --- M src/pdch.cpp 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/pdch.cpp b/src/pdch.cpp index da43bdf..49f9eb6 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1145,6 +1145,9 @@ void pdch_free_all_tbf(struct gprs_rlcmac_pdch *pdch) { + struct llist_item *pos; + struct llist_item *pos2; + for (uint8_t tfi = 0; tfi < 32; tfi++) { struct gprs_rlcmac_tbf *tbf; @@ -1155,6 +1158,15 @@ if (tbf) tbf_free(tbf); } + + /* Some temporary dummy TBFs to tx ImmAssRej may be left linked to the + * PDCH, since they have no TFI assigned (see handle_tbf_reject()). + * Get rid of them too: */ + llist_for_each_entry_safe(pos, pos2, &pdch->trx->ul_tbfs, list) { + struct gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf((struct gprs_rlcmac_tbf *)pos->entry); + if (ul_tbf->control_ts == pdch->ts_no) + tbf_free(ul_tbf); + } } void pdch_disable(struct gprs_rlcmac_pdch *pdch) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25330 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfe78448ebdedc8b049c80664711e166d910f9b7 Gerrit-Change-Number: 25330 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 16:03:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:03:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 ) Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... Patch Set 1: What does "available/occupied" mean? Enabled/disabled? That's the terminology we use. Maybe "activated/deactivated" could serve too. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 16:03: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 Sep 3 16:04:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 16:04:11 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25335 ) Change subject: mgcp_client: add MGW name as logging context ...................................................................... mgcp_client: add MGW name as logging context Usually only one MGCP client per application is present. Then the log lines from mgcp_client.c will be distinguishable without additional information. When the application is using a pool of MGWs, then the various MGCP Client instances become hard to distinguish. - Add a possibility to set a description (name) for each MGW pool member. When no description is set, use the domain name. - Output the pool member name on each log line in mgcp_client.c and mgcp_client_pool.c Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Related: SYS#5091 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_pool_internal.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_pool.c M src/libosmo-mgcp-client/mgcp_client_vty.c 5 files changed, 165 insertions(+), 96 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/35/25335/1 diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 4d162d0..0405175 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -32,6 +32,9 @@ * 'rtpbridge/(wildcard)' or a number of specific E1 like e.g. * 'ds/e1-0/s-3/su16-4' */ struct llist_head reset_epnames; + + /* human readable name / description */ + char *description; }; typedef unsigned int mgcp_trans_id_t; @@ -173,3 +176,5 @@ enum mgcp_codecs codec); enum mgcp_codecs map_pt_to_codec(struct ptmap *ptmap, unsigned int ptmap_len, unsigned int pt); + +const char *mgcp_client_name(const struct mgcp_client *mgcp); diff --git a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h index c58ec02..95f5525 100644 --- a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h +++ b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h @@ -41,3 +41,5 @@ /* VTY node specification used with this pool. This field is populated by mgcp_client_pool_vty_init() */ struct cmd_node *vty_node; }; + +const char *mgcp_client_pool_member_name(const struct mgcp_client_pool_member *pool_member); diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 2bed90f..5945459 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -46,6 +46,9 @@ #define OSMUX_CID_MAX 255 /* FIXME: use OSMUX_CID_MAX from libosmo-netif? */ #endif +#define LOGPMGW(mgcp, level, fmt, args...) \ +LOGP(DLMGCP, level, "MGW(%s) " fmt, mgcp_client_name(mgcp), ## args) + /* Codec descripton for dynamic payload types (SDP) */ const struct value_string osmo_mgcpc_codec_names[] = { { CODEC_PCMU_8000_1, "PCMU/8000/1" }, @@ -209,14 +212,13 @@ struct mgcp_response *response) { if (!pending) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot handle NULL response\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot handle NULL response\n"); return; } if (pending->response_cb) pending->response_cb(response, pending->priv); else - LOGP(DLMGCP, LOGL_DEBUG, "MGCP response ignored (NULL cb)\n"); + LOGPMGW(mgcp, LOGL_DEBUG, "MGCP response ignored (NULL cb)\n"); talloc_free(pending); } @@ -673,26 +675,25 @@ rc = mgcp_response_parse_head(r, msg); if (rc) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot parse MGCP response (head)\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot parse MGCP response (head)\n"); rc = 1; goto error; } - LOGP(DLMGCP, LOGL_DEBUG, "MGCP client: Rx %d %u %s\n", + LOGPMGW(mgcp, LOGL_DEBUG, "MGCP client: Rx %d %u %s\n", r->head.response_code, r->head.trans_id, r->head.comment); rc = parse_head_params(r); if (rc) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot parse MGCP response (head parameters)\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot parse MGCP response (head parameters)\n"); rc = 1; goto error; } pending = mgcp_client_response_pending_get(mgcp, r->head.trans_id); if (!pending) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot find matching MGCP transaction for trans_id %d\n", - r->head.trans_id); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot find matching MGCP transaction for trans_id %d\n", + r->head.trans_id); rc = -ENOENT; goto error; } @@ -713,19 +714,19 @@ msg = msgb_alloc_headroom(4096, 128, "mgcp_from_gw"); if (!msg) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate MGCP message.\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Failed to allocate MGCP message.\n"); return -1; } ret = read(fd->fd, msg->data, 4096 - 128); if (ret <= 0) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to read: %s: %d='%s'\n", osmo_sock_get_name2(fd->fd), - errno, strerror(errno)); + LOGPMGW(mgcp, LOGL_ERROR, "Failed to read: %s: %d='%s'\n", + osmo_sock_get_name2(fd->fd), errno, strerror(errno)); msgb_free(msg); return -1; } else if (ret > 4096 - 128) { - LOGP(DLMGCP, LOGL_ERROR, "Too much data: %s: %d\n", osmo_sock_get_name2(fd->fd), ret); + LOGPMGW(mgcp, LOGL_ERROR, "Too much data: %s: %d\n", osmo_sock_get_name2(fd->fd), ret); msgb_free(msg); return -1; } @@ -739,15 +740,17 @@ static int mgcp_do_write(struct osmo_fd *fd, struct msgb *msg) { int ret; + struct mgcp_client *mgcp = fd->data; - LOGP(DLMGCP, LOGL_DEBUG, "Tx MGCP: %s: len=%u '%s'...\n", - osmo_sock_get_name2(fd->fd), msg->len, osmo_escape_str((const char*)msg->data, OSMO_MIN(42, msg->len))); + LOGPMGW(mgcp, LOGL_DEBUG, "Tx MGCP: %s: len=%u '%s'...\n", + osmo_sock_get_name2(fd->fd), msg->len, + osmo_escape_str((const char*)msg->data,OSMO_MIN(42, msg->len))); ret = write(fd->fd, msg->data, msg->len); if (ret != msg->len) - LOGP(DLMGCP, LOGL_ERROR, "Failed to Tx MGCP: %s: %d='%s'; msg: len=%u '%s'...\n", - osmo_sock_get_name2(fd->fd), errno, strerror(errno), - msg->len, osmo_escape_str((const char*)msg->data, OSMO_MIN(42, msg->len))); + LOGPMGW(mgcp, LOGL_ERROR, "Failed to Tx MGCP: %s: %d='%s'; msg: len=%u '%s'...\n", + osmo_sock_get_name2(fd->fd), errno, strerror(errno), + msg->len, osmo_escape_str((const char*)msg->data, OSMO_MIN(42, msg->len))); return ret; } @@ -780,12 +783,12 @@ if (osmo_strlcpy(mgcp->actual.endpoint_domain_name, conf->endpoint_domain_name, sizeof(mgcp->actual.endpoint_domain_name)) >= sizeof(mgcp->actual.endpoint_domain_name)) { - LOGP(DLMGCP, LOGL_ERROR, "MGCP client: endpoint domain name is too long, max length is %zu: '%s'\n", - sizeof(mgcp->actual.endpoint_domain_name) - 1, conf->endpoint_domain_name); + LOGPMGW(mgcp, LOGL_ERROR, "MGCP client: endpoint domain name is too long, max length is %zu: '%s'\n", + sizeof(mgcp->actual.endpoint_domain_name) - 1, conf->endpoint_domain_name); talloc_free(mgcp); return NULL; } - LOGP(DLMGCP, LOGL_NOTICE, "MGCP client: using endpoint domain '@%s'\n", mgcp_client_endpoint_domain(mgcp)); + LOGPMGW(mgcp, LOGL_NOTICE, "MGCP client: using endpoint domain '@%s'\n", mgcp_client_endpoint_domain(mgcp)); INIT_LLIST_HEAD(&mgcp->actual.reset_epnames); llist_for_each_entry(reset_ep, &conf->reset_epnames, list) { @@ -793,6 +796,9 @@ llist_add_tail(&actual_reset_ep->list, &mgcp->actual.reset_epnames); } + if (conf->description) + mgcp->actual.description = talloc_strdup(mgcp, conf->description); + return mgcp; } @@ -821,21 +827,21 @@ if (i == retry_n_ports) { /* Last try failed */ - LOGP(DLMGCP, LOGL_NOTICE, "MGCPGW failed to bind to %s:%d -- check configuration!\n", + LOGPMGW(mgcp, LOGL_NOTICE, "Failed to bind to %s:%d -- check configuration!\n", mgcp->actual.local_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.local_port); if (retry_n_ports == 0) return -EINVAL; } else { /* Choose a new port number to try next */ - LOGP(DLMGCP, LOGL_NOTICE, - "MGCPGW failed to bind to %s:%d, retrying with port %d -- check configuration!\n", + LOGPMGW(mgcp, LOGL_NOTICE, + "Failed to bind to %s:%d, retrying with port %d -- check configuration!\n", mgcp->actual.local_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.local_port, mgcp->actual.local_port + 1); mgcp->actual.local_port++; } } - LOGP(DLMGCP, LOGL_FATAL, "MGCPGW failed to find a port to bind on %u times -- check configuration!\n", i); + LOGPMGW(mgcp, LOGL_FATAL, "Failed to find a port to bind on %u times -- check configuration!\n", i); return -EINVAL; } @@ -862,12 +868,12 @@ rc = snprintf(endpoint, sizeof(endpoint), "%s@%s", name, mgcp_client_endpoint_domain(mgcp)); if (rc > sizeof(endpoint) - 1) { - LOGP(DLMGCP, LOGL_ERROR, "MGCP endpoint exceeds maximum length of %zu: '%s@%s'\n", - sizeof(endpoint) - 1, name, mgcp_client_endpoint_domain(mgcp)); + LOGPMGW(mgcp, LOGL_ERROR, "MGCP endpoint exceeds maximum length of %zu: '%s@%s'\n", + sizeof(endpoint) - 1, name, mgcp_client_endpoint_domain(mgcp)); return NULL; } if (rc < 1) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP endpoint name\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot compose MGCP endpoint name\n"); return NULL; } return endpoint; @@ -885,7 +891,7 @@ const char *epname; if (!mgcp) { - LOGP(DLMGCP, LOGL_FATAL, "MGCPGW client not initialized properly\n"); + LOGPMGW(mgcp, LOGL_FATAL, "Client not initialized properly\n"); return -EINVAL; } @@ -898,21 +904,21 @@ rc = init_socket(mgcp, retry_n_ports); if (rc < 0) { - LOGP(DLMGCP, LOGL_FATAL, - "Failed to initialize socket %s:%u -> %s:%u for MGCP GW: %s\n", + LOGPMGW(mgcp, LOGL_FATAL, + "Failed to initialize socket %s:%u -> %s:%u for MGW: %s\n", mgcp->actual.local_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.local_port, mgcp->actual.remote_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.remote_port, strerror(errno)); goto error_close_fd; } - LOGP(DLMGCP, LOGL_INFO, "MGCP GW connection: %s\n", osmo_sock_get_name2(wq->bfd.fd)); + LOGPMGW(mgcp, LOGL_INFO, "MGW connection: %s\n", osmo_sock_get_name2(wq->bfd.fd)); /* If configured, send a DLCX message to the endpoints that are configured to * be reset on startup. Usually this is a wildcarded endpoint. */ llist_for_each_entry(reset_ep, &mgcp->actual.reset_epnames, list) { epname = _mgcp_client_name_append_domain(mgcp, reset_ep->name); - LOGP(DLMGCP, LOGL_INFO, "MGCP GW sending DLCX to: %s\n", epname); + LOGPMGW(mgcp, LOGL_INFO, "Sending DLCX to: %s\n", epname); _mgcp_client_send_dlcx(mgcp, epname); } return 0; @@ -938,13 +944,13 @@ struct osmo_wqueue *wq; if (!mgcp) { - LOGP(DLMGCP, LOGL_FATAL, "MGCPGW client not initialized properly\n"); + LOGP(DLMGCP, LOGL_FATAL, "MGCP client not initialized properly\n"); return; } wq = &mgcp->wq; osmo_wqueue_clear(wq); - LOGP(DLMGCP, LOGL_INFO, "MGCP GW connection: %s -- closed!\n", osmo_sock_get_name2(wq->bfd.fd)); + LOGPMGW(mgcp, LOGL_INFO, "MGCP association: %s -- closed!\n", osmo_sock_get_name2(wq->bfd.fd)); close(wq->bfd.fd); wq->bfd.fd = -1; if (osmo_fd_is_registered(&wq->bfd)) @@ -1014,7 +1020,7 @@ talloc_asprintf(ctx, "ds/e1-%u/s-%u/su%u-%u@%s", trunk_id, ts, rate, offset, mgcp_client_endpoint_domain(mgcp)); if (!epname) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name!\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name!\n"); return NULL; } @@ -1024,9 +1030,9 @@ rate_offs_valid = true; } if (!rate_offs_valid) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot compose MGCP e1-endpoint name (%s), rate(%u)/offset(%u) combination is invalid!\n", epname, - rate, offset); + LOGPMGW(mgcp, LOGL_ERROR, + "Cannot compose MGCP e1-endpoint name (%s), rate(%u)/offset(%u) combination is invalid!\n", + epname, rate, offset); talloc_free(epname); return NULL; } @@ -1034,8 +1040,9 @@ /* An E1 line has a maximum of 32 timeslots, while the first (ts=0) is * reserverd for framing and alignment, so we can not use it here. */ if (ts == 0 || ts > NUM_E1_TS-1) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot compose MGCP e1-endpoint name (%s), E1-timeslot number (%u) is invalid!\n", epname, ts); + LOGPMGW(mgcp, LOGL_ERROR, + "Cannot compose MGCP e1-endpoint name (%s), E1-timeslot number (%u) is invalid!\n", + epname, ts); talloc_free(epname); return NULL; } @@ -1063,7 +1070,7 @@ return pending; } -/* Send the MGCP message in msg to the MGCP GW and handle a response with +/* Send the MGCP message in msg to the MGW and handle a response with * response_cb. NOTE: the response_cb still needs to call * mgcp_response_parse_params(response) to get the parsed parameters -- to * potentially save some CPU cycles, only the head line has been parsed when @@ -1080,8 +1087,8 @@ trans_id = msg->cb[MSGB_CB_MGCP_TRANS_ID]; if (!trans_id) { - LOGP(DLMGCP, LOGL_ERROR, - "Unset transaction id in mgcp send request\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Unset transaction id in mgcp send request\n"); talloc_free(msg); return -EINVAL; } @@ -1096,9 +1103,9 @@ } if (msgb_l2len(msg) > 4096) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot send, MGCP message too large: %u\n", - msgb_l2len(msg)); + LOGPMGW(mgcp, LOGL_ERROR, + "Cannot send, MGCP message too large: %u\n", + msgb_l2len(msg)); msgb_free(msg); rc = -EINVAL; goto mgcp_tx_error; @@ -1106,12 +1113,12 @@ rc = osmo_wqueue_enqueue(&mgcp->wq, msg); if (rc) { - LOGP(DLMGCP, LOGL_FATAL, "Could not queue message to MGCP GW\n"); + LOGPMGW(mgcp, LOGL_FATAL, "Could not queue message to MGW\n"); msgb_free(msg); goto mgcp_tx_error; } else - LOGP(DLMGCP, LOGL_DEBUG, "Queued %u bytes for MGCP GW\n", - msgb_l2len(msg)); + LOGPMGW(mgcp, LOGL_DEBUG, "Queued %u bytes for MGW\n", + msgb_l2len(msg)); return 0; mgcp_tx_error: @@ -1138,10 +1145,10 @@ struct mgcp_response_pending *pending = mgcp_client_response_pending_get(mgcp, trans_id); if (!pending) { /*! Note: it is not harmful to cancel a transaction twice. */ - LOGP(DLMGCP, LOGL_ERROR, "Cannot cancel, no such transaction: %u\n", trans_id); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot cancel, no such transaction: %u\n", trans_id); return -ENOENT; } - LOGP(DLMGCP, LOGL_DEBUG, "Canceled transaction %u\n", trans_id); + LOGPMGW(mgcp, LOGL_DEBUG, "Canceled transaction %u\n", trans_id); talloc_free(pending); return 0; /*! We don't really need to clean up the wqueue: In all sane cases, the msgb has already been sent @@ -1233,8 +1240,8 @@ /* Determine local IP-Address */ if (osmo_sock_local_ip(local_ip, mgcp->actual.remote_addr) < 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Could not determine local IP-Address!\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Could not determine local IP-Address!\n"); msgb_free(msg); return -EINVAL; } @@ -1259,14 +1266,14 @@ /* Add RTP address and port */ if (mgcp_msg->audio_port == 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Invalid port number, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Invalid port number, can not generate MGCP message\n"); msgb_free(msg); return -EINVAL; } if (strlen(mgcp_msg->audio_ip) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty ip address, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Empty ip address, can not generate MGCP message\n"); msgb_free(msg); return -EINVAL; } @@ -1323,8 +1330,7 @@ rc |= msgb_printf(msg, "a=ptime:%u\r\n", mgcp_msg->ptime); if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "message buffer to small, can not generate MGCP message (SDP)\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Message buffer to small, can not generate MGCP message (SDP)\n"); msgb_free(msg); return -ENOBUFS; } @@ -1371,16 +1377,15 @@ rc |= msgb_printf(msg, "RSIP %u", trans_id); break; default: - LOGP(DLMGCP, LOGL_ERROR, - "Invalid command verb, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Invalid command verb, can not generate MGCP message\n"); msgb_free(msg); return NULL; } /* Check if mandatory fields are missing */ if (!((mgcp_msg->presence & mandatory_mask) == mandatory_mask)) { - LOGP(DLMGCP, LOGL_ERROR, - "One or more missing mandatory fields, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "One or more missing mandatory fields, can not generate MGCP message\n"); msgb_free(msg); return NULL; } @@ -1388,16 +1393,15 @@ /* Add endpoint name */ if (mgcp_msg->presence & MGCP_MSG_PRESENCE_ENDPOINT) { if (strlen(mgcp_msg->endpoint) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty endpoint name, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Empty endpoint name, can not generate MGCP message\n"); msgb_free(msg); return NULL; } if (strstr(mgcp_msg->endpoint, "@") == NULL) { - LOGP(DLMGCP, LOGL_ERROR, - "Endpoint name (%s) lacks separator (@), can not generate MGCP message\n", - mgcp_msg->endpoint); + LOGPMGW(mgcp, LOGL_ERROR, + "Endpoint name (%s) lacks separator (@), can not generate MGCP message\n", + mgcp_msg->endpoint); msgb_free(msg); return NULL; } @@ -1415,8 +1419,7 @@ /* Add connection id */ if (mgcp_msg->presence & MGCP_MSG_PRESENCE_CONN_ID) { if (strlen(mgcp_msg->conn_id) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty connection id, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Empty connection id, can not generate MGCP message\n"); msgb_free(msg); return NULL; } @@ -1453,9 +1456,8 @@ /* Add X-Osmo-Osmux */ if ((mgcp_msg->presence & MGCP_MSG_PRESENCE_X_OSMO_OSMUX_CID)) { if (mgcp_msg->x_osmo_osmux_cid < -1 || mgcp_msg->x_osmo_osmux_cid > OSMUX_CID_MAX) { - LOGP(DLMGCP, LOGL_ERROR, - "Wrong Osmux CID %d, can not generate MGCP message\n", - mgcp_msg->x_osmo_osmux_cid); + LOGPMGW(mgcp, LOGL_ERROR, "Wrong Osmux CID %d, can not generate MGCP message\n", + mgcp_msg->x_osmo_osmux_cid); msgb_free(msg); return NULL; } @@ -1475,8 +1477,7 @@ } if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "message buffer to small, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Message buffer to small, can not generate MGCP message\n"); msgb_free(msg); msg = NULL; } @@ -1508,3 +1509,22 @@ { MGCP_CONN_LOOPBACK, "loopback" }, { 0, NULL } }; + +/*! Get MGCP client instance mame (VTY). + * \param[in] mgcp MGCP client descriptor. + * \returns MGCP client name. + * + * The user can only modify the name of an MGCP client instance when it is + * part of a pool. For single MGCP client instances and MGCP client instance + * where no description is set via the VTY, the MGW domain name will be used + * as name. */ +const char *mgcp_client_name(const struct mgcp_client *mgcp) +{ + if (!mgcp) + return "(null)"; + + if (mgcp->actual.description) + return mgcp->actual.description; + else + return mgcp_client_endpoint_domain(mgcp); +} diff --git a/src/libosmo-mgcp-client/mgcp_client_pool.c b/src/libosmo-mgcp-client/mgcp_client_pool.c index 9311ac9..b61319d 100644 --- a/src/libosmo-mgcp-client/mgcp_client_pool.c +++ b/src/libosmo-mgcp-client/mgcp_client_pool.c @@ -24,6 +24,38 @@ #include #include +#define LOGPPMGW(pool_member, level, fmt, args...) \ +LOGP(DLMGCP, level, "MGW-pool(%s) " fmt, mgcp_client_pool_member_name(pool_member), ## args) + +/* Get a human readable name for a given pool member. */ +const char *mgcp_client_pool_member_name(const struct mgcp_client_pool_member *pool_member) +{ + const struct mgcp_client *mpcp_client; + struct mgcp_client mpcp_client_dummy; + static char name[512]; + const char *description; + + if (!pool_member) + return "(null)"; + + /* It is not guranteed that a pool_member has an MGCP client. The client may not yet be initialzed or the + * initalization may have been failed. In this case we will generate a dummy MGCP client to work with. */ + if (!pool_member->client) { + memcpy(&mpcp_client_dummy.actual, &pool_member->conf, sizeof(mpcp_client_dummy.actual)); + mpcp_client = &mpcp_client_dummy; + } else { + mpcp_client = pool_member->client; + } + + if (mpcp_client->actual.description) + description = mpcp_client->actual.description; + else + description = mgcp_client_endpoint_domain(mpcp_client); + snprintf(name, sizeof(name), "%i:%s", pool_member->nr, description); + + return name; +} + /*! Allocate MGCP client pool. This is called once on startup and before the pool is used with * mgcp_client_pool_vty_init(). Since the pool is linked with the VTY it must exist througout the entire runtime. * \param[in] talloc_ctx talloc context. */ @@ -53,7 +85,7 @@ /* Initialize client */ pool_member->client = mgcp_client_init(pool_member, &pool_member->conf); if (!pool_member->client) { - LOGP(DLMGCP, LOGL_ERROR, "MGW %u initialization failed\n", pool_member->nr); + LOGPPMGW(pool_member, LOGL_ERROR, "MGCP client initialization failed\n"); continue; } @@ -63,8 +95,8 @@ /* Connect client */ if (mgcp_client_connect2(pool_member->client, 0)) { - LOGP(DLMGCP, LOGL_ERROR, "MGW %u connect failed at (%s:%u)\n", - pool_member->nr, pool_member->conf.remote_addr, pool_member->conf.remote_port); + LOGPPMGW(pool_member, LOGL_ERROR, "MGCP client connect failed at (%s:%u)\n", + pool_member->conf.remote_addr, pool_member->conf.remote_port); talloc_free(pool_member->client); pool_member->client = NULL; continue; @@ -104,14 +136,14 @@ else if (pool_member_picked->refcount > pool_member->refcount) pool_member_picked = pool_member; } else { - LOGP(DLMGCP, LOGL_DEBUG, "MGW pool has %u members -- MGW %u is unusable\n", n_pool_members, - pool_member->nr); + LOGPPMGW(pool_member, LOGL_DEBUG, "MGW pool has %u members -- MGW %u is unusable\n", n_pool_members, + pool_member->nr); } } if (pool_member_picked) { - LOGP(DLMGCP, LOGL_DEBUG, "MGW pool has %u members -- using MGW %u (active calls: %u)\n", - n_pool_members, pool_member_picked->nr, pool_member_picked->refcount); + LOGPPMGW(pool_member_picked, LOGL_DEBUG, "MGW pool has %u members -- using MGW %u (active calls: %u)\n", + n_pool_members, pool_member_picked->nr, pool_member_picked->refcount); return pool_member_picked; } @@ -135,7 +167,8 @@ /* When the pool is empty, return a single MGCP client if it is registered. */ if (llist_empty(&pool->pool) && pool->mgcp_client_single) { - LOGP(DLMGCP, LOGL_DEBUG, "MGW pool is empty -- using (single) MGW\n"); + LOGP(DLMGCP, LOGL_DEBUG, "MGW pool is empty -- using (single) MGW %s\n", + mgcp_client_name(pool->mgcp_client_single)); return pool->mgcp_client_single; } @@ -177,7 +210,7 @@ llist_for_each_entry(pool_member, &pool->pool, list) { if (pool_member->client == mgcp_client) { if (pool_member->refcount == 0) { - LOGP(DLMGCP, LOGL_ERROR, "MGW %u has invalid refcount\n", pool_member->nr); + LOGPPMGW(pool_member, LOGL_ERROR, "MGW pool member has invalid refcount\n"); return; } pool_member->refcount--; diff --git a/src/libosmo-mgcp-client/mgcp_client_vty.c b/src/libosmo-mgcp-client/mgcp_client_vty.c index 8719e3c..4bf6cd0 100644 --- a/src/libosmo-mgcp-client/mgcp_client_vty.c +++ b/src/libosmo-mgcp-client/mgcp_client_vty.c @@ -242,6 +242,9 @@ int port; struct reset_ep *reset_ep; + if (conf->description) + vty_out(vty, "%sdescription %s%s", indent, conf->description, VTY_NEWLINE); + addr = conf->local_addr; if (addr) vty_out(vty, "%smgw local-ip %s%s", indent, addr, @@ -366,7 +369,7 @@ } vty->index = &pool_member->conf; - vty->index_sub = NULL; + vty->index_sub = &pool_member->conf.description; vty->node = global_mgcp_client_pool->vty_node->node; return CMD_SUCCESS; @@ -387,8 +390,8 @@ /* Make sure that there are no ongoing calls */ if (pool_member->refcount > 0) { - vty_out(vty, "%% MGCP client (MGW %u) is still serving ongoing calls -- can't remove it now!%s", - pool_member->nr, VTY_NEWLINE); + vty_out(vty, "%% MGCP client (MGW %s) is still serving ongoing calls -- can't remove it now!%s", + mgcp_client_pool_member_name(pool_member), VTY_NEWLINE); return CMD_WARNING; } @@ -417,8 +420,8 @@ /* Make sure that there are no ongoing calls */ if (pool_member->refcount > 0) { - vty_out(vty, "%% MGCP client (MGW %u) is still serving ongoing calls -- can't reconnect it now!%s", - pool_member->nr, VTY_NEWLINE); + vty_out(vty, "%% MGCP client (MGW %s) is still serving ongoing calls -- can't reconnect it now!%s", + mgcp_client_pool_member_name(pool_member), VTY_NEWLINE); return CMD_WARNING; } @@ -431,8 +434,10 @@ /* Create a new MGCP client instance with the current config */ pool_member->client = mgcp_client_init(pool_member, &pool_member->conf); if (!pool_member->client) { - LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %u initalization failed\n", pool_member->nr); - vty_out(vty, "%% MGCP client initalization failed ('%s')%s", argv[0], VTY_NEWLINE); + LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %s initalization failed\n", + mgcp_client_pool_member_name(pool_member)); + vty_out(vty, "%% MGCP client (MGW %s) initalization failed ('%s')%s", + mgcp_client_pool_member_name(pool_member), argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -441,11 +446,13 @@ /* Connect client */ if (mgcp_client_connect(pool_member->client)) { - LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %u connect failed at (%s:%u)\n", - pool_member->nr, pool_member->conf.remote_addr, pool_member->conf.remote_port); + LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %s connect failed at (%s:%u)\n", + mgcp_client_pool_member_name(pool_member), pool_member->conf.remote_addr, + pool_member->conf.remote_port); talloc_free(pool_member->client); pool_member->client = NULL; - vty_out(vty, "%% MGCP client initalization failed ('%s')%s", argv[0], VTY_NEWLINE); + vty_out(vty, "%% MGCP client (MGW %s) initalization failed ('%s')%s", + mgcp_client_pool_member_name(pool_member), argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -500,7 +507,7 @@ } llist_for_each_entry(pool_member, &global_mgcp_client_pool->pool, list) { - vty_out(vty, "%% MGW %u%s", pool_member->nr, VTY_NEWLINE); + vty_out(vty, "%% MGW %s%s", mgcp_client_pool_member_name(pool_member), VTY_NEWLINE); vty_out(vty, "%% mgcp-client: %s%s", pool_member->client ? "connected" : "disconnected", VTY_NEWLINE); vty_out(vty, "%% service: %s%s", pool_member->blocked ? "blocked" : "unblocked", VTY_NEWLINE); @@ -538,6 +545,8 @@ install_node(pool->vty_node, config_write_pool); vty_init_common(pool, mgw_node); + install_element(mgw_node, &cfg_description_cmd); + install_lib_element(ENABLE_NODE, &mgw_reconnect_cmd); install_lib_element(ENABLE_NODE, &mgw_block_cmd); install_lib_element(ENABLE_NODE, &mgw_unblock_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 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 Sep 3 16:05:27 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 16:05:27 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25336 ) Change subject: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs ...................................................................... osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs The MGCP proxy which is built into osmo-bsc is used to tunnel MGCP messages through an SCCP-lite link. This is an SCCP-lite specific implementation detail that is not present in SCCP/AoIP. Change-Id: Id3a8c45ae38d6b9d9c106a9e83b3cbfff919650d Related: SYS#5091 --- M src/osmo-bsc/osmo_bsc_msc.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/36/25336/1 diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index a80ee64..baef4e5 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -165,6 +165,10 @@ uint16_t mgw_port; int rc; + /* Everything below refers to SCCP-Lite MSC connections only. */ + if (msc_is_aoip(msc)) + return 0; + if (net->mgw.conf->remote_port >= 0) mgw_port = net->mgw.conf->remote_port; else -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id3a8c45ae38d6b9d9c106a9e83b3cbfff919650d Gerrit-Change-Number: 25336 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 Sep 3 16:08:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:08:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 ) Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... Patch Set 1: Code-Review+1 Ah I see now that those namings are coming from TS 52.402. A better explanation/reference somewhere in this commit would help though -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 16: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 Fri Sep 3 16:11:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:11:41 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.available/occupied In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25333 ) Change subject: Add stats: pcu.bts.N.pdch.available/occupied ...................................................................... Patch Set 1: Code-Review+1 Fine, though I'm not sure these counters are really useful, since the allocation algo tries to extend TBFs through TRX and PDCHs, to pretty quickly all will be occupied. I mean, this is not a good measurement to understand how loaded the PCU is. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74760a68ee055510a79e80854ec7bf1521669119 Gerrit-Change-Number: 25333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 16:11: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 Sep 3 16:13:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:13:05 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25336 ) Change subject: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id3a8c45ae38d6b9d9c106a9e83b3cbfff919650d Gerrit-Change-Number: 25336 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 16: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 Fri Sep 3 16:16:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 16:16:17 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... Patch Set 5: Code-Review-1 (6 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/doc/manuals/chapters/power_control.adoc File doc/manuals/chapters/power_control.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/doc/manuals/chapters/power_control.adoc at 211 PS5, Line 211: The general idea of power control is to maintain the signal level (RxLev) and Looks like an unrelated/unneeded reformatting change to me. I don't see words added or removed, things just moved around. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/doc/manuals/chapters/power_control.adoc at 257 PS5, Line 257: rxlev-thresh lower 32 upper 38 <2> These changes also look unrelated to me. I am not against them, just don't see how could they related to the C/I parameters you're adding. I would CR+2 a separate change, thanks! https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/doc/manuals/chapters/power_control.adoc at 368 PS5, Line 368: ci-avg amr-fr algo osmo-ewma beta 50 <4> Looks like you wanted to use <6> and <7> here. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/2/src/osmo-bsc/bts_vty.c at 3068 PS2, Line 3068: Channel Type (E)GPRS > So far, I'm just adding it for completeness when doing all the monkey-type work, since we got values [?] I would still avoid making this configurable in the VTY unless it's actually implemented. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/src/osmo-bsc/bts_vty.c at 3227 PS5, Line 3227: lower_cmp_p, lower_cmp_n Not fixed: upper_cmp_p, upper_cmp_n. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/5/src/osmo-bsc/gsm_data.c at 1201 PS5, Line 1201: C/I averaging is not yet implemented As far as I can see, I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 implements it in osmo-bts. So I guess it makes sense to enable EWMA with some alpha by default? Or at least remove this comment? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 03 Sep 2021 16:16:17 +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 Sep 3 16:19:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 3 Sep 2021 16:19:11 +0000 Subject: Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25299 ) Change subject: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h File include/osmocom/gsm/protocol/gsm_08_58.h: https://gerrit.osmocom.org/c/libosmocore/+/25299/2/include/osmocom/gsm/protocol/gsm_08_58.h at 929 PS2, Line 929: uint8_t > These fields are independent of the value type of the measurement, it's just saying "p times out of [?] Ack, makes sense. Thanks for explanation. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25299 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Iffef0611430ad6c90606149c398d80158633bbca Gerrit-Change-Number: 25299 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 16:19:11 +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 Sep 3 16:31:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 16:31:01 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context 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/+/25335 to look at the new patch set (#2). Change subject: mgcp_client: add MGW name as logging context ...................................................................... mgcp_client: add MGW name as logging context Usually only one MGCP client per application is present. Then the log lines from mgcp_client.c will be distinguishable without additional information. When the application is using a pool of MGWs, then the various MGCP Client instances become hard to distinguish. - Add a possibility to set a description (name) for each MGW pool member. When no description is set, use the domain name. - Output the pool member name on each log line in mgcp_client.c and mgcp_client_pool.c Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Related: SYS#5091 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_pool_internal.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_pool.c M src/libosmo-mgcp-client/mgcp_client_vty.c 5 files changed, 165 insertions(+), 96 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/35/25335/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 16:33:05 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 3 Sep 2021 16:33:05 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context 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/+/25335 to look at the new patch set (#3). Change subject: mgcp_client: add MGW name as logging context ...................................................................... mgcp_client: add MGW name as logging context Usually only one MGCP client per application is present. Then the log lines from mgcp_client.c will be distinguishable without additional information. When the application is using a pool of MGWs, then the various MGCP Client instances become hard to distinguish. - Add a possibility to set a description (name) for each MGW pool member. When no description is set, use the domain name. - Output the pool member name on each log line in mgcp_client.c and mgcp_client_pool.c Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Related: SYS#5091 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_pool_internal.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_pool.c M src/libosmo-mgcp-client/mgcp_client_vty.c M tests/mgcp_client/mgcp_client_test.err 6 files changed, 178 insertions(+), 109 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/35/25335/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 16:45:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:45:36 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#6). Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... MS Power Control Loop: Support set up of C/I parameters for osmo-bts This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. TODO: Update user manual!!!! Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 734 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 16:45:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:45:37 +0000 Subject: Change in osmo-bsc[master]: cosmetic: power_ctrl_params_def: Fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25337 ) Change subject: cosmetic: power_ctrl_params_def: Fix typo in comment ...................................................................... cosmetic: power_ctrl_params_def: Fix typo in comment Change-Id: Ibbbb073fa674666f47d84d8e670790c4028ba874 --- M src/osmo-bsc/gsm_data.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/37/25337/1 diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index e976a5b..481329b 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1173,11 +1173,11 @@ .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages - * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + * out of LOWER_CMP_N averages are lower than L_RXQUAL_XX_P */ .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages - * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + * out of UPPER_CMP_N averages are greater than L_RXQUAL_XX_P */ .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibbbb073fa674666f47d84d8e670790c4028ba874 Gerrit-Change-Number: 25337 Gerrit-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 Sep 3 16:45:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 16:45:38 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Improve VTY snippet foot notes References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25338 ) Change subject: doc: power_control.adoc: Improve VTY snippet foot notes ...................................................................... doc: power_control.adoc: Improve VTY snippet foot notes Change-Id: Ie5f129c418c187d4f331d6e92884f4f507fb018f --- M doc/manuals/chapters/power_control.adoc 1 file changed, 10 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/25338/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 4d212f1..f2a0ec1 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -245,16 +245,18 @@ bts 0 bs-power-control mode dyn-bts <1> - rxlev-thresh lower 32 upper 38 - rxlev-thresh-comp lower 10 12 <2> upper 19 20 <3> - rxqual-thresh lower 3 upper 0 - rxqual-thresh-comp lower 5 7 <4> upper 15 18 <5> + rxlev-thresh lower 32 upper 38 <2> + rxlev-thresh-comp lower 10 12 <3> upper 19 20 <4> + rxqual-thresh lower 3 upper 0 <5> + rxqual-thresh-comp lower 5 7 <6> upper 15 18 <7> ---- <1> BS power control is to be performed by the BTS autonomously. -<2> P1=10 out of N1=12 averages < L_RXLEV_XX_P => increase power. -<3> P2=19 out of N2=20 averages > U_RXLEV_XX_P => decrease power. -<4> P3=5 out of N3=7 averages > L_RXQUAL_XX_P => increase power. -<5> P4=15 out of N4=18 averages < U_RXQUAL_XX_P => decrease power. +<2> L_RXLEV_XX_P=32, U_RXLEV_XX_P=38. +<3> P1=10 out of N1=12 averages < L_RXLEV_XX_P => increase power. +<4> P2=19 out of N2=20 averages > U_RXLEV_XX_P => decrease power. +<5> L_RXQUAL_XX_P=3, U_RXQAUL_XX_P=0. +<6> P3=5 out of N3=7 averages > L_RXQUAL_XX_P => increase power. +<7> P4=15 out of N4=18 averages < U_RXQUAL_XX_P => decrease power. ==== Measurement averaging process -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie5f129c418c187d4f331d6e92884f4f507fb018f Gerrit-Change-Number: 25338 Gerrit-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 Sep 3 17:01:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 17:01:14 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#7). Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... MS Power Control Loop: Support set up of C/I parameters for osmo-bts This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. TODO: Update user manual!!!! Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 568 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 17:06:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 17:06:26 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 to look at the new patch set (#7). Change subject: MS Power Control Loop: Take C/I into account ...................................................................... MS Power Control Loop: Take C/I into account This commit extends existing MS Power Control Loop algorithm to take into account computed C/I values on the UL, received from MS. The related C/I parameters used by the algorithm are configured at and provided by the BSC, which transmits them to the BTS similar to already existing parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/gsm_data.c M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 10 files changed, 504 insertions(+), 137 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/25268/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 17:06:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 17:06:26 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 to look at the new patch set (#5). Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... BS Power Control Loop: Support EWMA average algo for RxQual meas params->rxqual_meas.upper_thresh is left unchecked in lchan_bs_pwr_ctrl() on this commit on purpose, to keep this commit with old behavior wrt to algo logic. Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf --- M include/osmo-bts/gsm_data.h M src/common/gsm_data.c M src/common/power_control.c M tests/power/bs_power_loop_test.err 4 files changed, 105 insertions(+), 102 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/25326/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 5 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 Fri Sep 3 17:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 3 Sep 2021 17:38:44 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#8). Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... MS Power Control Loop: Support set up of C/I parameters for osmo-bts This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. TODO: Update user manual!!!! Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 568 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 18:11:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 3 Sep 2021 18:11:31 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: dexter Gerrit-Comment-Date: Fri, 03 Sep 2021 18:11:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 19:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 19:31:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 3: > Patch Set 3: > > SAme prefix GPRS_SNS_EV* is still used for both internal and public enums, which is really confusing... I've prefixed it with NS2. It's not public btw. only for ns2 code -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 19:31:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 19:57:45 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 19:57:45 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25147 ) Change subject: gprs_ns2: don't use llist_for_each when freeing an element ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25147/4/src/gb/gprs_ns2.c File src/gb/gprs_ns2.c: https://gerrit.osmocom.org/c/libosmocore/+/25147/4/src/gb/gprs_ns2.c at 671 PS4, Line 671: /* prevent recursive free() because of events user/fsm */ > So, the non-generic warning here is that freeing an nsvc can end up in another nsvc being freed? An [?] maybe this on is a little bit better. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 19:57:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 19:58:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 19:58:20 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24591 ) Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... Patch Set 9: (2 comments) My draft was still missing. https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c at 2103 PS4, Line 2103: LOGPFSML(fi, LOGL_ERROR, "NSE %d: weight become invalid because of removing bind %s. Resetting the configuration\n", > Maybe "became", or "has become" is better? Done https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c at 2110 PS4, Line 2110: gprs_ns2_free_nsvc(nsvc); > Check if runtime NSVCs are still valid (sig_weight > 0) Good call. I'm looking into this. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 9 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 19:58:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25144 to look at the new patch set (#4). Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... gprs_ns2: move sns_event into internal.h to direct emit events When other parts of ns2 requires to emit an event to the SNS fsm it would need a proxy function because the events are private to the SNS file. To circumvent creating multiple proxy function make the events available via a header file. Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 2 files changed, 92 insertions(+), 92 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/25144/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: daniel Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25145 to look at the new patch set (#4). Change subject: gprs_ns2_sns: rework sns clean up ...................................................................... gprs_ns2_sns: rework sns clean up Move the cleanup into it's own state. Also changing the SGSN unconfigured state which won't be triggered when a SIZE is received. Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b --- M src/gb/gprs_ns2_sns.c 1 file changed, 33 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/25145/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b Gerrit-Change-Number: 25145 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use an event to free the nsvscs when using SNS In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25146 to look at the new patch set (#4). Change subject: gprs_ns2: use an event to free the nsvscs when using SNS ...................................................................... gprs_ns2: use an event to free the nsvscs when using SNS Otherwise there could be recursive loop when free'ing NSVCs which in the end create an event which the SNS want to free the NSVCs a second time Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 18 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/25146/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 Gerrit-Change-Number: 25146 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing n... In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25323 to look at the new patch set (#3). Change subject: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs ...................................................................... gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs When removing NSVCs before removing the bind from the SNS list, the removing NSVCs could trigger a creation of a new NSVC on the same bind ending in a while(true) loop. Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 --- M src/gb/gprs_ns2.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/25323/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 Gerrit-Change-Number: 25323 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25147 to look at the new patch set (#5). Change subject: gprs_ns2: don't use llist_for_each when freeing an element ...................................................................... gprs_ns2: don't use llist_for_each when freeing an element The problem are recursive execution because a free generates an event which could allow the use to free a nsvcs while the llist_for_each() is still running. Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 28 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/25147/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23187 to look at the new patch set (#16). Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... gprs_ns2_sns: implement local change weight procedure When changing the bind ip-sns weight, initiate a SNS CHANGE WEIGHT procedure to inform the other side. Related: OS#5036 Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 461 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23187/16 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 16 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24123 to look at the new patch set (#13). Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures ...................................................................... gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 193 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/24123/13 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 13 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 20:35:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 20:35:53 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24591 to look at the new patch set (#10). Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... gprs_ns2_sns: implement outbound SNS DEL procedures When removing a bind the remote side needs to be informed via the SNS DELETE procedure. Related: OS#5036 Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 --- M src/gb/gprs_ns2_sns.c 1 file changed, 76 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/24591/10 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 10 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:02:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:02:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/23187 to look at the new patch set (#17). Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... gprs_ns2_sns: implement local change weight procedure When changing the bind ip-sns weight, initiate a SNS CHANGE WEIGHT procedure to inform the other side. Related: OS#5036 Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 460 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/23187/17 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:02:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:02:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24591 to look at the new patch set (#11). Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... gprs_ns2_sns: implement outbound SNS DEL procedures When removing a bind the remote side needs to be informed via the SNS DELETE procedure. Related: OS#5036 Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 --- M src/gb/gprs_ns2_sns.c 1 file changed, 93 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/24591/11 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:02:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:02:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve reselection protection In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25150 to look at the new patch set (#7). Change subject: gprs_ns2: improve reselection protection ...................................................................... gprs_ns2: improve reselection protection Change-Id: I375a7639fb8e0f92fd67bb4176bd6219978aa428 --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/25150/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I375a7639fb8e0f92fd67bb4176bd6219978aa428 Gerrit-Change-Number: 25150 Gerrit-PatchSet: 7 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:03:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:03:18 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24591 ) Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... Patch Set 11: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/24591/4/src/gb/gprs_ns2_sns.c at 2110 PS4, Line 2110: gprs_ns2_free_nsvc(nsvc); > Good call. I'm looking into this. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 11 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 03 Sep 2021 22:03:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:15:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:15:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25339 ) Change subject: ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side ...................................................................... ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side Test the SNS DEL procedure when ns2 is operating the SGSN side. Change-Id: If519da5212470957b922c569b2b8e5a50e12a8a8 --- M ns/NS_Tests.ttcn 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/39/25339/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index e9c3bf4..b45ab91 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -730,6 +730,27 @@ f_clean_ns_codec(); } +testcase TC_sns_sgsn_del() runs on RAW_Test_CT { + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 4, num_ip := 4); + f_outgoing_sns_config(); + f_incoming_sns_config(); + activate(as_rx_alive_tx_ack()); + + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + f_incoming_sns_add(idx_add := 1); + as_rx_alive_tx_ack(oneshot := true, idx := 1); + + /* delete the endpoint */ + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local2"); + f_incoming_sns_del(idx_del := 1); + + setverdict(pass); + f_clean_ns_codec(); +} control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { @@ -790,6 +811,7 @@ if (mp_sns_role == SNS_ROLE_SGSN) { execute( TC_sns_sgsn_config_success() ); execute( TC_sns_sgsn_add() ); + execute( TC_sns_sgsn_del() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If519da5212470957b922c569b2b8e5a50e12a8a8 Gerrit-Change-Number: 25339 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:15:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:15:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_add_change_del similiar to the bss side References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25340 ) Change subject: ns2: add TC_sns_sgsn_add_change_del similiar to the bss side ...................................................................... ns2: add TC_sns_sgsn_add_change_del similiar to the bss side 1. do SNS configuration 2. add a bind 3. receive the SNS_ADD 4. before answering the SNS_ADD, change the weight via vty and remove the bind Change-Id: I1a3d2273279f3def0d225ba78d400fb52a958c64 --- M ns/NS_Tests.ttcn 1 file changed, 47 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/25340/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index b45ab91..c08f877 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -752,6 +752,52 @@ f_clean_ns_codec(); } +/* 1. do SNS configuration + * 2. add a bind + * 3. receive the SNS_ADD + * 4. before answering the SNS_ADD, change the weight via vty and remove the bind + */ +testcase TC_sns_sgsn_add_change_del() runs on RAW_Test_CT { + var PDU_NS rx; + var NSVCConfiguration nsvc_cfg; + + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 4, num_ip := 4); + f_outgoing_sns_config(); + f_incoming_sns_config(); + activate(as_rx_alive_tx_ack()); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + + /* rx SNS ADD */ + nsvc_cfg := g_nsconfig.nsvc[1]; + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + var template (omit) IP4_Elements v4_elem := { ts_SNS_IPv4(nsvc_cfg.provider.ip.remote_ip, + nsvc_cfg.provider.ip.remote_udp_port, + 1, 1) }; + rx := f_ns_exp(tr_SNS_ADD(g_nsconfig.nsei, ?, v4 := v4_elem), 0); + } else { + var template (omit) IP6_Elements v6_elem := { ts_SNS_IPv6(nsvc_cfg.provider.ip.remote_ip, + nsvc_cfg.provider.ip.remote_udp_port, + 1, 1) }; + rx := f_ns_exp(tr_SNS_ADD(g_nsconfig.nsei, ?, omit, v6_elem), 0); + } + + /* delete the endpoint */ + f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 99 data-weight 99"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local2"); + + /* accept the SNS_ADD */ + NSCP[0].send(ts_SNS_ACK(g_nsconfig.nsei, rx.pDU_SNS_Add.transactionID)); + + f_incoming_sns_chg_weight(idx_chg := 1); + f_incoming_sns_del(idx_del := 1, w_sig := 99, w_user := 99); + setverdict(pass); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -812,6 +858,7 @@ execute( TC_sns_sgsn_config_success() ); execute( TC_sns_sgsn_add() ); execute( TC_sns_sgsn_del() ); + execute( TC_sns_sgsn_add_change_del() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a3d2273279f3def0d225ba78d400fb52a958c64 Gerrit-Change-Number: 25340 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:15:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:15:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct w... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns2: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... ns2: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind This TC produces an abort of the ns2 dummy by the memory sanitizer. Test if SNS fails when removing a bind which has the last valid connection. The ns2 has 2 binds, ttcn3 1 bind. There are 2 NSVCs. Bind -- NSVCs -- Bind. (ns2) (ttcn3) 1*-----------*1 / 2*-broken--/ Remove the 1st ns2 bind after the other NSVC has failed. Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b --- M ns/NS_Tests.ttcn 1 file changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/25341/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index c08f877..51a30ab 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -78,6 +78,7 @@ f_vty_set_prompts(NSVTY); f_vty_transceive(NSVTY, "enable"); f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "no ip-sns-bind local2"); f_vty_config2(NSVTY, {"ns", "bind udp local"}, "ip-sns signalling-weight 1 data-weight 1"); f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); @@ -686,6 +687,43 @@ f_clean_ns_codec(); } +/* Test if SNS fails when removing a bind which has the last valid connection + * + * ns2 has 2 binds, ttcn3 1 bind. + * + * nsvcs: + * ns2 ttcn3 + * 1*-----------*1 + * / + * 2*-broken--/ + * + * remove the 1st ns2 bind. + */ +testcase TC_sns_bss_remove_bind_fail_sns() runs on RAW_Test_CT { + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_incoming_sns_size(); + f_incoming_sns_config(); + f_outgoing_sns_config(); + var default d := activate(as_rx_alive_tx_ack()); + + f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + f_incoming_sns_add(idx_add := 1, w_sig := 1, w_user := 1); + /* 2nd bind won't have a valid connection to the ttcn3 */ + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + f_sleep(1.0); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local"); + setverdict(pass); + f_clean_ns_codec(); +} + testcase TC_idle() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); @@ -852,6 +890,7 @@ execute( TC_sns_bss_add_change_del() ); /* execute( TC_sns_bss_all_signalling_nsvcs_failed() ); */ execute( TC_sns_rx_size_force_unconf() ); + execute( TC_sns_bss_remove_bind_fail_sns() ); } if (mp_sns_role == SNS_ROLE_SGSN) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 22:15:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 22:15:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: f_init_vty: only reset SNS configuration when using SNS. References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 ) Change subject: ns2: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... ns2: f_init_vty: only reset SNS configuration when using SNS. Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 --- M ns/NS_Tests.ttcn 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/25342/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 51a30ab..a19477d 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -78,10 +78,12 @@ f_vty_set_prompts(NSVTY); f_vty_transceive(NSVTY, "enable"); f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); - f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); - f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "no ip-sns-bind local2"); - f_vty_config2(NSVTY, {"ns", "bind udp local"}, "ip-sns signalling-weight 1 data-weight 1"); - f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); + if (mp_dialect == NS2_DIALECT_SNS) { + f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "no ip-sns-bind local2"); + f_vty_config2(NSVTY, {"ns", "bind udp local"}, "ip-sns signalling-weight 1 data-weight 1"); + f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); + } } /* ensure no matching message is received within 'tout' */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 23:26:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 23:26:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/24591 to look at the new patch set (#12). Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... gprs_ns2_sns: implement outbound SNS DEL procedures When removing a bind the remote side needs to be informed via the SNS DELETE procedure. Related: OS#5036 Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 --- M src/gb/gprs_ns2_sns.c 1 file changed, 95 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/24591/12 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 23:26:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 23:26:40 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NS... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25151 to look at the new patch set (#8). Change subject: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present ...................................................................... gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present When no remaining signalling NSVCs are available the SNS must be restarted (BSS) or go into unconfigured state (SGSN). Change-Id: I95e6bbb7a418d647a8426804879571597ae06ff8 --- M src/gb/gprs_ns2_sns.c 1 file changed, 19 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/25151/8 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95e6bbb7a418d647a8426804879571597ae06ff8 Gerrit-Change-Number: 25151 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 23:26:42 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 23:26:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: also prevent recursive events when SGSN side cleans up References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25343 ) Change subject: gprs_ns2: also prevent recursive events when SGSN side cleans up ...................................................................... gprs_ns2: also prevent recursive events when SGSN side cleans up When cleaning up the SGSN side (e.g. receiving a SNS SIZE PDU) the clean up will result in a use-after-free bug when the SGSN side is still alive. Change-Id: I0f57dd0577d1fc7bd270f58e15f6f22eb130ef59 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/43/25343/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 3eff0f3..281f908 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -2732,6 +2732,7 @@ ns2_clear_procedures(gss); ns2_clear_elems(&gss->local); ns2_clear_elems(&gss->remote); + gss->block_no_nsvc_events = true; llist_for_each_entry_safe(nsvc, nsvc2, &gss->nse->nsvc, list) { /* Ignore the NSVC over which the SIZE PDU got received */ if (size_nsvc && size_nsvc == nsvc) @@ -2739,6 +2740,7 @@ gprs_ns2_free_nsvc(nsvc); } + gss->block_no_nsvc_events = false; } static void ns2_sns_st_sgsn_unconfigured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0f57dd0577d1fc7bd270f58e15f6f22eb130ef59 Gerrit-Change-Number: 25343 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 23:26:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 23:26:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25344 ) Change subject: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC ...................................................................... gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC Previous the SNS NSVC (the NSVC used for all SNS traffic) was never changed. The 48.016 says the SNS NSVC should be the NSVC over which a request was received. When receiving a SNS SIZE PDU over a different NSVC than the current SNS NSVC the answer would be transmitted to a different port. Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/25344/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index c1be0ab..7619b66 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -2326,8 +2326,7 @@ /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */ fi = nse->bss_sns_fi; gss = (struct ns2_sns_state *) fi->priv; - if (!gss->sns_nsvc) - gss->sns_nsvc = nsvc; + gss->sns_nsvc = nsvc; LOGPFSML(fi, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b Gerrit-Change-Number: 25344 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 3 23:31:55 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 3 Sep 2021 23:31:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25344 to look at the new patch set (#2). Change subject: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC ...................................................................... gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC Previous the SNS NSVC (the NSVC used for all SNS traffic) was never changed except when the choosen NSVC went dead or got freed. When receiving a SNS SIZE PDU over a different NSVC than the current SNS NSVC the answer would be transmitted to a different port. Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/25344/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b Gerrit-Change-Number: 25344 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 Sat Sep 4 19:25:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:25:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19: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 Sat Sep 4 19:25:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:25:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25145 ) Change subject: gprs_ns2_sns: rework sns clean up ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b Gerrit-Change-Number: 25145 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:25:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:26:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:26:09 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use an event to free the nsvscs when using SNS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25146 ) Change subject: gprs_ns2: use an event to free the nsvscs when using SNS ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 Gerrit-Change-Number: 25146 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:26:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:26:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:26:29 +0000 Subject: Change in libosmocore[master]: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing n... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25323 ) Change subject: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 Gerrit-Change-Number: 25323 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:26:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:26:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:26:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use an event to free the nsvscs when using SNS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25146 ) Change subject: gprs_ns2: use an event to free the nsvscs when using SNS ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 Gerrit-Change-Number: 25146 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:26:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:26:39 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:26:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25145 ) Change subject: gprs_ns2_sns: rework sns clean up ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b Gerrit-Change-Number: 25145 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19: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 Sat Sep 4 19:26:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:26:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:26:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:27:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:27:07 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25147 ) Change subject: gprs_ns2: don't use llist_for_each when freeing an element ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: neels Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:27:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:28:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:28:12 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23187 ) Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... Patch Set 17: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:28: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 Sep 4 19:28:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:28:19 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures ...................................................................... Patch Set 14: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Sat, 04 Sep 2021 19:28:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:28:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:28:42 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24591 ) Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:28:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:28:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:28:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: also prevent recursive events when SGSN side cleans up In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25343 ) Change subject: gprs_ns2: also prevent recursive events when SGSN side cleans up ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0f57dd0577d1fc7bd270f58e15f6f22eb130ef59 Gerrit-Change-Number: 25343 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:28:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:29:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:29:16 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve reselection protection In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25150 ) Change subject: gprs_ns2: improve reselection protection ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I375a7639fb8e0f92fd67bb4176bd6219978aa428 Gerrit-Change-Number: 25150 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:29: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 Sat Sep 4 19:29:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:29:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NS... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25151 ) Change subject: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95e6bbb7a418d647a8426804879571597ae06ff8 Gerrit-Change-Number: 25151 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:29: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 Sep 4 19:29:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:29:56 +0000 Subject: Change in libosmocore[master]: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25344 ) Change subject: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b Gerrit-Change-Number: 25344 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:29:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:30:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:30:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: introduce module parameter SnsRole In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25138 ) Change subject: ns2: introduce module parameter SnsRole ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25138 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8162f256428e2e1f353ffbf42a7c0cd24bcecd9 Gerrit-Change-Number: 25138 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:30:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:30:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:30:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add first sgsn test case TC_sns_sgsn_config_success In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25139 ) Change subject: ns2: add first sgsn test case TC_sns_sgsn_config_success ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25139 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibacc2f6ad3053ff7b1e00054cabb9ec7010ffab2 Gerrit-Change-Number: 25139 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:30: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 Sep 4 19:30:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:30:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_add to test SNS ADD on the SGSN role In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25140 ) Change subject: ns2: add TC_sns_sgsn_add to test SNS ADD on the SGSN role ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25140 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7474ea81ee905fb9fffb6c413b312e0b3547ea14 Gerrit-Change-Number: 25140 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:30:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:30:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:30:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: mark TC_sns_bss_all_signalling_nsvcs_failed as broken In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25141 ) Change subject: ns2: mark TC_sns_bss_all_signalling_nsvcs_failed as broken ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25141 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ice79a038b0b8df9e69232bb24b2f2b18b3632758 Gerrit-Change-Number: 25141 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:30:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:31:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:31:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25339 ) Change subject: ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If519da5212470957b922c569b2b8e5a50e12a8a8 Gerrit-Change-Number: 25339 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:31:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:31:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:31:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_add_change_del similiar to the bss side In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25340 ) Change subject: ns2: add TC_sns_sgsn_add_change_del similiar to the bss side ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a3d2273279f3def0d225ba78d400fb52a958c64 Gerrit-Change-Number: 25340 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:31:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:31:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:31:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct w... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns2: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:31:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:31:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:31:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: f_init_vty: only reset SNS configuration when using SNS. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 ) Change subject: ns2: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:31:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:32:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:32:44 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-CC: dexter Gerrit-Comment-Date: Sat, 04 Sep 2021 19:32:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:33:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:33:10 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Support EWMA algorithm for C/I measurements In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25324 ) Change subject: MS Power Control Loop: Support EWMA algorithm for C/I measurements ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Gerrit-Change-Number: 25324 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19: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 Sat Sep 4 19:33:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:33:27 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Improve logging In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25325 ) Change subject: MS Power Control Loop: Improve logging ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8babd42566c41935079fd414d930ebf2d737892e Gerrit-Change-Number: 25325 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:33:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:34:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:34:36 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19: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 Sat Sep 4 19:34:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:34:54 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:34:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:36:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:36:30 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25327 ) Change subject: BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25327/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25327/5//COMMIT_MSG at 10 PS5, Line 10: cross-channel noise not critical, but FYI: "co-channel interference" is the correct term for interference caused by other transmitters on the same radio channel. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 Gerrit-Change-Number: 25327 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:36: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 Sat Sep 4 19:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:37:07 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25328 ) Change subject: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 Gerrit-Change-Number: 25328 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:37:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:37:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:37:32 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Fix downscaling averaging bug In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25329 ) Change subject: MS/BS Power Control Loop: Fix downscaling averaging bug ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 Gerrit-Change-Number: 25329 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:37:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:37:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:37:49 +0000 Subject: Change in osmo-bsc[master]: cosmetic: power_ctrl_params_def: Fix typo in comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25337 ) Change subject: cosmetic: power_ctrl_params_def: Fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibbbb073fa674666f47d84d8e670790c4028ba874 Gerrit-Change-Number: 25337 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19: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 Sat Sep 4 19:38:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:38:13 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Improve VTY snippet foot notes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25338 ) Change subject: doc: power_control.adoc: Improve VTY snippet foot notes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie5f129c418c187d4f331d6e92884f4f507fb018f Gerrit-Change-Number: 25338 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:38:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:39:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:39:13 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 8 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19:39: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 Sep 4 19:40:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:40:52 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25335 ) Change subject: mgcp_client: add MGW name as logging context ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 04 Sep 2021 19: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 Sat Sep 4 19:41:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:41:12 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25336 ) Change subject: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id3a8c45ae38d6b9d9c106a9e83b3cbfff919650d Gerrit-Change-Number: 25336 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:41:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:41:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:41:17 +0000 Subject: Change in osmo-bsc[master]: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25336 ) Change subject: osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs ...................................................................... osmo_bsc_msc: do not initalize MGCP proxy for AoIP MSCs The MGCP proxy which is built into osmo-bsc is used to tunnel MGCP messages through an SCCP-lite link. This is an SCCP-lite specific implementation detail that is not present in SCCP/AoIP. Change-Id: Id3a8c45ae38d6b9d9c106a9e83b3cbfff919650d Related: SYS#5091 --- M src/osmo-bsc/osmo_bsc_msc.c 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/osmo_bsc_msc.c b/src/osmo-bsc/osmo_bsc_msc.c index a80ee64..baef4e5 100644 --- a/src/osmo-bsc/osmo_bsc_msc.c +++ b/src/osmo-bsc/osmo_bsc_msc.c @@ -165,6 +165,10 @@ uint16_t mgw_port; int rc; + /* Everything below refers to SCCP-Lite MSC connections only. */ + if (msc_is_aoip(msc)) + return 0; + if (net->mgw.conf->remote_port >= 0) mgw_port = net->mgw.conf->remote_port; else -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25336 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id3a8c45ae38d6b9d9c106a9e83b3cbfff919650d Gerrit-Change-Number: 25336 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 Sat Sep 4 19:42:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:42:19 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.available/occupied In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25333 ) Change subject: Add stats: pcu.bts.N.pdch.available/occupied ...................................................................... Patch Set 1: Code-Review+2 > Patch Set 1: Code-Review+1 > > Fine, though I'm not sure these counters are really useful, since the allocation algo tries to extend TBFs through TRX and PDCHs, to pretty quickly all will be occupied. I mean, this is not a good measurement to understand how loaded the PCU is. 3GPP specs mention this as a counter to be implemented, so users want it ... -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74760a68ee055510a79e80854ec7bf1521669119 Gerrit-Change-Number: 25333 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:42: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 Sep 4 19:42:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:42:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 ) Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:42:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 4 19:43:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 4 Sep 2021 19:43:54 +0000 Subject: Change in osmo-bts[master]: rsl: parse temporary overpower value RSL CHAN ACT In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25285 ) Change subject: rsl: parse temporary overpower value RSL CHAN ACT ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Gerrit-Change-Number: 25285 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 04 Sep 2021 19:43:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:12:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:12:36 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25224 to look at the new patch set (#2). Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... CTRL: expose stat_item groups on CTRL Expose all stat items as RO variables of the form stat_item.last.group_name.N.item_name Include the 'last' token to ease future extension, like 'max'. Put this token in the beginning, similarly to rate_ctr variables, which begin with 'per_sec', 'per_hour', ... Related: SYS#5542 Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c --- M src/ctrl/control_if.c 1 file changed, 99 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/25224/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:12:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:12:37 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... utils: add osmo_str_to_int() and osmo_str_to_int64() Properly converting a string to an integer while validating against all possible errors is not trivial. It is a recurring theme in code review, and there are places in osmo code that do it wrong. End this by providing a simple API, if for nothing else then as an example of how to use strol() / strtoul() / strtoll() / strtoull() in an airtight way. A subsequent patch, adding stat items to the CTRL interface, uses this to properly validate indexes in CTRL variables and convert them to int. Related: SYS#5542 Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 391 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/25345/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 1c60390..85a8cb3 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -283,6 +283,9 @@ int osmo_int_to_float_str_buf(char *buf, size_t buflen, int64_t val, unsigned int precision); char *osmo_int_to_float_str_c(void *ctx, int64_t val, unsigned int precision); +int osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val); +int osmo_str_to_int(int *result, const char *str, int base, int min_val, int max_val); + /*! Translate a buffer function to a talloc context function. * This is the full function body of a char *foo_name_c(void *ctx, val...) function, implemented by an * int foo_name_buf(buf, buflen, val...) function: diff --git a/src/utils.c b/src/utils.c index 721c34a..260c4c0 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1405,4 +1405,78 @@ OSMO_NAME_C_IMPL(ctx, 16, "ERROR", osmo_int_to_float_str_buf, val, precision) } +/*! Convert a string of a number to int64_t, including all common strtoll() validity checks. + * It's not so trivial to call strtoll() and properly verify that the input string was indeed a valid number string. + * \param[out] result The resulting integer number. + * \param[in] str The string to convert. + * \param[in] base The integer base, i.e. 10 for decimal numbers or 16 for hexadecimal, as in strtoll(). + * \param[in] min_val The smallest valid number expected in the string. + * \param[in] max_val The largest valid number expected in the string. + * \return 0 on success, positive errno on conversion error, -E2BIG if surplus characters follow after the number string + * or -ERANGE if the converted number exceeds the range [min_val..max_val]. In case of -E2BIG and -ERANGE, the converted + * number is still returned in result. + */ +int osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val) +{ + long long int val; + char *endptr; + *result = 0; + if (!str || !*str) + return EINVAL; + errno = 0; + val = strtoll(str, &endptr, base); + /* In case the number string exceeds long long int range, strtoll() clamps the returned value to LLONG_MIN or + * LLONG_MAX. Make sure of the same here with respect to int64_t. */ + if (val < INT64_MIN) { + *result = INT64_MIN; + return ERANGE; + } + if (val > INT64_MAX) { + *result = INT64_MAX; + return ERANGE; + } + *result = (int64_t)val; + if (errno) + return errno; + if (!endptr || *endptr) { + /* No chars were converted */ + if (endptr == str) + return EINVAL; + /* Or there are surplus chars after the converted number */ + return -E2BIG; + } + if (val < min_val || val > max_val) + return -ERANGE; + return 0; +} + +/*! Convert a string of a number to int, including all common strtoll() validity checks. + * Same as osmo_str_to_int64() but using the plain int data type. + * \param[out] result The resulting integer number. + * \param[in] str The string to convert. + * \param[in] base The integer base, i.e. 10 for decimal numbers or 16 for hexadecimal, as in strtoll(). + * \param[in] min_val The smallest valid number expected in the string. + * \param[in] max_val The largest valid number expected in the string. + * \return 0 on success, positive errno on conversion error, -E2BIG if surplus characters follow after the number string + * or -ERANGE if the converted number exceeds the range [min_val..max_val]. In case of -E2BIG and -ERANGE, the converted + * number does not exceed [INT_MIN..INT_MAX] and is still returned in result. + */ +int osmo_str_to_int(int *result, const char *str, int base, int min_val, int max_val) +{ + int64_t val; + int rc = osmo_str_to_int64(&val, str, base, min_val, max_val); + /* In case the number string exceeds long long int range, strtoll() clamps the returned value to LLONG_MIN or + * LLONG_MAX. Make sure of the same here with respect to int. */ + if (val < INT_MIN) { + *result = INT_MIN; + return ERANGE; + } + if (val > INT_MAX) { + *result = INT_MAX; + return ERANGE; + } + *result = (int)val; + return rc; +} + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index 108bf5a..f8fb273 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -1694,11 +1694,20 @@ }; const char *errno_str(int rc) { - if (rc == -EINVAL) + switch (rc) { + case -EINVAL: return "=-EINVAL"; - if (rc == -ERANGE) + case -ERANGE: return "=-ERANGE"; - return ""; + case -E2BIG: + return "=-E2BIG"; + case EINVAL: + return "=EINVAL"; + case ERANGE: + return "=ERANGE"; + default: + return ""; + } } void test_float_str_to_int() { @@ -1884,6 +1893,188 @@ } } +struct str_to_int_test { + const char *str; + int base; + int min_val; + int max_val; + int expect_rc; + int expect_val; +}; +/* Avoid using INT_MAX and INT_MIN because that would produce different test output on different architectures */ +struct str_to_int_test str_to_int_tests[] = { + { NULL, 10, -1000, 1000, EINVAL, 0 }, + { "", 10, -1000, 1000, EINVAL, 0 }, + { " ", 10, -1000, 1000, EINVAL, 0 }, + { "-", 10, -1000, 1000, EINVAL, 0 }, + { "--", 10, -1000, 1000, EINVAL, 0 }, + { "+", 10, -1000, 1000, EINVAL, 0 }, + { "++", 10, -1000, 1000, EINVAL, 0 }, + + { "0", 10, -1000, 1000, 0, 0 }, + { "1", 10, -1000, 1000, 0, 1 }, + { "+1", 10, -1000, 1000, 0, 1 }, + { "-1", 10, -1000, 1000, 0, -1 }, + { "1000", 10, -1000, 1000, 0, 1000 }, + { "+1000", 10, -1000, 1000, 0, 1000 }, + { "-1000", 10, -1000, 1000, 0, -1000 }, + { "1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "+1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "-1001", 10, -1000, 1000, -ERANGE, -1001 }, + + { "0", 16, -1000, 1000, 0, 0 }, + { "1", 16, -1000, 1000, 0, 1 }, + { "0x1", 16, -1000, 1000, 0, 1 }, + { "+1", 16, -1000, 1000, 0, 1 }, + { "-1", 16, -1000, 1000, 0, -1 }, + { "+0x1", 16, -1000, 1000, 0, 1 }, + { "-0x1", 16, -1000, 1000, 0, -1 }, + { "3e8", 16, -1000, 1000, 0, 1000 }, + { "3E8", 16, -1000, 1000, 0, 1000 }, + { "0x3e8", 16, -1000, 1000, 0, 1000 }, + { "0x3E8", 16, -1000, 1000, 0, 1000 }, + { "+3e8", 16, -1000, 1000, 0, 1000 }, + { "+3E8", 16, -1000, 1000, 0, 1000 }, + { "+0x3e8", 16, -1000, 1000, 0, 1000 }, + { "+0x3E8", 16, -1000, 1000, 0, 1000 }, + { "-3e8", 16, -1000, 1000, 0, -1000 }, + { "-3E8", 16, -1000, 1000, 0, -1000 }, + { "-0x3e8", 16, -1000, 1000, 0, -1000 }, + { "-0x3E8", 16, -1000, 1000, 0, -1000 }, + { "3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "-3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-3E9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3E9", 16, -1000, 1000, -ERANGE, -1001 }, + + { "garble", 10, -1000, 1000, EINVAL, 0 }, + { "-garble", 10, -1000, 1000, EINVAL, 0 }, + { "0x123", 10, -1000, 1000, -E2BIG, 0 }, + { "123potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 ", 10, -1000, 1000, -E2BIG, 123 }, + { "123.4", 10, -1000, 1000, -E2BIG, 123 }, +}; +void test_str_to_int() +{ + const struct str_to_int_test *t; + printf("--- %s\n", __func__); + for (t = str_to_int_tests; (t - str_to_int_tests) < ARRAY_SIZE(str_to_int_tests); t++) { + int rc; + int val; + rc = osmo_str_to_int(&val, t->str, t->base, t->min_val, t->max_val); + printf("osmo_str_to_int(%s, %d, %d, %d) -> rc=%d%s val=%d\n", + osmo_quote_str(t->str, -1), t->base, t->min_val, t->max_val, rc, errno_str(rc), val); + + if (rc != t->expect_rc) + printf(" ERROR: expected rc=%d%s\n", t->expect_rc, errno_str(t->expect_rc)); + if (val != t->expect_val) + printf(" ERROR: expected val=%d\n", t->expect_val); + } +} + +struct str_to_int64_test { + const char *str; + int base; + int64_t min_val; + int64_t max_val; + int expect_rc; + int64_t expect_val; +}; +struct str_to_int64_test str_to_int64_tests[] = { + { NULL, 10, -1000, 1000, EINVAL, 0 }, + { "", 10, -1000, 1000, EINVAL, 0 }, + { " ", 10, -1000, 1000, EINVAL, 0 }, + { "-", 10, -1000, 1000, EINVAL, 0 }, + { "--", 10, -1000, 1000, EINVAL, 0 }, + { "+", 10, -1000, 1000, EINVAL, 0 }, + { "++", 10, -1000, 1000, EINVAL, 0 }, + + { "0", 10, -1000, 1000, 0, 0 }, + { "1", 10, -1000, 1000, 0, 1 }, + { "+1", 10, -1000, 1000, 0, 1 }, + { "-1", 10, -1000, 1000, 0, -1 }, + { "1000", 10, -1000, 1000, 0, 1000 }, + { "+1000", 10, -1000, 1000, 0, 1000 }, + { "-1000", 10, -1000, 1000, 0, -1000 }, + { "1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "+1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "-1001", 10, -1000, 1000, -ERANGE, -1001 }, + + { "0", 16, -1000, 1000, 0, 0 }, + { "1", 16, -1000, 1000, 0, 1 }, + { "0x1", 16, -1000, 1000, 0, 1 }, + { "+1", 16, -1000, 1000, 0, 1 }, + { "-1", 16, -1000, 1000, 0, -1 }, + { "+0x1", 16, -1000, 1000, 0, 1 }, + { "-0x1", 16, -1000, 1000, 0, -1 }, + { "3e8", 16, -1000, 1000, 0, 1000 }, + { "3E8", 16, -1000, 1000, 0, 1000 }, + { "0x3e8", 16, -1000, 1000, 0, 1000 }, + { "0x3E8", 16, -1000, 1000, 0, 1000 }, + { "+3e8", 16, -1000, 1000, 0, 1000 }, + { "+3E8", 16, -1000, 1000, 0, 1000 }, + { "+0x3e8", 16, -1000, 1000, 0, 1000 }, + { "+0x3E8", 16, -1000, 1000, 0, 1000 }, + { "-3e8", 16, -1000, 1000, 0, -1000 }, + { "-3E8", 16, -1000, 1000, 0, -1000 }, + { "-0x3e8", 16, -1000, 1000, 0, -1000 }, + { "-0x3E8", 16, -1000, 1000, 0, -1000 }, + { "3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "-3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-3E9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3E9", 16, -1000, 1000, -ERANGE, -1001 }, + + { "garble", 10, -1000, 1000, EINVAL, 0 }, + { "-garble", 10, -1000, 1000, EINVAL, 0 }, + { "0x123", 10, -1000, 1000, -E2BIG, 0 }, + { "123potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 ", 10, -1000, 1000, -E2BIG, 123 }, + { "123.4", 10, -1000, 1000, -E2BIG, 123 }, + + { "-9223372036854775808", 10, INT64_MIN, INT64_MAX, 0, INT64_MIN }, + { "9223372036854775807", 10, INT64_MIN, INT64_MAX, 0, INT64_MAX }, + + { "-9223372036854775809", 10, INT64_MIN, INT64_MAX, ERANGE, INT64_MIN }, + { "9223372036854775808", 10, INT64_MIN, INT64_MAX, ERANGE, INT64_MAX }, + + { "-9223372036854775809", 10, -1000, 1000, ERANGE, INT64_MIN }, + { "9223372036854775808", 10, -1000, 1000, ERANGE, INT64_MAX }, +}; +void test_str_to_int64() +{ + const struct str_to_int64_test *t; + printf("--- %s\n", __func__); + for (t = str_to_int64_tests; (t - str_to_int64_tests) < ARRAY_SIZE(str_to_int64_tests); t++) { + int rc; + int64_t val; + rc = osmo_str_to_int64(&val, t->str, t->base, t->min_val, t->max_val); + printf("osmo_str_to_int64(%s, %d, %"PRId64", %"PRId64") -> rc=%d%s val=%"PRId64"\n", + osmo_quote_str(t->str, -1), t->base, t->min_val, t->max_val, rc, errno_str(rc), val); + + if (rc != t->expect_rc) + printf(" ERROR: expected rc=%d%s\n", t->expect_rc, errno_str(t->expect_rc)); + if (val != t->expect_val) + printf(" ERROR: expected val=%"PRId64"\n", t->expect_val); + } +} + int main(int argc, char **argv) { static const struct log_info log_info = {}; @@ -1911,5 +2102,7 @@ osmo_strnchr_test(); test_float_str_to_int(); test_int_to_float_str(); + test_str_to_int(); + test_str_to_int64(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 0c71b8f..8bc2357 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -869,3 +869,121 @@ osmo_int_to_float_str_buf(9223372036854775807, 23) -> rc=25 str="0.00009223372036854775807" osmo_int_to_float_str_buf(-9223372036854775807, 23) -> rc=26 str="-0.00009223372036854775807" osmo_int_to_float_str_buf(-9223372036854775808, 23) -> rc=4 str="-ERR" +--- test_str_to_int +osmo_str_to_int(NULL, 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int(" ", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("-", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("--", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("+", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("++", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("0", 10, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int("1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("+1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("-1", 10, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int("1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("-1000", 10, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("-1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("0", 16, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int("1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("+1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("-1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int("+0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("-0x1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int("3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("-3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("-3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("-0x3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("-0x3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("-3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("-3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("-0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("-0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("garble", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("-garble", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int("0x123", 10, -1000, 1000) -> rc=-7=-E2BIG val=0 +osmo_str_to_int("123potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int("123 potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int("123 ", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int("123.4", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +--- test_str_to_int64 +osmo_str_to_int64(NULL, 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64(" ", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("-", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("--", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("+", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("++", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("0", 10, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int64("1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("+1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("-1", 10, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int64("1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("-1000", 10, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("-1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("0", 16, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int64("1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("+1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("-1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int64("+0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("-0x1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int64("3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("-3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("-3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("-0x3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("-0x3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("-3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("-3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("-0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("-0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("garble", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("-garble", 10, -1000, 1000) -> rc=22=EINVAL val=0 +osmo_str_to_int64("0x123", 10, -1000, 1000) -> rc=-7=-E2BIG val=0 +osmo_str_to_int64("123potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("123 potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("123 ", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("123.4", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("-9223372036854775808", 10, -9223372036854775808, 9223372036854775807) -> rc=0 val=-9223372036854775808 +osmo_str_to_int64("9223372036854775807", 10, -9223372036854775808, 9223372036854775807) -> rc=0 val=9223372036854775807 +osmo_str_to_int64("-9223372036854775809", 10, -9223372036854775808, 9223372036854775807) -> rc=34=ERANGE val=-9223372036854775808 +osmo_str_to_int64("9223372036854775808", 10, -9223372036854775808, 9223372036854775807) -> rc=34=ERANGE val=9223372036854775807 +osmo_str_to_int64("-9223372036854775809", 10, -1000, 1000) -> rc=34=ERANGE val=-9223372036854775808 +osmo_str_to_int64("9223372036854775808", 10, -1000, 1000) -> rc=34=ERANGE val=9223372036854775807 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 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 Sep 5 19:12:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:12:37 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25346 ) Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... add osmo_stat_item_get_group_by_name_idxname() Add "missing" API for looking up a stat_item_group by its index-name. A subsequent patch, which adds stat_items to the CTRL interface, will use this to look up stat item groups by object name. In stat item groups, there are group names, having a number of indexes denoting different objects. An object can have, besides the index, also a name that is equivalent to the index. Apologies for the weird function name, it's still the best one I could come up with: "group_by_name" refers to the group name, and "idxname" refers to the name that the object index is associated with. We already have osmo_stat_item_get_group_by_name_idx(). Other contestants for name of this new function were: - osmo_stat_item_get_group_by_name_name() because there is a "name" instead of "idx", but I find it confusing. - osmo_stat_item_get_group_by_name_idx_name() but I find that the last "name" should be closer to the "idx". Related: SYS#5542 Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 --- M include/osmocom/core/stat_item.h M src/stat_item.c 2 files changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/25346/1 diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index 332bbe9..402a7ae 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -97,6 +97,7 @@ struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idx( const char *name, const unsigned int idx); +struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idxname(const char *group_name, const char *idx_name); const struct osmo_stat_item *osmo_stat_item_get_by_name( const struct osmo_stat_item_group *statg, const char *name); diff --git a/src/stat_item.c b/src/stat_item.c index 55aa951..d0e2f3c 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -333,6 +333,26 @@ return NULL; } +/*! Search for item group based on group name and index's name. + * \param[in] name Name of stats_item_group we want to find. + * \param[in] idx_name Index of the group we want to find, by the index's name (osmo_stat_item_group->name). + * \returns pointer to group, if found; NULL otherwise */ +struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idxname(const char *group_name, const char *idx_name) +{ + struct osmo_stat_item_group *statg; + + llist_for_each_entry(statg, &osmo_stat_item_groups, list) { + if (!statg->desc || !statg->name) + continue; + if (strcmp(statg->desc->group_name_prefix, group_name)) + continue; + if (strcmp(statg->name, idx_name)) + continue; + return statg; + } + return NULL; +} + /*! Search for item based on group + item name * \param[in] statg group in which to search for the item * \param[in] name name of item to search within \a statg -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 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 Sep 5 19:12:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:12:37 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... revisit some calls of strtol(), stroul(), strtoull() Replace some with atoi(), where the VTY has already validated correct range of the argument. Replace others with the new osmo_str_to_int() or osmo_str_to_int64() functions, possibly covering more detection of invalid number strings. Leave those strtol() callers that depend on endptr to provide the next string token. Related: SYS#5542 Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 --- M src/ctrl/control_if.c M src/gsm/gsm23003.c M src/gsm/gsm23236.c M src/vty/command.c M src/vty/cpu_sched_vty.c M src/vty/tdef_vty.c M utils/osmo-aka-verify.c 7 files changed, 32 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/25347/1 diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index a5a90d6..23c7369 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -83,20 +84,16 @@ * \returns 1 on success; 0 in case of error */ int ctrl_parse_get_num(vector vline, int i, long *num) { - char *token, *tmp; + char *token; + int64_t val; if (i >= vector_active(vline)) return 0; token = vector_slot(vline, i); - errno = 0; - if (token[0] == '\0') + if (osmo_str_to_int64(&val, token, 10, LONG_MIN, LONG_MAX)) return 0; - - *num = strtol(token, &tmp, 10); - if (tmp[0] != '\0' || errno != 0) - return 0; - + *num = (long)val; return 1; } diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index c2b3de8..f3c0123 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -487,22 +487,23 @@ */ int osmo_mnc_from_str(const char *mnc_str, uint16_t *mnc, bool *mnc_3_digits) { - long int _mnc = 0; + int _mnc = 0; bool _mnc_3_digits = false; - char *endptr; int rc = 0; if (!mnc_str || !isdigit((unsigned char)mnc_str[0]) || strlen(mnc_str) > 3) return -EINVAL; - errno = 0; - _mnc = strtol(mnc_str, &endptr, 10); - if (errno) - rc = -errno; - else if (*endptr) + rc = osmo_str_to_int(&_mnc, mnc_str, 10, 0, 999); + /* Heed the API definition to return -EINVAL in case of surplus chars */ + if (rc == -E2BIG) return -EINVAL; - if (_mnc < 0 || _mnc > 999) - return -ERANGE; + /* Heed the API definition to always return negative errno */ + if (rc > 0) + return -rc; + if (rc < 0) + return rc; + _mnc_3_digits = strlen(mnc_str) > 2; if (mnc) diff --git a/src/gsm/gsm23236.c b/src/gsm/gsm23236.c index 01d0eb3..d4a14a5 100644 --- a/src/gsm/gsm23236.c +++ b/src/gsm/gsm23236.c @@ -436,27 +436,13 @@ */ static int osmo_nri_parse(int16_t *dst, const char *str) { - char *endp; - int64_t val; + int val; int base = 10; - - if (osmo_str_startswith(str, "0x")) { - str += 2; + if (osmo_str_startswith(str, "0x")) base = 16; - } - - if (!str || !str[0]) + if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) 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; + *dst = (int16_t)val; return 0; } diff --git a/src/vty/command.c b/src/vty/command.c index bb6a665..ba6daa4 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -1349,7 +1349,6 @@ int colons = 0, nums = 0, double_colon = 0; int mask; const char *sp = NULL; - char *endptr = NULL; if (str == NULL) return PARTLY_MATCH; @@ -1447,11 +1446,7 @@ if (state < STATE_MASK) return PARTLY_MATCH; - mask = strtol(str, &endptr, 10); - if (*endptr != '\0') - return NO_MATCH; - - if (mask < 0 || mask > 128) + if (osmo_str_to_int(&mask, str, 10, 0, 128)) return NO_MATCH; /* I don't know why mask < 13 makes command match partly. @@ -3803,16 +3798,7 @@ "Set number of lines on a screen\n" "Number of lines on screen (0 for no pausing)\n") { - int lines; - char *endptr = NULL; - - lines = strtol(argv[0], &endptr, 10); - if (lines < 0 || lines > 512 || *endptr != '\0') { - vty_out(vty, "length is malformed%s", VTY_NEWLINE); - return CMD_WARNING; - } - vty->lines = lines; - + vty->lines = atoi(argv[0]); return CMD_SUCCESS; } @@ -3831,16 +3817,7 @@ "System wide terminal length configuration\n" "Number of lines of VTY (0 means no line control)\n") { - int lines; - char *endptr = NULL; - - lines = strtol(argv[0], &endptr, 10); - if (lines < 0 || lines > 512 || *endptr != '\0') { - vty_out(vty, "length is malformed%s", VTY_NEWLINE); - return CMD_WARNING; - } - host.lines = lines; - + host.lines = atoi(argv[0]); return CMD_SUCCESS; } diff --git a/src/vty/cpu_sched_vty.c b/src/vty/cpu_sched_vty.c index 4ccc627..0b4b249 100644 --- a/src/vty/cpu_sched_vty.c +++ b/src/vty/cpu_sched_vty.c @@ -276,7 +276,6 @@ static enum sched_vty_thread_id procname2pid(pid_t *res_pid, const char *str, bool applynow) { size_t i, len; - char *end; bool is_pid = true; if (strcmp(str, "all") == 0) { @@ -297,12 +296,12 @@ } } if (is_pid) { - errno = 0; - *res_pid = strtoul(str, &end, 0); - if ((errno == ERANGE && *res_pid == ULONG_MAX) || (errno && !*res_pid) || - str == end) { + int64_t val; + if (osmo_str_to_int64(&val, str, 0, 0, INT64_MAX)) return SCHED_VTY_THREAD_UNKNOWN; - } + *res_pid = (pid_t)val; + if (*res_pid != val) + return SCHED_VTY_THREAD_UNKNOWN; if (!applynow || proc_tid_exists(*res_pid)) return SCHED_VTY_THREAD_ID; else diff --git a/src/vty/tdef_vty.c b/src/vty/tdef_vty.c index 0556d8c..09459f1 100644 --- a/src/vty/tdef_vty.c +++ b/src/vty/tdef_vty.c @@ -50,10 +50,9 @@ */ struct osmo_tdef *osmo_tdef_vty_parse_T_arg(struct vty *vty, struct osmo_tdef *tdefs, const char *T_str) { - long l; + int l; int T; struct osmo_tdef *t; - char *endptr; const char *T_nr_str; int sign = 1; @@ -77,9 +76,7 @@ return NULL; } - errno = 0; - l = strtol(T_nr_str, &endptr, 10); - if (errno || *endptr || l > INT_MAX || l < 0) { + if (osmo_str_to_int(&l, T_nr_str, 10, 0, INT_MAX)) { vty_out(vty, "%% Invalid T timer argument (should be 'T1234' or 'X1234'): '%s'%s", T_str, VTY_NEWLINE); return NULL; } diff --git a/utils/osmo-aka-verify.c b/utils/osmo-aka-verify.c index 086add5..bbc65ef 100644 --- a/utils/osmo-aka-verify.c +++ b/utils/osmo-aka-verify.c @@ -123,6 +123,7 @@ bool opc_is_set = false; bool amf_is_set = false; bool opc_is_op = false; + int64_t val64; while (1) { int c; @@ -169,7 +170,8 @@ amf_is_set = true; break; case 's': - g_sqn = strtoull(optarg, 0, 10); + rc = osmo_str_to_int64(&val64, optarg, 10, 0, INT64_MAX); + g_sqn = (unsigned long long)val64; sqn_is_set = true; break; case 'r': -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 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 Sep 5 19:21:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:21:18 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25224 to look at the new patch set (#3). Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... CTRL: expose stat_item groups on CTRL Expose all stat items as RO variables of the form stat_item.last.group_name.N.item_name Include the 'last' token to ease future extension, like 'max'. Put this token in the beginning, similarly to rate_ctr variables, which begin with 'per_sec', 'per_hour', ... Related: SYS#5542 Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c --- M src/ctrl/control_if.c 1 file changed, 100 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/25224/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:26:09 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:26:09 +0000 Subject: Change in osmo-bsc[master]: add stat_items for BTS and TRX connection stati In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25274 ) Change subject: add stat_items for BTS and TRX connection stati ...................................................................... Patch Set 3: Code-Review+2 combine votes -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2057a798e681a169cc03243a09b3d6449734c010 Gerrit-Change-Number: 25274 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 19:26:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:28:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:28:04 +0000 Subject: Change in osmo-bsc[master]: add stat_items for BTS and TRX connection stati In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25274 ) Change subject: add stat_items for BTS and TRX connection stati ...................................................................... add stat_items for BTS and TRX connection stati So far we have stat items per BTS. Add stat items summing overall BTS status. Add stat items: - num_bts:oml_connected - num_bts:all_trx_rsl_connected - num_bts:total - num_trx:rsl_connected - num_trx:total Related: SYS#5542 Related: Ic1b35b7406547f92818afe399a2383d154576409 (osmo-ttcn3-hacks) Change-Id: I2057a798e681a169cc03243a09b3d6449734c010 --- M include/osmocom/bsc/bsc_stats.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/osmo_bsc_main.c 4 files changed, 80 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/include/osmocom/bsc/bsc_stats.h b/include/osmocom/bsc/bsc_stats.h index 639f87f..4250079 100644 --- a/include/osmocom/bsc/bsc_stats.h +++ b/include/osmocom/bsc/bsc_stats.h @@ -21,6 +21,7 @@ #include struct osmo_stat_item_group_desc; +struct gsm_network; /* OsmoBSC rate_ctr indexes */ enum { @@ -87,7 +88,11 @@ /* OsmoBSC stat_item indexes */ enum { + BSC_STAT_NUM_BTS_OML_CONNECTED, + BSC_STAT_NUM_BTS_ALL_TRX_RSL_CONNECTED, BSC_STAT_NUM_BTS_TOTAL, + BSC_STAT_NUM_TRX_RSL_CONNECTED, + BSC_STAT_NUM_TRX_TOTAL, BSC_STAT_NUM_MSC_CONNECTED, BSC_STAT_NUM_MSC_TOTAL, }; @@ -98,3 +103,5 @@ #define BTS_STAT_IDX_UNKNOWN (UINT16_MAX + 1) extern const struct osmo_stat_item_group_desc bsc_statg_desc; + +void bsc_update_connection_stats(struct gsm_network *net); diff --git a/src/osmo-bsc/bsc_stats.c b/src/osmo-bsc/bsc_stats.c index 36d38c2..f33e6c8 100644 --- a/src/osmo-bsc/bsc_stats.c +++ b/src/osmo-bsc/bsc_stats.c @@ -23,6 +23,9 @@ #include #include +#include +#include + const struct rate_ctr_desc bsc_ctr_description[] = { [BSC_CTR_ASSIGNMENT_ATTEMPTED] = {"assignment:attempted", "Assignment attempts"}, [BSC_CTR_ASSIGNMENT_COMPLETED] = {"assignment:completed", "Assignment completed"}, @@ -110,7 +113,11 @@ }; static const struct osmo_stat_item_desc bsc_stat_desc[] = { + [BSC_STAT_NUM_BTS_OML_CONNECTED] = { "num_bts:oml_connected", "Number of BTS for this BSC where OML is up", "", 16, 0 }, + [BSC_STAT_NUM_BTS_ALL_TRX_RSL_CONNECTED] = { "num_bts:all_trx_rsl_connected", "Number of BTS for this BSC where RSL is up for all TRX", "", 16, 0 }, [BSC_STAT_NUM_BTS_TOTAL] = { "num_bts:total", "Number of configured BTS for this BSC", "", 16, 0 }, + [BSC_STAT_NUM_TRX_RSL_CONNECTED] = { "num_trx:rsl_connected", "Number of TRX where RSL is up, total sum across all BTS", "", 16, 0 }, + [BSC_STAT_NUM_TRX_TOTAL] = { "num_trx:total", "Number of configured TRX, total sum across all BTS", "", 1, 0 }, [BSC_STAT_NUM_MSC_CONNECTED] = { "num_msc:connected", "Number of actively connected MSCs", "", 16, 0 }, [BSC_STAT_NUM_MSC_TOTAL] = { "num_msc:total", "Number of configured MSCs, not necessarily connected", "", 1, 0 }, }; @@ -122,3 +129,55 @@ .num_items = ARRAY_SIZE(bsc_stat_desc), .item_desc = bsc_stat_desc, }; + +/* Count all BTS and TRX OML and RSL stati and update stat items */ +void bsc_update_connection_stats(struct gsm_network *net) +{ + struct gsm_bts *bts; + struct gsm_bts_trx *trx; + + /* Nr of configured BTS and total sum of configured TRX across all BTS */ + int num_bts = 0; + int num_trx_total = 0; + /* Nr of BTS where OML is up */ + int bts_oml_connected = 0; + /* Nr of TRX across all BTS where RSL is up */ + int trx_rsl_connected_total = 0; + /* Nr of BTS that have all TRX RSL up */ + int bts_rsl_all_trx_connected = 0; + + llist_for_each_entry(bts, &net->bts_list, list) { + bool oml_connected = false; + int num_trx = 0; + int trx_rsl_connected = 0; + + llist_for_each_entry(trx, &bts->trx_list, list) { + /* If any one trx is usable, it means OML for this BTS is connected */ + if (trx_is_usable(trx)) + oml_connected = true; + + /* Count nr of TRX for this BTS */ + num_trx++; + if (trx->ts[0].is_rsl_ready) + trx_rsl_connected++; + } + + num_trx_total += num_trx; + trx_rsl_connected_total += trx_rsl_connected; + + num_bts++; + if (oml_connected) + bts_oml_connected++; + if (trx_rsl_connected == num_trx) + bts_rsl_all_trx_connected++; + } + + osmo_stat_item_set(osmo_stat_item_group_get_item(net->bsc_statg, BSC_STAT_NUM_BTS_OML_CONNECTED), + bts_oml_connected); + osmo_stat_item_set(osmo_stat_item_group_get_item(net->bsc_statg, BSC_STAT_NUM_BTS_ALL_TRX_RSL_CONNECTED), + bts_rsl_all_trx_connected); + osmo_stat_item_set(osmo_stat_item_group_get_item(net->bsc_statg, BSC_STAT_NUM_BTS_TOTAL), num_bts); + osmo_stat_item_set(osmo_stat_item_group_get_item(net->bsc_statg, BSC_STAT_NUM_TRX_RSL_CONNECTED), + trx_rsl_connected_total); + osmo_stat_item_set(osmo_stat_item_group_get_item(net->bsc_statg, BSC_STAT_NUM_TRX_TOTAL), num_trx_total); +} diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index bd06463..ebc11b5 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -123,7 +123,6 @@ /* allocate a new one */ bts = bsc_bts_alloc_register(gsmnet, GSM_BTS_TYPE_UNKNOWN, HARDCODED_BSIC); - osmo_stat_item_inc(osmo_stat_item_group_get_item(gsmnet->bsc_statg, BSC_STAT_NUM_BTS_TOTAL), 1); } else bts = gsm_bts_num(gsmnet, bts_nr); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 14cbc22..395a60e 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -380,6 +380,18 @@ } } +struct osmo_timer_list update_connection_stats_timer; + +/* Periodically call bsc_update_connection_stats() to keep stat items updated. + * It would be nicer to trigger this only when OML or RSL state is seen to flip. I tried hard to find all code paths + * that should call this and failed to get accurate results; this trivial timer covers all of them. */ +static void update_connection_stats_cb(void *data) +{ + bsc_update_connection_stats(bsc_gsmnet); + osmo_timer_setup(&update_connection_stats_timer, update_connection_stats_cb, NULL); + osmo_timer_schedule(&update_connection_stats_timer, 1, 0); +} + /* Callback function to be called every time we receive a signal from INPUT */ static int inp_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) @@ -1058,6 +1070,8 @@ signal(SIGUSR2, &signal_handler); osmo_init_ignore_signals(); + update_connection_stats_cb(NULL); + if (daemonize) { rc = osmo_daemonize(); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25274 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I2057a798e681a169cc03243a09b3d6449734c010 Gerrit-Change-Number: 25274 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder 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 Sep 5 19:28:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:28:18 +0000 Subject: Change in osmo-bsc[master]: move BTS level stats and counters to bsc_stats.[hc] In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25275 ) Change subject: move BTS level stats and counters to bsc_stats.[hc] ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25275 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I58c5c1f8a5a09e9942aa6d1bdfe7f9766773963c Gerrit-Change-Number: 25275 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:28:23 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:28:23 +0000 Subject: Change in osmo-bsc[master]: move MSC level stats and rate counters to bsc_stats.[hc] In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25276 ) Change subject: move MSC level stats and rate counters to bsc_stats.[hc] ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25276 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I03ab34f1c0511016da5b8c7db33d8d76db99f3af Gerrit-Change-Number: 25276 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:29:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:29:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: reset MSC link stati in f_init() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227 ) Change subject: bsc: reset MSC link stati in f_init() ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227/1//COMMIT_MSG at 7 PS1, Line 7: bsc: reset MSC link stati in f_init() > stati? from latin, plural of status is stati -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ice3056dc46c94f9399f8379db7aeb7193782f2f2 Gerrit-Change-Number: 25227 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 19: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 Sun Sep 5 19:29:59 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:29:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: reset MSC link stati in f_init() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227 ) Change subject: bsc: reset MSC link stati in f_init() ...................................................................... Patch Set 3: Code-Review+2 combine votes -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ice3056dc46c94f9399f8379db7aeb7193782f2f2 Gerrit-Change-Number: 25227 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 19: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 Sun Sep 5 19:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:44:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 to look at the new patch set (#4). Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... bsc: add TC_stat_num_msc_connected* tests Verify MSC connection count stats. Related: SYS#5542 Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf --- M bsc/BSC_Tests.ttcn 1 file changed, 53 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/25228/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:44:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_bts_connected_* tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 to look at the new patch set (#3). Change subject: bsc: add TC_stat_num_bts_connected_* tests ...................................................................... bsc: add TC_stat_num_bts_connected_* tests Related: SYS#5542 Related: I2057a798e681a169cc03243a09b3d6449734c010 (osmo-bsc) Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 --- M bsc/BSC_Tests.ttcn 1 file changed, 58 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/72/25272/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 Gerrit-Change-Number: 25272 Gerrit-PatchSet: 3 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 Sun Sep 5 19:45:16 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:45:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: introduce module parameter SnsRole In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25138 ) Change subject: ns2: introduce module parameter SnsRole ...................................................................... ns2: introduce module parameter SnsRole Allow the .cfg to define which tests should be run. The new SGSN role SNS tests have their own configurations for TTCN3 and osmo-nsdummy. Change-Id: If8162f256428e2e1f353ffbf42a7c0cd24bcecd9 --- M ns/NS_Tests.ttcn 1 file changed, 17 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index d42ef8c..0cef341 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -24,7 +24,13 @@ import from Osmocom_VTY_Functions all; import from TELNETasp_PortType all; +type enumerated SnsRole { + SNS_ROLE_BSS ('00'H), + SNS_ROLE_SGSN ('01'H) +}; + modulepar { + SnsRole mp_sns_role := SNS_ROLE_BSS; OsmoNsDialect mp_dialect := NS2_DIALECT_IPACCESS; NSConfiguration mp_nsconfig := { nsei := 96, @@ -736,15 +742,17 @@ } if (mp_dialect == NS2_DIALECT_SNS) { - /* BSS test cases */ - execute( TC_sns_bss_config_success() ); - execute( TC_sns_bss_change_weight() ); - execute( TC_sns_bss_change_weight_timeout() ); - execute( TC_sns_bss_add() ); - execute( TC_sns_bss_del() ); - execute( TC_sns_bss_add_change_del() ); - execute( TC_sns_bss_all_signalling_nsvcs_failed() ); - execute( TC_sns_rx_size_force_unconf() ); + if (mp_sns_role == SNS_ROLE_BSS) { + /* BSS test cases */ + execute( TC_sns_bss_config_success() ); + execute( TC_sns_bss_change_weight() ); + execute( TC_sns_bss_change_weight_timeout() ); + execute( TC_sns_bss_add() ); + execute( TC_sns_bss_del() ); + execute( TC_sns_bss_add_change_del() ); + execute( TC_sns_bss_all_signalling_nsvcs_failed() ); + execute( TC_sns_rx_size_force_unconf() ); + } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25138 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If8162f256428e2e1f353ffbf42a7c0cd24bcecd9 Gerrit-Change-Number: 25138 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:45:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add first sgsn test case TC_sns_sgsn_config_success In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25139 ) Change subject: ns2: add first sgsn test case TC_sns_sgsn_config_success ...................................................................... ns2: add first sgsn test case TC_sns_sgsn_config_success Checks if the SGSN can success configures a SNS. Change-Id: Ibacc2f6ad3053ff7b1e00054cabb9ec7010ffab2 --- A ns/NS_Tests.sgsn.sns.cfg M ns/NS_Tests.ttcn A ns/osmo-ns.sgsn.sns.cfg 3 files changed, 160 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ns/NS_Tests.sgsn.sns.cfg b/ns/NS_Tests.sgsn.sns.cfg new file mode 100644 index 0000000..360d9f9 --- /dev/null +++ b/ns/NS_Tests.sgsn.sns.cfg @@ -0,0 +1,47 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./NS_Tests.default" + +[LOGGING] + +[MODULE_PARAMETERS] +NS_Tests.mp_nsconfig := { + nsei := 1234, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 22000, + remote_ip := "127.0.0.1", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 22000, + remote_ip := "127.0.0.1", + remote_udp_port := 23001 + } + }, + nsvci := 1235 + } + } +} +NS_Tests.mp_dialect := NS2_DIALECT_SNS +NS_Tests.mp_sns_role := SNS_ROLE_SGSN; + +[TESTPORT_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 0cef341..7d99fa8 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -698,6 +698,16 @@ f_clean_ns_codec(); } +testcase TC_sns_sgsn_config_success() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + setverdict(pass); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -753,6 +763,10 @@ execute( TC_sns_bss_all_signalling_nsvcs_failed() ); execute( TC_sns_rx_size_force_unconf() ); } + + if (mp_sns_role == SNS_ROLE_SGSN) { + execute( TC_sns_sgsn_config_success() ); + } } } diff --git a/ns/osmo-ns.sgsn.sns.cfg b/ns/osmo-ns.sgsn.sns.cfg new file mode 100644 index 0000000..bebc87e --- /dev/null +++ b/ns/osmo-ns.sgsn.sns.cfg @@ -0,0 +1,99 @@ +! +! OsmoNSdummy (1.4.0.326-f57c-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category-hex 0 + logging print category 1 + logging print extended-timestamp 1 + logging print level 1 + logging print file basename + logging level force-all info + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lnssignal debug + logging level lbssgp debug +log gsmtap 127.0.0.1 + logging filter all 0 + logging color 1 + logging print category-hex 1 + logging print category 0 + logging timestamp 0 + logging print file 1 + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lnssignal debug + logging level lbssgp debug +! +stats reporter statsd + disable + remote-ip 127.0.0.1 + remote-port 8125 + mtu 1024 + level subscriber + prefix TTCN3 + flush-period 1 + enable +stats interval 0 +! +line vty + no login +! +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 12 + timer tns-alive 3 + timer tns-alive-retries 3 + timer tsns-prov 3 + timer tsns-size-retries 3 + timer tsns-config-retries 3 + bind udp local + listen 127.0.0.1 23000 + ip-sns signalling-weight 2 data-weight 2 + bind udp local2 + listen 127.0.0.1 23001 + ip-sns signalling-weight 1 data-weight 1 + nse 1234 ip-sns-role-sgsn + ip-sns-bind local + ip-sns-bind local2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25139 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibacc2f6ad3053ff7b1e00054cabb9ec7010ffab2 Gerrit-Change-Number: 25139 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:45:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_add to test SNS ADD on the SGSN role In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25140 ) Change subject: ns2: add TC_sns_sgsn_add to test SNS ADD on the SGSN role ...................................................................... ns2: add TC_sns_sgsn_add to test SNS ADD on the SGSN role Change-Id: I7474ea81ee905fb9fffb6c413b312e0b3547ea14 --- M ns/NS_Tests.ttcn 1 file changed, 20 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 7d99fa8..733bad1 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -708,6 +708,25 @@ f_clean_ns_codec(); } +testcase TC_sns_sgsn_add() runs on RAW_Test_CT { + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 4, num_ip := 4); + f_outgoing_sns_config(); + f_incoming_sns_config(); + activate(as_rx_alive_tx_ack()); + + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + f_incoming_sns_add(idx_add := 1); + as_rx_alive_tx_ack(oneshot := true, idx := 1); + + setverdict(pass); + f_clean_ns_codec(); +} + + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -766,6 +785,7 @@ if (mp_sns_role == SNS_ROLE_SGSN) { execute( TC_sns_sgsn_config_success() ); + execute( TC_sns_sgsn_add() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25140 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7474ea81ee905fb9fffb6c413b312e0b3547ea14 Gerrit-Change-Number: 25140 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:45:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: mark TC_sns_bss_all_signalling_nsvcs_failed as broken In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25141 ) Change subject: ns2: mark TC_sns_bss_all_signalling_nsvcs_failed as broken ...................................................................... ns2: mark TC_sns_bss_all_signalling_nsvcs_failed as broken The test case tests the wrong side. The signalling and data weight are valid for the other side. The correct test case needs to add a second bind on the ttcn3 side because the signalling and data weight is valid for the remote side. Change-Id: Ice79a038b0b8df9e69232bb24b2f2b18b3632758 --- M ns/NS_Tests.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 733bad1..e9c3bf4 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -654,6 +654,10 @@ * 3. add second bind to SNS * 4. stop reacting to NS_ALIVE on first NSVC (only NSVC with sig weight) * 5. expect SNS SIZE + * + * Broken: the test case tests the wrong side. The signalling + * and data weight are valid for the other side. The correct + * test case needs to add a second bind on the ttcn3 side. */ testcase TC_sns_bss_all_signalling_nsvcs_failed() runs on RAW_Test_CT { g_handle_rx_alive := true; @@ -779,7 +783,7 @@ execute( TC_sns_bss_add() ); execute( TC_sns_bss_del() ); execute( TC_sns_bss_add_change_del() ); - execute( TC_sns_bss_all_signalling_nsvcs_failed() ); + /* execute( TC_sns_bss_all_signalling_nsvcs_failed() ); */ execute( TC_sns_rx_size_force_unconf() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25141 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ice79a038b0b8df9e69232bb24b2f2b18b3632758 Gerrit-Change-Number: 25141 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:45:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25339 ) Change subject: ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side ...................................................................... ns2: add TC_sns_sgsn_del to test SNS DEL on the SGSN side Test the SNS DEL procedure when ns2 is operating the SGSN side. Change-Id: If519da5212470957b922c569b2b8e5a50e12a8a8 --- M ns/NS_Tests.ttcn 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index e9c3bf4..b45ab91 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -730,6 +730,27 @@ f_clean_ns_codec(); } +testcase TC_sns_sgsn_del() runs on RAW_Test_CT { + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 4, num_ip := 4); + f_outgoing_sns_config(); + f_incoming_sns_config(); + activate(as_rx_alive_tx_ack()); + + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + f_incoming_sns_add(idx_add := 1); + as_rx_alive_tx_ack(oneshot := true, idx := 1); + + /* delete the endpoint */ + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local2"); + f_incoming_sns_del(idx_del := 1); + + setverdict(pass); + f_clean_ns_codec(); +} control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { @@ -790,6 +811,7 @@ if (mp_sns_role == SNS_ROLE_SGSN) { execute( TC_sns_sgsn_config_success() ); execute( TC_sns_sgsn_add() ); + execute( TC_sns_sgsn_del() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25339 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: If519da5212470957b922c569b2b8e5a50e12a8a8 Gerrit-Change-Number: 25339 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:20 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:45:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add TC_sns_sgsn_add_change_del similiar to the bss side In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25340 ) Change subject: ns2: add TC_sns_sgsn_add_change_del similiar to the bss side ...................................................................... ns2: add TC_sns_sgsn_add_change_del similiar to the bss side 1. do SNS configuration 2. add a bind 3. receive the SNS_ADD 4. before answering the SNS_ADD, change the weight via vty and remove the bind Change-Id: I1a3d2273279f3def0d225ba78d400fb52a958c64 --- M ns/NS_Tests.ttcn 1 file changed, 47 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index b45ab91..c08f877 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -752,6 +752,52 @@ f_clean_ns_codec(); } +/* 1. do SNS configuration + * 2. add a bind + * 3. receive the SNS_ADD + * 4. before answering the SNS_ADD, change the weight via vty and remove the bind + */ +testcase TC_sns_sgsn_add_change_del() runs on RAW_Test_CT { + var PDU_NS rx; + var NSVCConfiguration nsvc_cfg; + + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 4, num_ip := 4); + f_outgoing_sns_config(); + f_incoming_sns_config(); + activate(as_rx_alive_tx_ack()); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + + /* rx SNS ADD */ + nsvc_cfg := g_nsconfig.nsvc[1]; + if (nsvc_cfg.provider.ip.address_family == AF_INET) { + var template (omit) IP4_Elements v4_elem := { ts_SNS_IPv4(nsvc_cfg.provider.ip.remote_ip, + nsvc_cfg.provider.ip.remote_udp_port, + 1, 1) }; + rx := f_ns_exp(tr_SNS_ADD(g_nsconfig.nsei, ?, v4 := v4_elem), 0); + } else { + var template (omit) IP6_Elements v6_elem := { ts_SNS_IPv6(nsvc_cfg.provider.ip.remote_ip, + nsvc_cfg.provider.ip.remote_udp_port, + 1, 1) }; + rx := f_ns_exp(tr_SNS_ADD(g_nsconfig.nsei, ?, omit, v6_elem), 0); + } + + /* delete the endpoint */ + f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 99 data-weight 99"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local2"); + + /* accept the SNS_ADD */ + NSCP[0].send(ts_SNS_ACK(g_nsconfig.nsei, rx.pDU_SNS_Add.transactionID)); + + f_incoming_sns_chg_weight(idx_chg := 1); + f_incoming_sns_del(idx_del := 1, w_sig := 99, w_user := 99); + setverdict(pass); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -812,6 +858,7 @@ execute( TC_sns_sgsn_config_success() ); execute( TC_sns_sgsn_add() ); execute( TC_sns_sgsn_del() ); + execute( TC_sns_sgsn_add_change_del() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25340 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1a3d2273279f3def0d225ba78d400fb52a958c64 Gerrit-Change-Number: 25340 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:29 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:45:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 ) Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... Patch Set 4: Code-Review+2 re-add previous vote after removing code dup -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Sun, 05 Sep 2021 19:45:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:45:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:45:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_bts_connected_* tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 ) Change subject: bsc: add TC_stat_num_bts_connected_* tests ...................................................................... Patch Set 3: Code-Review+2 re-add previous votes after removing code dup -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 Gerrit-Change-Number: 25272 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 19:45: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 Sep 5 19:46:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 19:46:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25144/1/src/gb/gprs_ns_sns.c File src/gb/gprs_ns_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/25144/1/src/gb/gprs_ns_sns.c at 276 PS1, Line 276: enum g > I'm also a bit puzzled by this. Moving the enum to ns2_internal. [?] This part was wrong! It was edited on accident (see ns.c -> ns1 code base). -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 19:46:34 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:48:59 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:48:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 to look at the new patch set (#5). Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... bsc: add TC_stat_num_msc_connected* tests Verify MSC connection count stats. Related: SYS#5542 Depends: Idace66b37492fe96b2f2e133a69cac7960ca279c (libosmocore) Depends: If76bbf9b3adb64c68d5c31c6b526fa71a99996ae (osmo-bsc) Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf --- M bsc/BSC_Tests.ttcn 1 file changed, 53 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/25228/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:48:59 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:48:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_bts_connected_* tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 to look at the new patch set (#4). Change subject: bsc: add TC_stat_num_bts_connected_* tests ...................................................................... bsc: add TC_stat_num_bts_connected_* tests Related: SYS#5542 Depends: I2057a798e681a169cc03243a09b3d6449734c010 (osmo-bsc) Depends: Idace66b37492fe96b2f2e133a69cac7960ca279c (libosmocore) Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 --- M bsc/BSC_Tests.ttcn 1 file changed, 58 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/72/25272/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 Gerrit-Change-Number: 25272 Gerrit-PatchSet: 4 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 Sun Sep 5 19:49:55 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:49:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 ) Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... Patch Set 5: Code-Review+2 re-add previous votes after adding a "Depends" to the commit msg -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Sun, 05 Sep 2021 19:49: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 Sep 5 19:50:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:50:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_bts_connected_* tests In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 ) Change subject: bsc: add TC_stat_num_bts_connected_* tests ...................................................................... Patch Set 4: Code-Review+2 re-add previous votes after adding a "Depends" to the commit msg -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 Gerrit-Change-Number: 25272 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 19:50:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:55:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:55:50 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25224 to look at the new patch set (#4). Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... CTRL: expose stat_item groups on CTRL Expose all stat items as RO variables of the form stat_item.last.group_name.N.item_name stat_item.last.group_name.by_name.idx_name.item_name For (possibly contrived) example: stat_item.last.trunk.0.endpoints:used stat_item.last.trunk.by_name.virtual-0.endpoints:used Include the 'last' token to ease future extension, like 'max'. Put this token in the beginning, similarly to rate_ctr variables, which begin with 'per_sec', 'per_hour', ... Related: SYS#5542 Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c --- M src/ctrl/control_if.c 1 file changed, 100 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/25224/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:55:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:55:50 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() 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/+/25347 to look at the new patch set (#3). Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... revisit some calls of strtol(), stroul(), strtoull() Replace some with atoi(), where the VTY has already validated correct range of the argument. Replace others with the new osmo_str_to_int() or osmo_str_to_int64() functions, possibly covering more detection of invalid number strings. Leave those strtol() callers that depend on endptr to provide the next string token. Related: SYS#5542 Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 --- M src/ctrl/control_if.c M src/gsm/gsm23003.c M src/gsm/gsm23236.c M src/vty/command.c M src/vty/cpu_sched_vty.c M src/vty/tdef_vty.c M utils/osmo-aka-verify.c 7 files changed, 31 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/25347/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:57:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:57:13 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25224 to look at the new patch set (#5). Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... CTRL: expose stat_item groups on CTRL Expose all stat items as RO variables of the form stat_item.last.group_name.N.item_name stat_item.last.group_name.by_name.idx_name.item_name For (possibly contrived) example: stat_item.last.trunk.0.endpoints:used stat_item.last.trunk.by_name.virtual-0.endpoints:used Include the 'last' token to ease future extension, like 'max'. Put this token in the beginning, similarly to rate_ctr variables, which begin with 'per_sec', 'per_hour', ... Related: SYS#5542 Related: I178dcf4516606aa561d47b06061b8a416d3c40cf (osmo-ttcn3-hacks) Related: Ic1b35b7406547f92818afe399a2383d154576409 (osmo-ttcn3-hacks) Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c --- M src/ctrl/control_if.c 1 file changed, 100 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/25224/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 19:57:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 5 Sep 2021 19:57:13 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() 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/+/25347 to look at the new patch set (#4). Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... revisit some calls of strtol(), stroul(), strtoull() Replace some with atoi(), where the VTY has already validated correct range of the argument. Replace others with the new osmo_str_to_int() or osmo_str_to_int64() functions, possibly covering more detection of invalid number strings. Leave those strtol() callers that depend on endptr to provide the next string token. Related: SYS#5542 Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 --- M src/ctrl/control_if.c M src/gsm/gsm23003.c M src/gsm/gsm23236.c M src/vty/command.c M src/vty/cpu_sched_vty.c M src/vty/tdef_vty.c M utils/osmo-aka-verify.c 7 files changed, 31 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/47/25347/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 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 Sun Sep 5 20:44:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 5 Sep 2021 20:44:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 20: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 Sun Sep 5 20:47:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 5 Sep 2021 20:47:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25145 ) Change subject: gprs_ns2_sns: rework sns clean up ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b Gerrit-Change-Number: 25145 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 05 Sep 2021 20:47: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 Sep 5 20:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:21 +0000 Subject: Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25144 ) Change subject: gprs_ns2: move sns_event into internal.h to direct emit events ...................................................................... gprs_ns2: move sns_event into internal.h to direct emit events When other parts of ns2 requires to emit an event to the SNS fsm it would need a proxy function because the events are private to the SNS file. To circumvent creating multiple proxy function make the events available via a header file. Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 2 files changed, 92 insertions(+), 92 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 95efbae..6096263 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -320,6 +320,23 @@ void (*free_bind)(struct gprs_ns2_vc_bind *driver); }; +enum ns2_sns_event { + NS2_SNS_EV_REQ_SELECT_ENDPOINT, /*!< Select a SNS endpoint from the list */ + NS2_SNS_EV_RX_SIZE, + NS2_SNS_EV_RX_SIZE_ACK, + NS2_SNS_EV_RX_CONFIG, + NS2_SNS_EV_RX_CONFIG_END, /*!< SNS-CONFIG with end flag received */ + NS2_SNS_EV_RX_CONFIG_ACK, + NS2_SNS_EV_RX_ADD, + NS2_SNS_EV_RX_DELETE, + NS2_SNS_EV_RX_CHANGE_WEIGHT, + NS2_SNS_EV_RX_ACK, /*!< Rx of SNS-ACK (response to ADD/DELETE/CHG_WEIGHT */ + NS2_SNS_EV_REQ_NO_NSVC, /*!< no more NS-VC remaining (all dead) */ + NS2_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */ + NS2_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */ + NS2_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */ +}; + enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, struct msgb *msg, const struct osmo_sockaddr *remote, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index a9ace5f..181d1a3 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -72,38 +72,21 @@ GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK, /* !< SGSN role: Wait for CONFIG-ACK from BSS */ }; -enum gprs_sns_event { - GPRS_SNS_EV_REQ_SELECT_ENDPOINT, /*!< Select a SNS endpoint from the list */ - GPRS_SNS_EV_RX_SIZE, - GPRS_SNS_EV_RX_SIZE_ACK, - GPRS_SNS_EV_RX_CONFIG, - GPRS_SNS_EV_RX_CONFIG_END, /*!< SNS-CONFIG with end flag received */ - GPRS_SNS_EV_RX_CONFIG_ACK, - GPRS_SNS_EV_RX_ADD, - GPRS_SNS_EV_RX_DELETE, - GPRS_SNS_EV_RX_CHANGE_WEIGHT, - GPRS_SNS_EV_RX_ACK, /*!< Rx of SNS-ACK (response to ADD/DELETE/CHG_WEIGHT */ - GPRS_SNS_EV_REQ_NO_NSVC, /*!< no more NS-VC remaining (all dead) */ - GPRS_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */ - GPRS_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */ - GPRS_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */ -}; - static const struct value_string gprs_sns_event_names[] = { - { GPRS_SNS_EV_REQ_SELECT_ENDPOINT, "REQ_SELECT_ENDPOINT" }, - { GPRS_SNS_EV_RX_SIZE, "RX_SIZE" }, - { GPRS_SNS_EV_RX_SIZE_ACK, "RX_SIZE_ACK" }, - { GPRS_SNS_EV_RX_CONFIG, "RX_CONFIG" }, - { GPRS_SNS_EV_RX_CONFIG_END, "RX_CONFIG_END" }, - { GPRS_SNS_EV_RX_CONFIG_ACK, "RX_CONFIG_ACK" }, - { GPRS_SNS_EV_RX_ADD, "RX_ADD" }, - { GPRS_SNS_EV_RX_DELETE, "RX_DELETE" }, - { GPRS_SNS_EV_RX_ACK, "RX_ACK" }, - { GPRS_SNS_EV_RX_CHANGE_WEIGHT, "RX_CHANGE_WEIGHT" }, - { GPRS_SNS_EV_REQ_NO_NSVC, "REQ_NO_NSVC" }, - { GPRS_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"}, - { GPRS_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"}, - { GPRS_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"}, + { NS2_SNS_EV_REQ_SELECT_ENDPOINT, "REQ_SELECT_ENDPOINT" }, + { NS2_SNS_EV_RX_SIZE, "RX_SIZE" }, + { NS2_SNS_EV_RX_SIZE_ACK, "RX_SIZE_ACK" }, + { NS2_SNS_EV_RX_CONFIG, "RX_CONFIG" }, + { NS2_SNS_EV_RX_CONFIG_END, "RX_CONFIG_END" }, + { NS2_SNS_EV_RX_CONFIG_ACK, "RX_CONFIG_ACK" }, + { NS2_SNS_EV_RX_ADD, "RX_ADD" }, + { NS2_SNS_EV_RX_DELETE, "RX_DELETE" }, + { NS2_SNS_EV_RX_ACK, "RX_ACK" }, + { NS2_SNS_EV_RX_CHANGE_WEIGHT, "RX_CHANGE_WEIGHT" }, + { NS2_SNS_EV_REQ_NO_NSVC, "REQ_NO_NSVC" }, + { NS2_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"}, + { NS2_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"}, + { NS2_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"}, { 0, NULL } }; @@ -187,7 +170,7 @@ else _osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0, file, line); } else { - _osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL, file, line); + _osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL, file, line); } } @@ -306,7 +289,7 @@ } } - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_REQ_NO_NSVC, NULL); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_NO_NSVC, NULL); } static void ns2_clear_elems(struct ns2_sns_elems *elems) @@ -752,7 +735,7 @@ OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS); switch (event) { - case GPRS_SNS_EV_RX_SIZE_ACK: + case NS2_SNS_EV_RX_SIZE_ACK: tp = data; if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { LOGPFSML(fi, LOGL_ERROR, "SNS-SIZE-ACK with cause %s\n", @@ -951,7 +934,7 @@ OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS); switch (event) { - case GPRS_SNS_EV_RX_CONFIG_ACK: + case NS2_SNS_EV_RX_CONFIG_ACK: tp = (struct tlv_parsed *) data; if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG-ACK with cause %s\n", @@ -1073,8 +1056,8 @@ OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_BSS); switch (event) { - case GPRS_SNS_EV_RX_CONFIG_END: - case GPRS_SNS_EV_RX_CONFIG: + case NS2_SNS_EV_RX_CONFIG_END: + case NS2_SNS_EV_RX_CONFIG: rc = ns_sns_append_remote_eps(fi, data); if (rc < 0) { cause = -rc; @@ -1082,7 +1065,7 @@ osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); return; } - if (event == GPRS_SNS_EV_RX_CONFIG_END) { + if (event == NS2_SNS_EV_RX_CONFIG_END) { /* check if sum of data / sig weights == 0 */ if (ip46_weight_sum_data(&gss->remote) == 0 || ip46_weight_sum_sig(&gss->remote) == 0) { cause = NS_CAUSE_INVAL_WEIGH; @@ -1106,7 +1089,7 @@ } } -/* called when receiving GPRS_SNS_EV_RX_ADD in state configure */ +/* called when receiving NS2_SNS_EV_RX_ADD in state configure */ static void ns2_sns_st_configured_add(struct osmo_fsm_inst *fi, struct ns2_sns_state *gss, struct tlv_parsed *tp) @@ -1349,16 +1332,16 @@ struct tlv_parsed *tp = data; switch (event) { - case GPRS_SNS_EV_RX_ADD: + case NS2_SNS_EV_RX_ADD: ns2_sns_st_configured_add(fi, gss, tp); break; - case GPRS_SNS_EV_RX_DELETE: + case NS2_SNS_EV_RX_DELETE: ns2_sns_st_configured_delete(fi, gss, tp); break; - case GPRS_SNS_EV_RX_CHANGE_WEIGHT: + case NS2_SNS_EV_RX_CHANGE_WEIGHT: ns2_sns_st_configured_change(fi, gss, tp); break; - case GPRS_SNS_EV_REQ_NSVC_ALIVE: + case NS2_SNS_EV_REQ_NSVC_ALIVE: osmo_timer_del(&fi->timer); break; } @@ -1395,7 +1378,7 @@ .action = ns2_sns_st_bss_unconfigured, }, [GPRS_SNS_ST_BSS_SIZE] = { - .in_event_mask = S(GPRS_SNS_EV_RX_SIZE_ACK), + .in_event_mask = S(NS2_SNS_EV_RX_SIZE_ACK), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | S(GPRS_SNS_ST_BSS_SIZE) | S(GPRS_SNS_ST_BSS_CONFIG_BSS), @@ -1404,7 +1387,7 @@ .onenter = ns2_sns_st_bss_size_onenter, }, [GPRS_SNS_ST_BSS_CONFIG_BSS] = { - .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG_ACK), + .in_event_mask = S(NS2_SNS_EV_RX_CONFIG_ACK), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | S(GPRS_SNS_ST_BSS_CONFIG_BSS) | S(GPRS_SNS_ST_BSS_CONFIG_SGSN) | @@ -1414,8 +1397,8 @@ .onenter = ns2_sns_st_bss_config_bss_onenter, }, [GPRS_SNS_ST_BSS_CONFIG_SGSN] = { - .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG) | - S(GPRS_SNS_EV_RX_CONFIG_END), + .in_event_mask = S(NS2_SNS_EV_RX_CONFIG) | + S(NS2_SNS_EV_RX_CONFIG_END), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | S(GPRS_SNS_ST_BSS_CONFIG_SGSN) | S(GPRS_SNS_ST_CONFIGURED) | @@ -1425,10 +1408,10 @@ .onenter = ns2_sns_st_bss_config_sgsn_onenter, }, [GPRS_SNS_ST_CONFIGURED] = { - .in_event_mask = S(GPRS_SNS_EV_RX_ADD) | - S(GPRS_SNS_EV_RX_DELETE) | - S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) | - S(GPRS_SNS_EV_REQ_NSVC_ALIVE), + .in_event_mask = S(NS2_SNS_EV_RX_ADD) | + S(NS2_SNS_EV_RX_DELETE) | + S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | + S(NS2_SNS_EV_REQ_NSVC_ALIVE), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | S(GPRS_SNS_ST_BSS_SIZE), .name = "CONFIGURED", @@ -1481,11 +1464,11 @@ struct gprs_ns2_vc *nsvc, *nsvc2; switch (event) { - case GPRS_SNS_EV_REQ_ADD_BIND: + case NS2_SNS_EV_REQ_ADD_BIND: sbind = data; switch (fi->state) { case GPRS_SNS_ST_UNCONFIGURED: - osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL); + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL); break; case GPRS_SNS_ST_BSS_SIZE: /* TODO: add the ip4 element to the list */ @@ -1497,7 +1480,7 @@ break; } break; - case GPRS_SNS_EV_REQ_DELETE_BIND: + case NS2_SNS_EV_REQ_DELETE_BIND: sbind = data; switch (fi->state) { case GPRS_SNS_ST_UNCONFIGURED: @@ -1582,16 +1565,16 @@ struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); - /* reset when receiving GPRS_SNS_EV_REQ_NO_NSVC */ + /* reset when receiving NS2_SNS_EV_REQ_NO_NSVC */ switch (event) { - case GPRS_SNS_EV_REQ_NO_NSVC: + case NS2_SNS_EV_REQ_NO_NSVC: /* ignore reselection running */ if (gss->reselection_running) break; sns_failed(fi, "no remaining NSVC, resetting SNS FSM"); break; - case GPRS_SNS_EV_REQ_SELECT_ENDPOINT: + case NS2_SNS_EV_REQ_SELECT_ENDPOINT: /* tear down previous state * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ gss->reselection_running = true; @@ -1629,10 +1612,10 @@ .name = "GPRS-NS2-SNS-BSS", .states = ns2_sns_bss_states, .num_states = ARRAY_SIZE(ns2_sns_bss_states), - .allstate_event_mask = S(GPRS_SNS_EV_REQ_NO_NSVC) | - S(GPRS_SNS_EV_REQ_SELECT_ENDPOINT) | - S(GPRS_SNS_EV_REQ_ADD_BIND) | - S(GPRS_SNS_EV_REQ_DELETE_BIND), + .allstate_event_mask = S(NS2_SNS_EV_REQ_NO_NSVC) | + S(NS2_SNS_EV_REQ_SELECT_ENDPOINT) | + S(NS2_SNS_EV_REQ_ADD_BIND) | + S(NS2_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_bss, .cleanup = NULL, .timer_cb = ns2_sns_fsm_bss_timer_cb, @@ -1706,31 +1689,31 @@ switch (nsh->pdu_type) { case SNS_PDUT_SIZE: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_SIZE, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_SIZE, tp); break; case SNS_PDUT_SIZE_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_SIZE_ACK, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_SIZE_ACK, tp); break; case SNS_PDUT_CONFIG: if (nsh->data[0] & 0x01) - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CONFIG_END, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CONFIG_END, tp); else - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CONFIG, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CONFIG, tp); break; case SNS_PDUT_CONFIG_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CONFIG_ACK, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CONFIG_ACK, tp); break; case SNS_PDUT_ADD: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_ADD, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_ADD, tp); break; case SNS_PDUT_DELETE: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_DELETE, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_DELETE, tp); break; case SNS_PDUT_CHANGE_WEIGHT: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_CHANGE_WEIGHT, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_CHANGE_WEIGHT, tp); break; case SNS_PDUT_ACK: - osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_RX_ACK, tp); + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_RX_ACK, tp); break; default: LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, @@ -1873,7 +1856,7 @@ llist_add_tail(&endpoint->list, &gss->sns_endpoints); if (do_selection) - osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_SELECT_ENDPOINT, NULL); + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL); return 0; } @@ -1909,7 +1892,7 @@ return 0; } - /* gprs_ns2_free_nsvcs() will trigger GPRS_SNS_EV_REQ_NO_NSVC on the last NS-VC + /* gprs_ns2_free_nsvcs() will trigger NS2_SNS_EV_REQ_NO_NSVC on the last NS-VC * and restart SNS SIZE procedure which selects a new initial */ LOGNSE(nse, LOGL_INFO, "Current in-use SNS endpoint is being removed." "Closing all NS-VC and restart SNS-SIZE procedure" @@ -1983,7 +1966,7 @@ if (alive) { gss->alive = true; - osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_NSVC_ALIVE, NULL); + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_NSVC_ALIVE, NULL); } else { /* is there at least another alive nsvc? */ llist_for_each_entry(tmp, &nse->nsvc, list) { @@ -1993,7 +1976,7 @@ /* all NS-VC have failed */ gss->alive = false; - osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_NO_NSVC, NULL); + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_NO_NSVC, NULL); } } @@ -2023,7 +2006,7 @@ tmp->bind = bind; llist_add_tail(&tmp->list, &gss->binds); - osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_ADD_BIND, tmp); + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_ADD_BIND, tmp); return 0; } @@ -2057,7 +2040,7 @@ if (!found) return -ENOENT; - osmo_fsm_inst_dispatch(nse->bss_sns_fi, GPRS_SNS_EV_REQ_DELETE_BIND, tmp); + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_DELETE_BIND, tmp); return 0; } @@ -2095,8 +2078,8 @@ OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN); switch (event) { - case GPRS_SNS_EV_RX_CONFIG: - case GPRS_SNS_EV_RX_CONFIG_END: + case NS2_SNS_EV_RX_CONFIG: + case NS2_SNS_EV_RX_CONFIG_END: rc = ns_sns_append_remote_eps(fi, data); if (rc < 0) { cause = -rc; @@ -2105,7 +2088,7 @@ return; } /* only change state if last CONFIG was received */ - if (event == GPRS_SNS_EV_RX_CONFIG_END) { + if (event == NS2_SNS_EV_RX_CONFIG_END) { /* ensure sum of data weight / sig weights is > 0 */ if (ip46_weight_sum_data(&gss->remote) == 0 || ip46_weight_sum_sig(&gss->remote) == 0) { cause = NS_CAUSE_INVAL_WEIGH; @@ -2144,7 +2127,7 @@ OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN); switch (event) { - case GPRS_SNS_EV_RX_CONFIG_ACK: + case NS2_SNS_EV_RX_CONFIG_ACK: tp = data; if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { LOGPFSML(fi, LOGL_ERROR, "Rx SNS-CONFIG-ACK with cause %s\n", @@ -2173,8 +2156,8 @@ .action = ns2_sns_st_sgsn_unconfigured, }, [GPRS_SNS_ST_SGSN_WAIT_CONFIG] = { - .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG) | - S(GPRS_SNS_EV_RX_CONFIG_END), + .in_event_mask = S(NS2_SNS_EV_RX_CONFIG) | + S(NS2_SNS_EV_RX_CONFIG_END), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | S(GPRS_SNS_ST_SGSN_WAIT_CONFIG) | S(GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK), @@ -2182,7 +2165,7 @@ .action = ns2_sns_st_sgsn_wait_config, }, [GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK] = { - .in_event_mask = S(GPRS_SNS_EV_RX_CONFIG_ACK), + .in_event_mask = S(NS2_SNS_EV_RX_CONFIG_ACK), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | S(GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK) | S(GPRS_SNS_ST_CONFIGURED), @@ -2191,10 +2174,10 @@ .onenter = ns2_sns_st_sgsn_wait_config_ack_onenter, }, [GPRS_SNS_ST_CONFIGURED] = { - .in_event_mask = S(GPRS_SNS_EV_RX_ADD) | - S(GPRS_SNS_EV_RX_DELETE) | - S(GPRS_SNS_EV_RX_CHANGE_WEIGHT) | - S(GPRS_SNS_EV_REQ_NSVC_ALIVE), + .in_event_mask = S(NS2_SNS_EV_RX_ADD) | + S(NS2_SNS_EV_RX_DELETE) | + S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | + S(NS2_SNS_EV_REQ_NSVC_ALIVE), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED), .name = "CONFIGURED", /* shared with BSS side; once configured there's no difference */ @@ -2239,7 +2222,7 @@ OSMO_ASSERT(gss->role == GPRS_SNS_ROLE_SGSN); switch (event) { - case GPRS_SNS_EV_RX_SIZE: + case NS2_SNS_EV_RX_SIZE: tp = (struct tlv_parsed *) data; /* check for mandatory / conditional IEs */ if (!TLVP_PRES_LEN(tp, NS_IE_RESET_FLAG, 1) || @@ -2339,10 +2322,10 @@ .name = "GPRS-NS2-SNS-SGSN", .states = ns2_sns_sgsn_states, .num_states = ARRAY_SIZE(ns2_sns_sgsn_states), - .allstate_event_mask = S(GPRS_SNS_EV_RX_SIZE) | - S(GPRS_SNS_EV_REQ_NO_NSVC) | - S(GPRS_SNS_EV_REQ_ADD_BIND) | - S(GPRS_SNS_EV_REQ_DELETE_BIND), + .allstate_event_mask = S(NS2_SNS_EV_RX_SIZE) | + S(NS2_SNS_EV_REQ_NO_NSVC) | + S(NS2_SNS_EV_REQ_ADD_BIND) | + S(NS2_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_sgsn, .cleanup = NULL, .timer_cb = ns2_sns_fsm_sgsn_timer_cb, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25144 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8e3fae4367c112b5a71bffb33c302d903855cddc Gerrit-Change-Number: 25144 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter 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 Sun Sep 5 20:56:23 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:23 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25145 ) Change subject: gprs_ns2_sns: rework sns clean up ...................................................................... gprs_ns2_sns: rework sns clean up Move the cleanup into it's own state. Also changing the SGSN unconfigured state which won't be triggered when a SIZE is received. Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b --- M src/gb/gprs_ns2_sns.c 1 file changed, 33 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 181d1a3..1b2864e 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -2059,6 +2059,29 @@ * SGSN role ***********************************************************************/ +/* cleanup all state. If nsvc is given, don't remove this nsvc. (nsvc is given when a SIZE PDU received) */ +static void ns2_clear_sgsn(struct ns2_sns_state *gss, struct gprs_ns2_vc *size_nsvc) +{ + struct gprs_ns2_vc *nsvc, *nsvc2; + + ns2_clear_elems(&gss->local); + ns2_clear_elems(&gss->remote); + llist_for_each_entry_safe(nsvc, nsvc2, &gss->nse->nsvc, list) { + /* Ignore the NSVC over which the SIZE PDU got received */ + if (size_nsvc && size_nsvc == nsvc) + continue; + + gprs_ns2_free_nsvc(nsvc); + } +} + +static void ns2_sns_st_sgsn_unconfigured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; + + ns2_clear_sgsn(gss, NULL); +} + static void ns2_sns_st_sgsn_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; @@ -2154,6 +2177,7 @@ S(GPRS_SNS_ST_SGSN_WAIT_CONFIG), .name = "UNCONFIGURED", .action = ns2_sns_st_sgsn_unconfigured, + .onenter = ns2_sns_st_sgsn_unconfigured_onenter, }, [GPRS_SNS_ST_SGSN_WAIT_CONFIG] = { .in_event_mask = S(NS2_SNS_EV_RX_CONFIG) | @@ -2167,6 +2191,7 @@ [GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK] = { .in_event_mask = S(NS2_SNS_EV_RX_CONFIG_ACK), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_SGSN_WAIT_CONFIG) | S(GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK) | S(GPRS_SNS_ST_CONFIGURED), .name = "SGSN_WAIT_CONFIG_ACK", @@ -2178,7 +2203,8 @@ S(NS2_SNS_EV_RX_DELETE) | S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | S(NS2_SNS_EV_REQ_NSVC_ALIVE), - .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_SGSN_WAIT_CONFIG), .name = "CONFIGURED", /* shared with BSS side; once configured there's no difference */ .action = ns2_sns_st_configured, @@ -2281,23 +2307,14 @@ /* perform state reset, if requested */ flag = *TLVP_VAL(tp, NS_IE_RESET_FLAG); if (flag & 1) { - struct gprs_ns2_vc *nsvc, *nsvc2; /* clear all state */ - osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); + /* TODO: ensure gss->sns_nsvc is always the NSVC on which we received the SIZE PDU */ gss->N = 0; - ns2_clear_elems(&gss->local); - ns2_clear_elems(&gss->remote); - llist_for_each_entry_safe(nsvc, nsvc2, &gss->nse->nsvc, list) { - if (nsvc == gss->sns_nsvc) { - /* keep the NSVC we need for SNS, but unconfigure it */ - nsvc->sig_weight = 0; - nsvc->data_weight = 0; - ns2_vc_force_unconfigured(nsvc); - } else { - /* free all other NS-VCs */ - gprs_ns2_free_nsvc(nsvc); - } - } + ns2_clear_sgsn(gss, gss->sns_nsvc); + /* keep the NSVC we need for SNS, but unconfigure it */ + gss->sns_nsvc->sig_weight = 0; + gss->sns_nsvc->data_weight = 0; + ns2_vc_force_unconfigured(gss->sns_nsvc); ns2_sns_compute_local_ep_from_binds(fi); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25145 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2639345fdf3cd300a934238d676c543065ceaa8b Gerrit-Change-Number: 25145 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 20:56:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: use an event to free the nsvscs when using SNS In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25146 ) Change subject: gprs_ns2: use an event to free the nsvscs when using SNS ...................................................................... gprs_ns2: use an event to free the nsvscs when using SNS Otherwise there could be recursive loop when free'ing NSVCs which in the end create an event which the SNS want to free the NSVCs a second time Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 18 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 45cdfcc..83a8ca0 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -674,8 +674,12 @@ if (!nse || nse->freed) return; - llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); + if (nse->bss_sns_fi) { + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_FREE_NSVCS, NULL); + } else { + llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { + gprs_ns2_free_nsvc(nsvc); + } } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index 6096263..d2407f6 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -332,6 +332,7 @@ NS2_SNS_EV_RX_CHANGE_WEIGHT, NS2_SNS_EV_RX_ACK, /*!< Rx of SNS-ACK (response to ADD/DELETE/CHG_WEIGHT */ NS2_SNS_EV_REQ_NO_NSVC, /*!< no more NS-VC remaining (all dead) */ + NS2_SNS_EV_REQ_FREE_NSVCS, /*!< free all NS-VCs */ NS2_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */ NS2_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */ NS2_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */ diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 1b2864e..e96f6b3 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -84,6 +84,7 @@ { NS2_SNS_EV_RX_ACK, "RX_ACK" }, { NS2_SNS_EV_RX_CHANGE_WEIGHT, "RX_CHANGE_WEIGHT" }, { NS2_SNS_EV_REQ_NO_NSVC, "REQ_NO_NSVC" }, + { NS2_SNS_EV_REQ_FREE_NSVCS, "REQ_FREE_NSVCS" }, { NS2_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"}, { NS2_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"}, { NS2_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"}, @@ -1564,6 +1565,7 @@ { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); + struct gprs_ns2_vc *nsvc, *nsvc2; /* reset when receiving NS2_SNS_EV_REQ_NO_NSVC */ switch (event) { @@ -1574,11 +1576,14 @@ sns_failed(fi, "no remaining NSVC, resetting SNS FSM"); break; + case NS2_SNS_EV_REQ_FREE_NSVCS: case NS2_SNS_EV_REQ_SELECT_ENDPOINT: /* tear down previous state * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ gss->reselection_running = true; - gprs_ns2_free_nsvcs(nse); + llist_for_each_entry_safe(nsvc, nsvc2, &nse->nsvc, list) { + gprs_ns2_free_nsvc(nsvc); + } ns2_clear_elems(&gss->local); ns2_clear_elems(&gss->remote); @@ -1613,6 +1618,7 @@ .states = ns2_sns_bss_states, .num_states = ARRAY_SIZE(ns2_sns_bss_states), .allstate_event_mask = S(NS2_SNS_EV_REQ_NO_NSVC) | + S(NS2_SNS_EV_REQ_FREE_NSVCS) | S(NS2_SNS_EV_REQ_SELECT_ENDPOINT) | S(NS2_SNS_EV_REQ_ADD_BIND) | S(NS2_SNS_EV_REQ_DELETE_BIND), @@ -2329,6 +2335,9 @@ if (flag & 1) osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SGSN_WAIT_CONFIG, 0, 0); break; + case NS2_SNS_EV_REQ_FREE_NSVCS: + sns_failed(fi, "On user request to free all NSVCs"); + break; default: ns2_sns_st_all_action(fi, event, data); break; @@ -2341,6 +2350,7 @@ .num_states = ARRAY_SIZE(ns2_sns_sgsn_states), .allstate_event_mask = S(NS2_SNS_EV_RX_SIZE) | S(NS2_SNS_EV_REQ_NO_NSVC) | + S(NS2_SNS_EV_REQ_FREE_NSVCS) | S(NS2_SNS_EV_REQ_ADD_BIND) | S(NS2_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_sgsn, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25146 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie99ba5fe8a84519fe8a8c0abdf875606715ab7f6 Gerrit-Change-Number: 25146 Gerrit-PatchSet: 5 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 20:56:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing n... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25323 ) Change subject: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs ...................................................................... gprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs When removing NSVCs before removing the bind from the SNS list, the removing NSVCs could trigger a creation of a new NSVC on the same bind ending in a while(true) loop. Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 --- M src/gb/gprs_ns2.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 83a8ca0..326312c 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1479,16 +1479,16 @@ return; bind->freed = true; - llist_for_each_entry_safe(nsvc, tmp, &bind->nsvc, blist) { - gprs_ns2_free_nsvc(nsvc); - } - if (gprs_ns2_is_ip_bind(bind)) { llist_for_each_entry(nse, &bind->nsi->nse, list) { gprs_ns2_sns_del_bind(nse, bind); } } + llist_for_each_entry_safe(nsvc, tmp, &bind->nsvc, blist) { + gprs_ns2_free_nsvc(nsvc); + } + if (bind->driver->free_bind) bind->driver->free_bind(bind); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25323 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6f497348f75fb479427d8a4c23313e33fbc62036 Gerrit-Change-Number: 25323 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 20:56:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25147 ) Change subject: gprs_ns2: don't use llist_for_each when freeing an element ...................................................................... gprs_ns2: don't use llist_for_each when freeing an element The problem are recursive execution because a free generates an event which could allow the use to free a nsvcs while the llist_for_each() is still running. Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c 3 files changed, 28 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 326312c..a895e3d 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -664,22 +664,29 @@ talloc_free(nsvc); } +void ns2_free_nsvcs(struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc; + + /* prevent recursive free() when the user reacts on a down event and free() a second time */ + while (!llist_empty(&nse->nsvc)) { + nsvc = llist_first_entry(&nse->nsvc, struct gprs_ns2_vc, list); + gprs_ns2_free_nsvc(nsvc); + } +} + /*! Destroy/release all NS-VC of given NSE * \param[in] nse NSE */ void gprs_ns2_free_nsvcs(struct gprs_ns2_nse *nse) { - struct gprs_ns2_vc *nsvc, *tmp; - if (!nse || nse->freed) return; if (nse->bss_sns_fi) { osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_FREE_NSVCS, NULL); } else { - llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); - } + ns2_free_nsvcs(nse); } } @@ -893,7 +900,6 @@ * \param[in] nse NS Entity to destroy */ void gprs_ns2_free_nse(struct gprs_ns2_nse *nse) { - struct gprs_ns2_vc *nsvc, *nsvc2; if (!nse || nse->freed) return; @@ -907,9 +913,7 @@ gprs_ns2_free_nsvcs(nse); ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); rate_ctr_group_free(nse->ctrg); - llist_for_each_entry_safe(nsvc, nsvc2, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); - } + ns2_free_nsvcs(nse); llist_del(&nse->list); talloc_free(nse); @@ -917,9 +921,11 @@ void gprs_ns2_free_nses(struct gprs_ns2_inst *nsi) { - struct gprs_ns2_nse *nse, *ntmp; + struct gprs_ns2_nse *nse; - llist_for_each_entry_safe(nse, ntmp, &nsi->nse, list) { + /* prevent recursive free() when the user reacts on a down event and free() a second time */ + while (!llist_empty(&nsi->nse)) { + nse = llist_first_entry(&nsi->nse, struct gprs_ns2_nse, list); gprs_ns2_free_nse(nse); } } @@ -1473,19 +1479,21 @@ * \param[in] bind the bind we want to destroy */ void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind) { - struct gprs_ns2_vc *nsvc, *tmp; + struct gprs_ns2_vc *nsvc; struct gprs_ns2_nse *nse; if (!bind || bind->freed) return; - bind->freed = true; + if (gprs_ns2_is_ip_bind(bind)) { llist_for_each_entry(nse, &bind->nsi->nse, list) { gprs_ns2_sns_del_bind(nse, bind); } } - llist_for_each_entry_safe(nsvc, tmp, &bind->nsvc, blist) { + /* prevent recursive free() when the user reacts on a down event and free() a second time */ + while (!llist_empty(&bind->nsvc)) { + nsvc = llist_first_entry(&bind->nsvc, struct gprs_ns2_vc, blist); gprs_ns2_free_nsvc(nsvc); } @@ -1500,9 +1508,11 @@ void gprs_ns2_free_binds(struct gprs_ns2_inst *nsi) { - struct gprs_ns2_vc_bind *bind, *tbind; + struct gprs_ns2_vc_bind *bind; - llist_for_each_entry_safe(bind, tbind, &nsi->binding, list) { + /* prevent recursive free() when the user reacts on a down event and free() a second time */ + while (!llist_empty(&nsi->binding)) { + bind = llist_first_entry(&nsi->binding, struct gprs_ns2_vc_bind, list); gprs_ns2_free_bind(bind); } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index d2407f6..ca6bfb7 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -354,6 +354,7 @@ enum gprs_ns2_vc_mode vc_mode, const char *id); +void ns2_free_nsvcs(struct gprs_ns2_nse *nse); int ns2_bind_alloc(struct gprs_ns2_inst *nsi, const char *name, struct gprs_ns2_vc_bind **result); diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index e96f6b3..43e4920 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1565,7 +1565,6 @@ { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); - struct gprs_ns2_vc *nsvc, *nsvc2; /* reset when receiving NS2_SNS_EV_REQ_NO_NSVC */ switch (event) { @@ -1581,9 +1580,7 @@ /* tear down previous state * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ gss->reselection_running = true; - llist_for_each_entry_safe(nsvc, nsvc2, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); - } + ns2_free_nsvcs(nse); ns2_clear_elems(&gss->local); ns2_clear_elems(&gss->remote); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68 Gerrit-Change-Number: 25147 Gerrit-PatchSet: 6 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: neels Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 20:56:25 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:25 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/23187 ) Change subject: gprs_ns2_sns: implement local change weight procedure ...................................................................... gprs_ns2_sns: implement local change weight procedure When changing the bind ip-sns weight, initiate a SNS CHANGE WEIGHT procedure to inform the other side. Related: OS#5036 Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_sns.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 460 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index a895e3d..adf3b32 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1440,6 +1440,7 @@ nsi->timeout[NS_TOUT_TSNS_PROV] = 3; /* 1..10 */ nsi->timeout[NS_TOUT_TSNS_SIZE_RETRIES] = 3; nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES] = 3; + nsi->timeout[NS_TOUT_TSNS_PROCEDURES_RETRIES] = 3; return nsi; } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index ca6bfb7..afe6b69 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -60,8 +60,8 @@ struct gprs_ns2_vc_driver; struct gprs_ns2_vc_bind; -#define NS_TIMERS_COUNT 10 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries)" +#define NS_TIMERS_COUNT 11 +#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries|tsns-procedures-retries)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ @@ -73,6 +73,7 @@ "SNS Provision Timer (Tsns-prov) timeout\n" \ "SNS Size number of retries\n" \ "SNS Config number of retries\n" \ + "SNS Procedures number of retries\n" \ /* Educated guess - LLC user payload is 1500 bytes plus possible headers */ #define NS_ALLOC_SIZE 3072 @@ -89,6 +90,7 @@ NS_TOUT_TSNS_PROV, NS_TOUT_TSNS_SIZE_RETRIES, NS_TOUT_TSNS_CONFIG_RETRIES, + NS_TOUT_TSNS_PROCEDURES_RETRIES, }; enum nsvc_timer_mode { @@ -336,6 +338,7 @@ NS2_SNS_EV_REQ_NSVC_ALIVE, /*!< a NS-VC became alive */ NS2_SNS_EV_REQ_ADD_BIND, /*!< add a new local bind to this NSE */ NS2_SNS_EV_REQ_DELETE_BIND, /*!< remove a local bind from this NSE */ + NS2_SNS_EV_REQ_CHANGE_WEIGHT, /*!< a bind changed its weight */ }; enum ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 43e4920..9e30f62 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -70,6 +70,7 @@ GPRS_SNS_ST_CONFIGURED, GPRS_SNS_ST_SGSN_WAIT_CONFIG, /* !< SGSN role: Wait for CONFIG from BSS */ GPRS_SNS_ST_SGSN_WAIT_CONFIG_ACK, /* !< SGSN role: Wait for CONFIG-ACK from BSS */ + GPRS_SNS_ST_LOCAL_PROCEDURE, /*!< in process of a ADD/DEL/CHANGE procedure towards SGSN (BSS->SGSN) */ }; static const struct value_string gprs_sns_event_names[] = { @@ -88,9 +89,17 @@ { NS2_SNS_EV_REQ_NSVC_ALIVE, "REQ_NSVC_ALIVE"}, { NS2_SNS_EV_REQ_ADD_BIND, "REQ_ADD_BIND"}, { NS2_SNS_EV_REQ_DELETE_BIND, "REQ_DELETE_BIND"}, + { NS2_SNS_EV_REQ_CHANGE_WEIGHT, "REQ_CHANGE_WEIGHT"}, { 0, NULL } }; +enum sns_procedure { + SNS_PROC_NONE, /*!< used as invalid/idle value */ + SNS_PROC_ADD, + SNS_PROC_DEL, + SNS_PROC_CHANGE_WEIGHT, +}; + struct sns_endpoint { struct llist_head list; struct osmo_sockaddr saddr; @@ -99,6 +108,21 @@ struct ns2_sns_bind { struct llist_head list; struct gprs_ns2_vc_bind *bind; + uint8_t change_weight_state; +}; + +struct ns2_sns_procedure { + struct llist_head list; + struct ns2_sns_bind *sbind; + uint16_t sig_weight; + uint16_t data_weight; + /* copy entry to protect against changes of gss->local */ + struct gprs_ns_ie_ip4_elem ip4; + struct gprs_ns_ie_ip6_elem ip6; + enum sns_procedure procedure; + uint8_t trans_id; + /* is the procedure in process */ + bool running; }; struct ns2_sns_elems { @@ -139,6 +163,9 @@ /* local configuration to send to the remote end */ struct ns2_sns_elems local; + /* local configuration after all local procedures applied */ + struct ns2_sns_elems local_procedure; + /* remote configuration as received */ struct ns2_sns_elems remote; @@ -147,6 +174,10 @@ size_t num_max_nsvcs; size_t num_max_ip4_remote; size_t num_max_ip6_remote; + + struct llist_head procedures; + struct ns2_sns_procedure *current_procedure; + uint8_t trans_id; }; static inline struct gprs_ns2_nse *nse_inst_from_fi(struct osmo_fsm_inst *fi) @@ -302,6 +333,16 @@ elems->num_ip6 = 0; } +static void ns2_clear_procedures(struct ns2_sns_state *gss) +{ + struct ns2_sns_procedure *procedure, *tmp; + gss->current_procedure = NULL; + llist_for_each_entry_safe(procedure, tmp, &gss->procedures, list) { + llist_del(&procedure->list); + talloc_free(procedure); + } +} + static void ns2_vc_create_ip(struct osmo_fsm_inst *fi, struct gprs_ns2_nse *nse, const struct osmo_sockaddr *remote, uint8_t sig_weight, uint8_t data_weight) { @@ -777,6 +818,36 @@ return count; } +static int ns2_sns_copy_local_endpoints(struct ns2_sns_state *gss) +{ + switch (gss->family) { + case AF_INET: + gss->local_procedure.ip4 = talloc_realloc(gss, gss->local_procedure.ip4, struct gprs_ns_ie_ip4_elem, + gss->local.num_ip4); + if (!gss->local_procedure.ip4) + return -ENOMEM; + + gss->local_procedure.num_ip4 = gss->local.num_ip4; + memcpy(gss->local_procedure.ip4, gss->local.ip4, + sizeof(struct gprs_ns_ie_ip4_elem) * gss->local.num_ip4); + break; + case AF_INET6: + gss->local_procedure.ip6 = talloc_realloc(gss, gss->local_procedure.ip6, struct gprs_ns_ie_ip6_elem, + gss->local.num_ip6); + if (!gss->local_procedure.ip6) + return -ENOMEM; + + gss->local_procedure.num_ip6 = gss->local.num_ip6; + memcpy(gss->local_procedure.ip6, gss->local.ip6, + sizeof(struct gprs_ns_ie_ip6_elem) * gss->local.num_ip6); + break; + default: + OSMO_ASSERT(0); + } + + return 0; +} + static void ns2_sns_compute_local_ep_from_binds(struct osmo_fsm_inst *fi) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; @@ -878,6 +949,8 @@ gss->num_max_nsvcs = OSMO_MAX(gss->num_max_ip6_remote * gss->local.num_ip6, 8); break; } + + ns2_sns_copy_local_endpoints(gss); } static void ns2_sns_choose_next_bind(struct ns2_sns_state *gss) @@ -902,6 +975,7 @@ if (old_state != GPRS_SNS_ST_BSS_SIZE) gss->N = 0; + ns2_clear_procedures(gss); gss->alive = false; ns2_sns_compute_local_ep_from_binds(fi); @@ -1367,7 +1441,135 @@ if (gss->sns_nsvc->sns_only) gprs_ns2_free_nsvc(gss->sns_nsvc); - ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); + if (old_state != GPRS_SNS_ST_LOCAL_PROCEDURE) + ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_CONFIGURED); + + if (!llist_empty(&gss->procedures)) { + osmo_fsm_inst_state_chg(gss->nse->bss_sns_fi, GPRS_SNS_ST_LOCAL_PROCEDURE, + gss->nse->nsi->timeout[NS_TOUT_TSNS_PROV], 5); + } +} + +static void ns2_sns_st_local_procedure_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; + + /* check if resend or not */ + if (!gss->current_procedure) { + /* take next procedure */ + gss->current_procedure = llist_first_entry_or_null(&gss->procedures, + struct ns2_sns_procedure, list); + if (!gss->current_procedure) { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIGURED, 0, 0); + return; + } + gss->N = 0; + gss->current_procedure->running = true; + gss->current_procedure->trans_id = ++gss->trans_id; + if (gss->trans_id == 0) + gss->trans_id = gss->current_procedure->trans_id = 1; + + } + + /* also takes care of retransmitting */ + switch (gss->current_procedure->procedure) { + case SNS_PROC_CHANGE_WEIGHT: + if (gss->family == AF_INET) + ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure->trans_id, &gss->current_procedure->ip4, 1, NULL, 0); + else + ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure->trans_id, NULL, 0, &gss->current_procedure->ip6, 1); + break; + default: + break; + } +} + +static void ns2_sns_st_local_procedure(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; + struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); + struct gprs_ns_ie_ip4_elem *ip4, *proc4; + struct gprs_ns_ie_ip6_elem *ip6, *proc6; + struct tlv_parsed *tp = data; + uint8_t trans_id; + uint8_t cause; + + switch (event) { + case NS2_SNS_EV_RX_ADD: + ns2_sns_st_configured_add(fi, gss, tp); + break; + case NS2_SNS_EV_RX_DELETE: + ns2_sns_st_configured_delete(fi, gss, tp); + break; + case NS2_SNS_EV_RX_CHANGE_WEIGHT: + ns2_sns_st_configured_change(fi, gss, tp); + break; + case NS2_SNS_EV_RX_ACK: + /* presence of trans_id is already checked here */ + trans_id = tlvp_val8(tp, NS_IE_TRANS_ID, 0); + if (trans_id != gss->current_procedure->trans_id) { + LOGPFSML(fi, LOGL_INFO, "NSEI=%u Rx SNS ACK with invalid transaction id %d. Valid %d\n", + nse->nsei, trans_id, gss->current_procedure->trans_id); + break; + } + + if (TLVP_PRESENT(tp, NS_IE_CAUSE)) { + /* what happend on error cause? return to size? */ + cause = tlvp_val8(tp, NS_IE_CAUSE, 0); + LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx SNS ACK trans %d with cause code %d.\n", + nse->nsei, trans_id, cause); + sns_failed(fi, NULL); + break; + } + + switch (gss->current_procedure->procedure) { + case SNS_PROC_CHANGE_WEIGHT: + switch (gss->family) { + case AF_INET: + proc4 = &gss->current_procedure->ip4; + for (unsigned int i=0; ilocal.num_ip4; i++) { + ip4 = &gss->local.ip4[i]; + if (ip4->ip_addr != proc4->ip_addr || + ip4->udp_port != proc4->udp_port) + continue; + ip4->sig_weight = proc4->sig_weight; + ip4->data_weight = proc4->data_weight; + break; + } + break; + case AF_INET6: + proc6 = &gss->current_procedure->ip6; + for (unsigned int i=0; ilocal.num_ip6; i++) { + ip6 = &gss->local.ip6[i]; + if (memcmp(&ip6->ip_addr, &proc6->ip_addr, sizeof(proc6->ip_addr)) || + ip6->udp_port != proc6->udp_port) { + continue; + } + ip6->sig_weight = proc6->sig_weight; + ip6->data_weight = proc6->data_weight; + break; + } + break; + default: + OSMO_ASSERT(0); + } + break; + default: + break; + } + + llist_del(&gss->current_procedure->list); + talloc_free(gss->current_procedure); + gss->current_procedure = NULL; + + if (llist_empty(&gss->procedures)) + osmo_fsm_inst_state_chg(gss->nse->bss_sns_fi, GPRS_SNS_ST_CONFIGURED, + 0, 0); + else + osmo_fsm_inst_state_chg(gss->nse->bss_sns_fi, GPRS_SNS_ST_LOCAL_PROCEDURE, + gss->nse->nsi->timeout[NS_TOUT_TSNS_PROV], 5); + break; + } } static const struct osmo_fsm_state ns2_sns_bss_states[] = { @@ -1414,11 +1616,27 @@ S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | S(NS2_SNS_EV_REQ_NSVC_ALIVE), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | - S(GPRS_SNS_ST_BSS_SIZE), + S(GPRS_SNS_ST_BSS_SIZE) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), .name = "CONFIGURED", .action = ns2_sns_st_configured, .onenter = ns2_sns_st_configured_onenter, }, + [GPRS_SNS_ST_LOCAL_PROCEDURE] = { + .in_event_mask = S(NS2_SNS_EV_RX_ADD) | + S(NS2_SNS_EV_RX_DELETE) | + S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | + S(NS2_SNS_EV_RX_ACK) | + S(NS2_SNS_EV_REQ_NSVC_ALIVE), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_BSS_SIZE) | + S(GPRS_SNS_ST_CONFIGURED) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), + .name = "LOCAL_PROCEDURE", + .action = ns2_sns_st_local_procedure, + .onenter = ns2_sns_st_local_procedure_onenter, + }, + }; static int ns2_sns_fsm_bss_timer_cb(struct osmo_fsm_inst *fi) @@ -1453,14 +1671,173 @@ case 4: sns_failed(fi, "Config succeeded but no NS-VC came online. Selecting next IP-SNS endpoint."); break; + case 5: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_CONFIG_RETRIES]) { + sns_failed(fi, "SNS Procedure retries failed."); + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_LOCAL_PROCEDURE, nsi->timeout[NS_TOUT_TSNS_PROV], 5); + } + break; } return 0; } +static struct gprs_ns_ie_ip4_elem *ns2_get_sbind_ip4_entry(struct ns2_sns_state *gss, + struct ns2_sns_bind *sbind, + struct ns2_sns_elems *endpoints) +{ + const struct osmo_sockaddr *addr; + struct gprs_ns_ie_ip4_elem *ip4; + + if (gss->family != AF_INET) + return NULL; + + addr = gprs_ns2_ip_bind_sockaddr(sbind->bind); + if (addr->u.sa.sa_family != AF_INET) + return NULL; + + for (unsigned int i=0; inum_ip4; i++) { + ip4 = &endpoints->ip4[i]; + if (ip4->ip_addr == addr->u.sin.sin_addr.s_addr && + ip4->udp_port == addr->u.sin.sin_port) + return ip4; + } + + return NULL; +} + +static struct gprs_ns_ie_ip6_elem *ns2_get_sbind_ip6_entry(struct ns2_sns_state *gss, + struct ns2_sns_bind *sbind, + struct ns2_sns_elems *endpoints) +{ + const struct osmo_sockaddr *addr; + struct gprs_ns_ie_ip6_elem *ip6; + + if (gss->family != AF_INET6) + return NULL; + + addr = gprs_ns2_ip_bind_sockaddr(sbind->bind); + if (addr->u.sa.sa_family != AF_INET6) + return NULL; + + for (unsigned int i=0; inum_ip6; i++) { + ip6 = &endpoints->ip6[i]; + if (memcmp(&ip6->ip_addr, &addr->u.sin6.sin6_addr, sizeof(ip6->ip_addr)) || + ip6->udp_port != addr->u.sin6.sin6_port) + return ip6; + } + + return NULL; +} + +/* return != 0 if the resulting weight is invalid. return 1 if sbind doesn't have an entry */ +static int ns2_update_weight_entry(struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, + struct ns2_sns_elems *endpoints) +{ + struct gprs_ns_ie_ip4_elem *ip4; + struct gprs_ns_ie_ip6_elem *ip6; + + switch (gss->family) { + case AF_INET: + ip4 = ns2_get_sbind_ip4_entry(gss, sbind, endpoints); + if (!ip4) + return 1; + ip4->sig_weight = sbind->bind->sns_sig_weight; + ip4->data_weight = sbind->bind->sns_data_weight; + return (ip4_weight_sum_sig(endpoints) != 0 && ip4_weight_sum_data(endpoints) != 0); + break; + case AF_INET6: + ip6 = ns2_get_sbind_ip6_entry(gss, sbind, endpoints); + if (!ip6) + return 1; + ip6->sig_weight = sbind->bind->sns_sig_weight; + ip6->data_weight = sbind->bind->sns_data_weight; + return (ip6_weight_sum_sig(endpoints) != 0 && ip6_weight_sum_data(endpoints) != 0); + break; + default: + OSMO_ASSERT(0); + } +} + +static void ns2_add_procedure(struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, + enum sns_procedure procedure_type) +{ + struct ns2_sns_procedure *procedure = NULL; + const struct osmo_sockaddr *saddr; + saddr = gprs_ns2_ip_bind_sockaddr(sbind->bind); + + if (saddr->u.sa.sa_family != gss->family) + return; + + switch (procedure_type) { + case SNS_PROC_CHANGE_WEIGHT: + llist_for_each_entry(procedure, &gss->procedures, list) { + if (procedure->sbind == sbind && procedure->procedure == procedure_type && + !procedure->running) { + switch(gss->family) { + case AF_INET: + /* merge it with a previous procedure */ + procedure->ip4.ip_addr = sbind->bind->sns_sig_weight; + procedure->ip4.data_weight = sbind->bind->sns_data_weight; + break; + case AF_INET6: + /* merge it with a previous procedure */ + procedure->ip6.sig_weight = sbind->bind->sns_sig_weight; + procedure->ip6.data_weight = sbind->bind->sns_data_weight; + break; + default: + OSMO_ASSERT(0); + } + return; + } + } + + procedure = talloc_zero(gss, struct ns2_sns_procedure); + if (!procedure) + return; + + procedure->sbind = sbind; + procedure->procedure = procedure_type; + procedure->sig_weight = sbind->bind->sns_sig_weight; + procedure->data_weight = sbind->bind->sns_data_weight; + + switch(gss->family) { + case AF_INET: + + procedure->ip4.ip_addr = saddr->u.sin.sin_addr.s_addr; + procedure->ip4.udp_port = saddr->u.sin.sin_port; + procedure->ip4.sig_weight = sbind->bind->sns_sig_weight; + procedure->ip4.data_weight = sbind->bind->sns_data_weight; + break; + case AF_INET6: + + memcpy(&procedure->ip6.ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)); + procedure->ip6.udp_port = saddr->u.sin.sin_port; + procedure->ip6.sig_weight = sbind->bind->sns_sig_weight; + procedure->ip6.data_weight = sbind->bind->sns_data_weight; + break; + default: + OSMO_ASSERT(0); + } + + llist_add_tail(&procedure->list, &gss->procedures); + break; + default: + return; + } + + if (gss->nse->bss_sns_fi->state == GPRS_SNS_ST_CONFIGURED) { + osmo_fsm_inst_state_chg(gss->nse->bss_sns_fi, GPRS_SNS_ST_LOCAL_PROCEDURE, + gss->nse->nsi->timeout[NS_TOUT_TSNS_PROV], 5); + } +} + + /* common allstate-action for both roles */ static void ns2_sns_st_all_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gprs_ns2_nse *nse = nse_inst_from_fi(fi); + struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct ns2_sns_bind *sbind; struct gprs_ns2_vc *nsvc, *nsvc2; @@ -1509,6 +1886,27 @@ /* if this is the last bind, the free_nsvc() will trigger a reselection */ talloc_free(sbind); break; + case NS2_SNS_EV_REQ_CHANGE_WEIGHT: + sbind = data; + switch (fi->state) { + case GPRS_SNS_ST_UNCONFIGURED: + /* select_endpoint will check if this is a valid configuration */ + if (gss->role == GPRS_SNS_ROLE_BSS) + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL); + break; + case GPRS_SNS_ST_BSS_SIZE: + /* invalid weight? */ + if (!ns2_update_weight_entry(gss, sbind, &gss->local)) + sns_failed(fi, "updating weights results in an invalid configuration."); + break; + default: + if (!ns2_update_weight_entry(gss, sbind, &gss->local_procedure)) { + sns_failed(fi, "updating weights results in an invalid configuration."); + break; + } + ns2_add_procedure(gss, sbind, SNS_PROC_CHANGE_WEIGHT); + break; + } } } @@ -1618,6 +2016,7 @@ S(NS2_SNS_EV_REQ_FREE_NSVCS) | S(NS2_SNS_EV_REQ_SELECT_ENDPOINT) | S(NS2_SNS_EV_REQ_ADD_BIND) | + S(NS2_SNS_EV_REQ_CHANGE_WEIGHT) | S(NS2_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_bss, .cleanup = NULL, @@ -1653,6 +2052,7 @@ gss->num_max_ip6_remote = 8192; INIT_LLIST_HEAD(&gss->sns_endpoints); INIT_LLIST_HEAD(&gss->binds); + INIT_LLIST_HEAD(&gss->procedures); return fi; err: @@ -1952,7 +2352,7 @@ return; gss = nse->bss_sns_fi->priv; - if(nse->bss_sns_fi->state != GPRS_SNS_ST_CONFIGURED) + if (nse->bss_sns_fi->state != GPRS_SNS_ST_CONFIGURED && nse->bss_sns_fi->state != GPRS_SNS_ST_LOCAL_PROCEDURE) return; if (alive == gss->alive) @@ -2052,7 +2452,26 @@ */ void ns2_sns_update_weights(struct gprs_ns2_vc_bind *bind) { - /* TODO: implement weights after binds per sns implemented */ + struct ns2_sns_bind *sbind; + struct gprs_ns2_nse *nse; + struct ns2_sns_state *gss; + const struct osmo_sockaddr *addr = gprs_ns2_ip_bind_sockaddr(bind); + + llist_for_each_entry(nse, &bind->nsi->nse, list) { + if (!nse->bss_sns_fi) + continue; + + gss = nse->bss_sns_fi->priv; + if (addr->u.sa.sa_family != gss->family) + return; + + llist_for_each_entry(sbind, &gss->binds, list) { + if (sbind->bind == bind) { + osmo_fsm_inst_dispatch(gss->nse->bss_sns_fi, NS2_SNS_EV_REQ_CHANGE_WEIGHT, sbind); + break; + } + } + } } @@ -2067,6 +2486,7 @@ { struct gprs_ns2_vc *nsvc, *nsvc2; + ns2_clear_procedures(gss); ns2_clear_elems(&gss->local); ns2_clear_elems(&gss->remote); llist_for_each_entry_safe(nsvc, nsvc2, &gss->nse->nsvc, list) { @@ -2207,12 +2627,28 @@ S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | S(NS2_SNS_EV_REQ_NSVC_ALIVE), .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | - S(GPRS_SNS_ST_SGSN_WAIT_CONFIG), + S(GPRS_SNS_ST_SGSN_WAIT_CONFIG) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), .name = "CONFIGURED", /* shared with BSS side; once configured there's no difference */ .action = ns2_sns_st_configured, .onenter = ns2_sns_st_configured_onenter, }, + [GPRS_SNS_ST_LOCAL_PROCEDURE] = { + .in_event_mask = S(NS2_SNS_EV_RX_ADD) | + S(NS2_SNS_EV_RX_DELETE) | + S(NS2_SNS_EV_RX_CHANGE_WEIGHT) | + S(NS2_SNS_EV_RX_ACK) | + S(NS2_SNS_EV_REQ_CHANGE_WEIGHT) | + S(NS2_SNS_EV_REQ_NSVC_ALIVE), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_CONFIGURED) | + S(GPRS_SNS_ST_LOCAL_PROCEDURE), + .name = "LOCAL_PROCEDURE", + /* shared with BSS side; once configured there's no difference */ + .action = ns2_sns_st_local_procedure, + .onenter = ns2_sns_st_local_procedure_onenter, + }, }; static int ns2_sns_fsm_sgsn_timer_cb(struct osmo_fsm_inst *fi) @@ -2234,11 +2670,19 @@ case 4: LOGPFSML(fi, LOGL_ERROR, "NSE %d: Config succeeded but no NS-VC came online.\n", nse->nsei); break; + case 5: + if (gss->N >= nsi->timeout[NS_TOUT_TSNS_PROCEDURES_RETRIES]) { + sns_failed(fi, "SNS Procedure retries failed."); + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_LOCAL_PROCEDURE, nsi->timeout[NS_TOUT_TSNS_PROV], + fi->T); + } + break; } + return 0; } - /* allstate-action for SGSN role */ static void ns2_sns_st_all_action_sgsn(struct osmo_fsm_inst *fi, uint32_t event, void *data) { @@ -2349,6 +2793,7 @@ S(NS2_SNS_EV_REQ_NO_NSVC) | S(NS2_SNS_EV_REQ_FREE_NSVCS) | S(NS2_SNS_EV_REQ_ADD_BIND) | + S(NS2_SNS_EV_REQ_CHANGE_WEIGHT) | S(NS2_SNS_EV_REQ_DELETE_BIND), .allstate_action = ns2_sns_st_all_action_sgsn, .cleanup = NULL, @@ -2380,6 +2825,7 @@ gss->role = GPRS_SNS_ROLE_SGSN; INIT_LLIST_HEAD(&gss->sns_endpoints); INIT_LLIST_HEAD(&gss->binds); + INIT_LLIST_HEAD(&gss->procedures); return fi; err: diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 0aa7902..52ce207 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -101,6 +101,7 @@ { 7, "tsns-prov" }, { 8, "tsns-size-retries" }, { 9, "tsns-config-retries" }, + {10, "tsns-procedures-retries" }, { 0, NULL } }; diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty index 45c8a16..62fff66 100644 --- a/tests/gb/gprs_ns2_vty.vty +++ b/tests/gb/gprs_ns2_vty.vty @@ -17,7 +17,7 @@ OsmoNSdummy(config)# ns OsmoNSdummy(config-ns)# list ... - timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries) <0-65535> + timer (tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov|tsns-size-retries|tsns-config-retries|tsns-procedures-retries) <0-65535> nse <0-65535> [ip-sns-role-sgsn] no nse <0-65535> bind (fr|udp) ID -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/23187 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Icec4dabb46bc198f68f91bfe09ba279fbe68d454 Gerrit-Change-Number: 23187 Gerrit-PatchSet: 17 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 20:56:26 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 20:56:26 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24123 ) Change subject: gprs_ns2_sns: implement outbound SNS ADD procedures ...................................................................... gprs_ns2_sns: implement outbound SNS ADD procedures When adding a bind, the remote side needs to be informed via the SNS ADD procedure. Related: OS#5036 Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 --- M src/gb/gprs_ns2_sns.c 1 file changed, 193 insertions(+), 36 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 9e30f62..0cb24c5 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -93,6 +93,8 @@ { 0, NULL } }; +#define GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER (void *) 1 + enum sns_procedure { SNS_PROC_NONE, /*!< used as invalid/idle value */ SNS_PROC_ADD, @@ -1473,6 +1475,12 @@ /* also takes care of retransmitting */ switch (gss->current_procedure->procedure) { + case SNS_PROC_ADD: + if (gss->family == AF_INET) + ns2_tx_sns_add(gss->sns_nsvc, gss->current_procedure->trans_id, &gss->current_procedure->ip4, 1, NULL, 0); + else + ns2_tx_sns_add(gss->sns_nsvc, gss->current_procedure->trans_id, NULL, 0, &gss->current_procedure->ip6, 1); + break; case SNS_PROC_CHANGE_WEIGHT: if (gss->family == AF_INET) ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure->trans_id, &gss->current_procedure->ip4, 1, NULL, 0); @@ -1484,6 +1492,65 @@ } } +static void create_nsvc_for_new_sbind(struct ns2_sns_state *gss, struct ns2_sns_bind *sbind) +{ + struct gprs_ns2_nse *nse = gss->nse; + struct gprs_ns2_vc_bind *bind = sbind->bind; + struct gprs_ns2_vc *nsvc; + struct osmo_sockaddr remote = { }; + unsigned int i; + + /* iterate over all remote IPv4 endpoints */ + for (i = 0; i < gss->remote.num_ip4; i++) { + const struct gprs_ns_ie_ip4_elem *ip4 = &gss->remote.ip4[i]; + + remote.u.sin.sin_family = AF_INET; + remote.u.sin.sin_addr.s_addr = ip4->ip_addr; + remote.u.sin.sin_port = ip4->udp_port; + /* we only care about UDP binds */ + if (bind->ll != GPRS_NS2_LL_UDP) + continue; + + nsvc = nsvc_for_bind_and_remote(nse, bind, &remote); + if (!nsvc) { + nsvc = gprs_ns2_ip_connect_inactive(bind, &remote, nse, 0); + if (!nsvc) { + /* TODO: add to a list to send back a NS-STATUS */ + continue; + } + } + + /* update data / signalling weight */ + nsvc->data_weight = ip4->data_weight; + nsvc->sig_weight = ip4->sig_weight; + nsvc->sns_only = false; + } + + /* iterate over all remote IPv4 endpoints */ + for (i = 0; i < gss->remote.num_ip6; i++) { + const struct gprs_ns_ie_ip6_elem *ip6 = &gss->remote.ip6[i]; + + remote.u.sin6.sin6_family = AF_INET6; + remote.u.sin6.sin6_addr = ip6->ip_addr; + remote.u.sin6.sin6_port = ip6->udp_port; + + /* we only care about UDP binds */ + nsvc = nsvc_for_bind_and_remote(nse, bind, &remote); + if (!nsvc) { + nsvc = gprs_ns2_ip_connect_inactive(bind, &remote, nse, 0); + if (!nsvc) { + /* TODO: add to a list to send back a NS-STATUS */ + continue; + } + } + + /* update data / signalling weight */ + nsvc->data_weight = ip6->data_weight; + nsvc->sig_weight = ip6->sig_weight; + nsvc->sns_only = false; + } +} + static void ns2_sns_st_local_procedure(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; @@ -1523,6 +1590,18 @@ } switch (gss->current_procedure->procedure) { + case SNS_PROC_ADD: + switch (gss->family) { + case AF_INET: + add_ip4_elem(gss, &gss->local, &gss->current_procedure->ip4); + break; + case AF_INET6: + add_ip6_elem(gss, &gss->local, &gss->current_procedure->ip6); + break; + } + create_nsvc_for_new_sbind(gss, gss->current_procedure->sbind); + gprs_ns2_start_alive_all_nsvcs(nse); + break; case SNS_PROC_CHANGE_WEIGHT: switch (gss->family) { case AF_INET: @@ -1758,7 +1837,6 @@ OSMO_ASSERT(0); } } - static void ns2_add_procedure(struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, enum sns_procedure procedure_type) { @@ -1766,10 +1844,11 @@ const struct osmo_sockaddr *saddr; saddr = gprs_ns2_ip_bind_sockaddr(sbind->bind); - if (saddr->u.sa.sa_family != gss->family) - return; + OSMO_ASSERT(saddr->u.sa.sa_family == gss->family); switch (procedure_type) { + case SNS_PROC_ADD: + break; case SNS_PROC_CHANGE_WEIGHT: llist_for_each_entry(procedure, &gss->procedures, list) { if (procedure->sbind == sbind && procedure->procedure == procedure_type && @@ -1791,47 +1870,76 @@ return; } } - - procedure = talloc_zero(gss, struct ns2_sns_procedure); - if (!procedure) - return; - - procedure->sbind = sbind; - procedure->procedure = procedure_type; - procedure->sig_weight = sbind->bind->sns_sig_weight; - procedure->data_weight = sbind->bind->sns_data_weight; - - switch(gss->family) { - case AF_INET: - - procedure->ip4.ip_addr = saddr->u.sin.sin_addr.s_addr; - procedure->ip4.udp_port = saddr->u.sin.sin_port; - procedure->ip4.sig_weight = sbind->bind->sns_sig_weight; - procedure->ip4.data_weight = sbind->bind->sns_data_weight; - break; - case AF_INET6: - - memcpy(&procedure->ip6.ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)); - procedure->ip6.udp_port = saddr->u.sin.sin_port; - procedure->ip6.sig_weight = sbind->bind->sns_sig_weight; - procedure->ip6.data_weight = sbind->bind->sns_data_weight; - break; - default: - OSMO_ASSERT(0); - } - - llist_add_tail(&procedure->list, &gss->procedures); break; default: return; } + procedure = talloc_zero(gss, struct ns2_sns_procedure); + if (!procedure) + return; + + llist_add_tail(&procedure->list, &gss->procedures); + procedure->sbind = sbind; + procedure->procedure = procedure_type; + procedure->sig_weight = sbind->bind->sns_sig_weight; + procedure->data_weight = sbind->bind->sns_data_weight; + + switch(gss->family) { + case AF_INET: + procedure->ip4.ip_addr = saddr->u.sin.sin_addr.s_addr; + procedure->ip4.udp_port = saddr->u.sin.sin_port; + procedure->ip4.sig_weight = sbind->bind->sns_sig_weight; + procedure->ip4.data_weight = sbind->bind->sns_data_weight; + break; + case AF_INET6: + + memcpy(&procedure->ip6.ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)); + procedure->ip6.udp_port = saddr->u.sin.sin_port; + procedure->ip6.sig_weight = sbind->bind->sns_sig_weight; + procedure->ip6.data_weight = sbind->bind->sns_data_weight; + break; + default: + OSMO_ASSERT(0); + } + if (gss->nse->bss_sns_fi->state == GPRS_SNS_ST_CONFIGURED) { osmo_fsm_inst_state_chg(gss->nse->bss_sns_fi, GPRS_SNS_ST_LOCAL_PROCEDURE, gss->nse->nsi->timeout[NS_TOUT_TSNS_PROV], 5); } } +/* add an entrypoint to sns_endpoints */ +static int ns2_sns_add_elements(struct ns2_sns_state *gss, struct ns2_sns_bind *sbind, + struct ns2_sns_elems *elems) +{ + const struct osmo_sockaddr *saddr; + struct gprs_ns_ie_ip4_elem ip4; + struct gprs_ns_ie_ip6_elem ip6; + int rc = -1; + + saddr = gprs_ns2_ip_bind_sockaddr(sbind->bind); + OSMO_ASSERT(saddr->u.sa.sa_family == gss->family); + + switch (gss->family) { + case AF_INET: + ip4.ip_addr = saddr->u.sin.sin_addr.s_addr; + ip4.udp_port= saddr->u.sin.sin_port; + ip4.sig_weight = sbind->bind->sns_sig_weight; + ip4.data_weight = sbind->bind->sns_data_weight; + rc = add_ip4_elem(gss, elems, &ip4); + break; + case AF_INET6: + memcpy(&ip6.ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)); + ip6.udp_port= saddr->u.sin.sin_port; + ip6.sig_weight = sbind->bind->sns_sig_weight; + ip6.data_weight = sbind->bind->sns_data_weight; + rc = add_ip6_elem(gss, elems, &ip6); + break; + } + + return rc; +} /* common allstate-action for both roles */ static void ns2_sns_st_all_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -1846,15 +1954,63 @@ sbind = data; switch (fi->state) { case GPRS_SNS_ST_UNCONFIGURED: - osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL); + if (gss->role == GPRS_SNS_ROLE_BSS) + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL); break; case GPRS_SNS_ST_BSS_SIZE: - /* TODO: add the ip4 element to the list */ + switch (gss->family) { + case AF_INET: + if (gss->num_max_ip4_remote <= gss->local.num_ip4 || + gss->num_max_ip4_remote * (gss->local.num_ip4 + 1) > gss->num_max_nsvcs) { + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER); + return; + } + break; + case AF_INET6: + if (gss->num_max_ip6_remote <= gss->local.num_ip6 || + gss->num_max_ip6_remote * (gss->local.num_ip6 + 1) > gss->num_max_nsvcs) { + osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER); + return; + } + break; + } + ns2_sns_add_elements(gss, sbind, &gss->local); break; case GPRS_SNS_ST_BSS_CONFIG_BSS: case GPRS_SNS_ST_BSS_CONFIG_SGSN: case GPRS_SNS_ST_CONFIGURED: - /* TODO: add to SNS-IP procedure queue & add nsvc() */ + switch (gss->family) { + case AF_INET: + if (gss->num_max_ip4_remote <= gss->local.num_ip4) { + LOGPFSML(fi, LOGL_ERROR, + "NSE %d: ignoring bind %s because there are too many endpoints for the SNS.\n", + nse->nsei, sbind->bind->name); + return; + } + if (gss->remote.num_ip4 * (gss->local.num_ip4 + 1) > gss->num_max_nsvcs) { + LOGPFSML(fi, LOGL_ERROR, + "NSE %d: ignoring bind %s because there are too many endpoints for the SNS.\n", + nse->nsei, sbind->bind->name); + return; + } + break; + case AF_INET6: + if (gss->num_max_ip6_remote <= gss->local.num_ip6) { + LOGPFSML(fi, LOGL_ERROR, + "NSE %d: ignoring bind %s because there are too many endpoints for the SNS.\n", + nse->nsei, sbind->bind->name); + return; + } + if (gss->remote.num_ip6 * (gss->local.num_ip6 + 1) > gss->num_max_nsvcs) { + LOGPFSML(fi, LOGL_ERROR, + "NSE %d: ignoring bind %s because there are too many endpoints for the SNS.\n", + nse->nsei, sbind->bind->name); + return; + } + break; + } + ns2_sns_add_elements(gss, sbind, &gss->local_procedure); + ns2_add_procedure(gss, sbind, SNS_PROC_ADD); break; } break; @@ -1975,6 +2131,7 @@ break; case NS2_SNS_EV_REQ_FREE_NSVCS: case NS2_SNS_EV_REQ_SELECT_ENDPOINT: + /* TODO: keep the order of binds when data == GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER */ /* tear down previous state * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ gss->reselection_running = true; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24123 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I71c33200bd1f0307ceb943ee958db5ebe3623d36 Gerrit-Change-Number: 24123 Gerrit-PatchSet: 14 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 20:56:50 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 5 Sep 2021 20:56:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24591 ) Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... Patch Set 12: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 05 Sep 2021 20:56: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 Sep 5 20:57:46 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 5 Sep 2021 20:57:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: also prevent recursive events when SGSN side cleans up In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25343 ) Change subject: gprs_ns2: also prevent recursive events when SGSN side cleans up ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0f57dd0577d1fc7bd270f58e15f6f22eb130ef59 Gerrit-Change-Number: 25343 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 05 Sep 2021 20:57: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 Sep 5 20:58:46 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Sun, 5 Sep 2021 20:58:46 +0000 Subject: Change in libosmocore[master]: gprs_ns2: calculate the nse->*_sums before notifing the sns fsm In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25148 ) Change subject: gprs_ns2: calculate the nse->*_sums before notifing the sns fsm ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25148 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b115921780bd1ae895d8b9d0d4aec3e1cbaaf58 Gerrit-Change-Number: 25148 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sun, 05 Sep 2021 20:58:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:00:30 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:00:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/24591 ) Change subject: gprs_ns2_sns: implement outbound SNS DEL procedures ...................................................................... gprs_ns2_sns: implement outbound SNS DEL procedures When removing a bind the remote side needs to be informed via the SNS DELETE procedure. Related: OS#5036 Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 --- M src/gb/gprs_ns2_sns.c 1 file changed, 95 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 0cb24c5..3eff0f3 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -150,6 +150,9 @@ /* prevent recursive reselection */ bool reselection_running; + /* protection against recursive free() */ + bool block_no_nsvc_events; + /* The current initial SNS endpoints. * The initial connection will be moved into the NSE * if configured via SNS. Otherwise it will be removed @@ -323,7 +326,8 @@ } } - osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_NO_NSVC, NULL); + if (gss->block_no_nsvc_events) + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_NO_NSVC, NULL); } static void ns2_clear_elems(struct ns2_sns_elems *elems) @@ -595,6 +599,32 @@ return -1; } +static int remove_bind_elem(struct ns2_sns_state *gss, struct ns2_sns_elems *elems, struct ns2_sns_bind *sbind) +{ + struct gprs_ns_ie_ip4_elem ip4; + struct gprs_ns_ie_ip6_elem ip6; + const struct osmo_sockaddr *saddr = gprs_ns2_ip_bind_sockaddr(sbind->bind); + + switch (saddr->u.sa.sa_family) { + case AF_INET: + ip4.ip_addr = saddr->u.sin.sin_addr.s_addr; + ip4.udp_port = saddr->u.sin.sin_port; + ip4.sig_weight = sbind->bind->sns_sig_weight; + ip4.data_weight = sbind->bind->sns_data_weight; + return remove_ip4_elem(gss, elems, &ip4); + case AF_INET6: + memcpy(&ip6.ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)); + ip6.udp_port = saddr->u.sin.sin_port; + ip6.sig_weight = sbind->bind->sns_sig_weight; + ip6.data_weight = sbind->bind->sns_data_weight; + return remove_ip6_elem(gss, elems, &ip6); + default: + return -1; + } + + return -1; +} + static int do_sns_change_weight(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4, const struct gprs_ns_ie_ip6_elem *ip6) { struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; @@ -1487,6 +1517,12 @@ else ns2_tx_sns_change_weight(gss->sns_nsvc, gss->current_procedure->trans_id, NULL, 0, &gss->current_procedure->ip6, 1); break; + case SNS_PROC_DEL: + if (gss->family == AF_INET) + ns2_tx_sns_del(gss->sns_nsvc, gss->current_procedure->trans_id, &gss->current_procedure->ip4, 1, NULL, 0); + else + ns2_tx_sns_del(gss->sns_nsvc, gss->current_procedure->trans_id, NULL, 0, &gss->current_procedure->ip6, 1); + break; default: break; } @@ -1599,8 +1635,11 @@ add_ip6_elem(gss, &gss->local, &gss->current_procedure->ip6); break; } - create_nsvc_for_new_sbind(gss, gss->current_procedure->sbind); - gprs_ns2_start_alive_all_nsvcs(nse); + /* the sbind can be NULL if the bind has been released by del_bind */ + if (gss->current_procedure->sbind) { + create_nsvc_for_new_sbind(gss, gss->current_procedure->sbind); + gprs_ns2_start_alive_all_nsvcs(nse); + } break; case SNS_PROC_CHANGE_WEIGHT: switch (gss->family) { @@ -1633,6 +1672,16 @@ OSMO_ASSERT(0); } break; + case SNS_PROC_DEL: + switch (gss->family) { + case AF_INET: + remove_ip4_elem(gss, &gss->local, &gss->current_procedure->ip4); + break; + case AF_INET6: + remove_ip6_elem(gss, &gss->local, &gss->current_procedure->ip6); + break; + } + break; default: break; } @@ -1849,6 +1898,8 @@ switch (procedure_type) { case SNS_PROC_ADD: break; + case SNS_PROC_DEL: + break; case SNS_PROC_CHANGE_WEIGHT: llist_for_each_entry(procedure, &gss->procedures, list) { if (procedure->sbind == sbind && procedure->procedure == procedure_type && @@ -1879,8 +1930,16 @@ if (!procedure) return; + switch (procedure_type) { + case SNS_PROC_ADD: + case SNS_PROC_CHANGE_WEIGHT: + procedure->sbind = sbind; + break; + default: + break; + } + llist_add_tail(&procedure->list, &gss->procedures); - procedure->sbind = sbind; procedure->procedure = procedure_type; procedure->sig_weight = sbind->bind->sns_sig_weight; procedure->data_weight = sbind->bind->sns_data_weight; @@ -1893,7 +1952,6 @@ procedure->ip4.data_weight = sbind->bind->sns_data_weight; break; case AF_INET6: - memcpy(&procedure->ip6.ip_addr, &saddr->u.sin6.sin6_addr, sizeof(struct in6_addr)); procedure->ip6.udp_port = saddr->u.sin.sin_port; procedure->ip6.sig_weight = sbind->bind->sns_sig_weight; @@ -1948,6 +2006,7 @@ struct ns2_sns_state *gss = (struct ns2_sns_state *) fi->priv; struct ns2_sns_bind *sbind; struct gprs_ns2_vc *nsvc, *nsvc2; + struct ns2_sns_procedure *procedure; switch (event) { case NS2_SNS_EV_REQ_ADD_BIND: @@ -2020,25 +2079,46 @@ case GPRS_SNS_ST_UNCONFIGURED: break; case GPRS_SNS_ST_BSS_SIZE: - /* TODO: remove the ip4 element from the list */ llist_for_each_entry_safe(nsvc, nsvc2, &nse->nsvc, list) { if (nsvc->bind == sbind->bind) { gprs_ns2_free_nsvc(nsvc); } } + osmo_fsm_inst_dispatch(fi, NS2_SNS_EV_REQ_SELECT_ENDPOINT, NULL); break; case GPRS_SNS_ST_BSS_CONFIG_BSS: case GPRS_SNS_ST_BSS_CONFIG_SGSN: case GPRS_SNS_ST_CONFIGURED: - /* TODO: do an delete SNS-IP procedure */ - /* TODO: remove the ip4 element to the list */ + case GPRS_SNS_ST_LOCAL_PROCEDURE: + remove_bind_elem(gss, &gss->local_procedure, sbind); + if (ip46_weight_sum(&gss->local_procedure, true) == 0 || + ip46_weight_sum(&gss->local_procedure, false) == 0) { + LOGPFSML(fi, LOGL_ERROR, "NSE %d: weight has become invalid because of removing bind %s. Resetting the configuration\n", + nse->nsei, sbind->bind->name); + sns_failed(fi, NULL); + break; + } + gss->block_no_nsvc_events = true; llist_for_each_entry_safe(nsvc, nsvc2, &nse->nsvc, list) { if (nsvc->bind == sbind->bind) { gprs_ns2_free_nsvc(nsvc); } } + gss->block_no_nsvc_events = false; + if (nse->sum_sig_weight == 0 || !nse->alive || !gss->alive) { + sns_failed(fi, "While deleting a bind the current state became invalid (no signalling weight)"); + break; + } + + /* ensure other procedures doesn't use the sbind */ + llist_for_each_entry(procedure, &gss->procedures, list) { + if (procedure->sbind == sbind) + procedure->sbind = NULL; + } + ns2_add_procedure(gss, sbind, SNS_PROC_DEL); break; } + /* if this is the last bind, the free_nsvc() will trigger a reselection */ talloc_free(sbind); break; @@ -2124,7 +2204,7 @@ switch (event) { case NS2_SNS_EV_REQ_NO_NSVC: /* ignore reselection running */ - if (gss->reselection_running) + if (gss->reselection_running || gss->block_no_nsvc_events) break; sns_failed(fi, "no remaining NSVC, resetting SNS FSM"); @@ -2134,6 +2214,9 @@ /* TODO: keep the order of binds when data == GPRS_SNS_FLAG_KEEP_SELECT_ENDPOINT_ORDER */ /* tear down previous state * gprs_ns2_free_nsvcs() will trigger NO_NSVC, prevent this from triggering a reselection */ + if (gss->reselection_running || gss->block_no_nsvc_events) + break; + gss->reselection_running = true; ns2_free_nsvcs(nse); ns2_clear_elems(&gss->local); @@ -2512,6 +2595,9 @@ if (nse->bss_sns_fi->state != GPRS_SNS_ST_CONFIGURED && nse->bss_sns_fi->state != GPRS_SNS_ST_LOCAL_PROCEDURE) return; + if (gss->block_no_nsvc_events) + return; + if (alive == gss->alive) return; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/24591 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I53cd54dfd262c70c425c3f13dad3b29526daa523 Gerrit-Change-Number: 24591 Gerrit-PatchSet: 12 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:00:32 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:00:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: also prevent recursive events when SGSN side cleans up In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25343 ) Change subject: gprs_ns2: also prevent recursive events when SGSN side cleans up ...................................................................... gprs_ns2: also prevent recursive events when SGSN side cleans up When cleaning up the SGSN side (e.g. receiving a SNS SIZE PDU) the clean up will result in a use-after-free bug when the SGSN side is still alive. Change-Id: I0f57dd0577d1fc7bd270f58e15f6f22eb130ef59 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 3eff0f3..281f908 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -2732,6 +2732,7 @@ ns2_clear_procedures(gss); ns2_clear_elems(&gss->local); ns2_clear_elems(&gss->remote); + gss->block_no_nsvc_events = true; llist_for_each_entry_safe(nsvc, nsvc2, &gss->nse->nsvc, list) { /* Ignore the NSVC over which the SIZE PDU got received */ if (size_nsvc && size_nsvc == nsvc) @@ -2739,6 +2740,7 @@ gprs_ns2_free_nsvc(nsvc); } + gss->block_no_nsvc_events = false; } static void ns2_sns_st_sgsn_unconfigured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25343 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0f57dd0577d1fc7bd270f58e15f6f22eb130ef59 Gerrit-Change-Number: 25343 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:00:32 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:00:32 +0000 Subject: Change in libosmocore[master]: gprs_ns2: calculate the nse->*_sums before notifing the sns fsm In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25148 ) Change subject: gprs_ns2: calculate the nse->*_sums before notifing the sns fsm ...................................................................... gprs_ns2: calculate the nse->*_sums before notifing the sns fsm The sns fsm needs these information to determine if there is a signalling nsvc left Change-Id: I7b115921780bd1ae895d8b9d0d4aec3e1cbaaf58 --- M src/gb/gprs_ns2.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index adf3b32..6c48ca6 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1391,8 +1391,8 @@ { struct gprs_ns2_nse *nse = nsvc->nse; - ns2_sns_notify_alive(nse, nsvc, unblocked); ns2_nse_data_sum(nse); + ns2_sns_notify_alive(nse, nsvc, unblocked); if (unblocked == nse->alive) return; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25148 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I7b115921780bd1ae895d8b9d0d4aec3e1cbaaf58 Gerrit-Change-Number: 25148 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:00:33 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:00:33 +0000 Subject: Change in libosmocore[master]: gprs_ns2: add correct filename/linenr to sns failed log message In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25149 ) Change subject: gprs_ns2: add correct filename/linenr to sns failed log message ...................................................................... gprs_ns2: add correct filename/linenr to sns failed log message Change-Id: I117eaf8340fca50cb14392a3f05ea8feac1af3ed --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 281f908..7a3729b 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -199,7 +199,7 @@ struct ns2_sns_state *gss = fi->priv; if (reason) - LOGPFSML(fi, LOGL_ERROR, "NSE %d: SNS failed: %s\n", gss->nse->nsei, reason); + LOGPFSMLSRC(fi, LOGL_ERROR, file, line, "NSE %d: SNS failed: %s\n", gss->nse->nsei, reason); if (gss->role == GPRS_SNS_ROLE_SGSN) { if (!gss->nse->persistent) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25149 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117eaf8340fca50cb14392a3f05ea8feac1af3ed Gerrit-Change-Number: 25149 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:24:31 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... vty: add vty_out_uptime() print the uptime to the vty vty_out_uptime() calculates the time difference to a given timespec and print it in a human readable format (days, hours, minutes, seconds) to the vty. Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/25348/1 diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index 3e6178f..a39780b 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -219,6 +220,7 @@ int vty_out (struct vty *, const char *, ...) VTY_PRINTF_ATTRIBUTE(2, 3); int vty_out_va(struct vty *vty, const char *format, va_list ap); int vty_out_newline(struct vty *); +int vty_out_uptime(struct vty *vty, const struct timespec *starttime); int vty_read(struct vty *vty); //void vty_time_print (struct vty *, int); void vty_close (struct vty *); diff --git a/src/vty/vty.c b/src/vty/vty.c index a39f268..4cb0847 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -66,6 +66,7 @@ #include #include #include +#include #include #ifndef MAXPATHLEN @@ -332,6 +333,25 @@ return 0; } +/*! calculates the time difference of a give timespec to the current time + * and prints in a human readable format (days, hours, minutes, seconds). + */ +int vty_out_uptime(struct vty *vty, const struct timespec *starttime) +{ + struct timespec now; + struct timespec uptime; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + timespecsub(&now, starttime, &uptime); + + int d = uptime.tv_sec / (3600 * 24); + int h = uptime.tv_sec / 3600 % 24; + int m = uptime.tv_sec / 60 % 60; + int s = uptime.tv_sec % 60; + + return vty_out(vty, "%dd %dh %dm %ds", d, h, m, s); +} + /*! return the current index of a given VTY */ void *vty_current_index(struct vty *vty) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:24:31 +0000 Subject: Change in libosmocore[master]: ns2: nse: add a uptime/downtime to track the last state change References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25349 ) Change subject: ns2: nse: add a uptime/downtime to track the last state change ...................................................................... ns2: nse: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nse add a timestamp and show it on the vty > show ns nse 1234 NSEI 01234: UDP, ALIVE since 0d 0h 0m 16s FSM Instance Name: 'GPRS-NS2-SNS-SGSN(NSE01234-SNS)[0x6120000012a0]', ID: 'NSE01234-SNS' Log-Level: 'DEBUG', State: 'CONFIGURED' Timer: 4 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 2, IPv6 Endpoints: 0 [...] Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vty.c 3 files changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/25349/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 6c48ca6..c00537d 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -838,6 +838,7 @@ nse->mtu = 0; llist_add_tail(&nse->list, &nsi->nse); INIT_LLIST_HEAD(&nse->nsvc); + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); return nse; } @@ -1400,6 +1401,7 @@ /* wait until both data_weight and sig_weight are != 0 before declaring NSE as alive */ if (unblocked && nse->sum_data_weight && nse->sum_sig_weight) { nse->alive = true; + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_RECOVERY); nse->first = false; return; @@ -1408,6 +1410,7 @@ if (nse->alive && (nse->sum_data_weight == 0 || nse->sum_sig_weight == 0)) { /* nse became unavailable */ nse->alive = false; + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index afe6b69..cd9969c 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -220,6 +220,9 @@ /*! recursive anchor */ bool freed; + + /*! when the NSE became alive or dead */ + struct timespec ts_alive_change; }; /*! Structure representing a single NS-VC */ diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 52ce207..86471b8 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1900,8 +1900,10 @@ if (persistent_only && !nse->persistent) return; - vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), - nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); + vty_out(vty, "NSEI %05u: %s, %s since ", nse->nsei, gprs_ns2_lltype_str(nse->ll), + nse->alive ? "ALIVE" : "DEAD"); + vty_out_uptime(vty, &nse->ts_alive_change); + vty_out_newline(vty); ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 Gerrit-Change-Number: 25349 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:24:31 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25350 ) Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... ns2: nsvc: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nsvc add a timestamp and show it on the vty > show ns nsei 1234 NSEI 01234: UDP, DEAD since 0d 0h 1m 42s [...] 4 NS-VC: UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22000<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22000<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22001<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22001<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c 4 files changed, 16 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/25350/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index c00537d..13bc890 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -621,6 +621,7 @@ llist_add_tail(&nsvc->list, &nse->nsvc); llist_add_tail(&nsvc->blist, &bind->nsvc); + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); ns2_nse_update_mtu(nse); return nsvc; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index cd9969c..bfb12d9 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -270,6 +270,9 @@ /*! recursive anchor */ bool freed; + + /*! when the NSVC became alive or dead */ + struct timespec ts_alive_change; }; /*! Structure repesenting a bind instance. E.g. IPv4 listen port. */ diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 1fcc3ad..c8c9ae9 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -414,8 +414,10 @@ struct gprs_ns2_vc *nsvc = priv->nsvc; struct gprs_ns2_nse *nse = nsvc->nse; - if (old_state != GPRS_NS2_ST_UNBLOCKED) + if (old_state != GPRS_NS2_ST_UNBLOCKED) { RATE_CTR_INC_NS(nsvc, NS_CTR_UNBLOCKED); + osmo_clock_gettime(CLOCK_MONOTONIC, &nsvc->ts_alive_change); + } priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 86471b8..41f581e 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1875,16 +1875,21 @@ void ns2_vty_dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { if (nsvc->nsvci_is_valid) - vty_out(vty, " NSVCI %05u: %s %s %s%s", nsvc->nsvci, + vty_out(vty, " NSVCI %05u: %s %s %s %s since ", nsvc->nsvci, osmo_fsm_inst_state_name(nsvc->fi), nsvc->persistent ? "PERSIST" : "DYNAMIC", - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + gprs_ns2_ll_str(nsvc), + ns2_vc_is_unblocked(nsvc) ? "ALIVE" : "DEAD"); else - vty_out(vty, " %s %s sig_weight=%u data_weight=%u %s%s", + vty_out(vty, " %s %s sig_weight=%u data_weight=%u %s %s since ", osmo_fsm_inst_state_name(nsvc->fi), nsvc->persistent ? "PERSIST" : "DYNAMIC", nsvc->sig_weight, nsvc->data_weight, - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + gprs_ns2_ll_str(nsvc), + ns2_vc_is_unblocked(nsvc) ? "ALIVE" : "DEAD"); + + vty_out_uptime(vty, &nsvc->ts_alive_change); + vty_out_newline(vty); if (stats) { vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:25:35 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... vty: add vty_out_uptime() print the uptime to the vty vty_out_uptime() calculates the time difference to a given timespec and print it in a human readable format (days, hours, minutes, seconds) to the vty. Related: OS#5028 Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/25348/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:25:35 +0000 Subject: Change in libosmocore[master]: ns2: nse: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/25349 ) Change subject: ns2: nse: add a uptime/downtime to track the last state change ...................................................................... ns2: nse: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nse add a timestamp and show it on the vty > show ns nse 1234 NSEI 01234: UDP, ALIVE since 0d 0h 0m 16s FSM Instance Name: 'GPRS-NS2-SNS-SGSN(NSE01234-SNS)[0x6120000012a0]', ID: 'NSE01234-SNS' Log-Level: 'DEBUG', State: 'CONFIGURED' Timer: 4 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 2, IPv6 Endpoints: 0 [...] Related: OS#5028 Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vty.c 3 files changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/25349/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 Gerrit-Change-Number: 25349 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:25:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:25:35 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/25350 ) Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... ns2: nsvc: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nsvc add a timestamp and show it on the vty > show ns nsei 1234 NSEI 01234: UDP, DEAD since 0d 0h 1m 42s [...] 4 NS-VC: UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22000<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22000<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22001<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22001<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s Related: OS#5028 Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c 4 files changed, 16 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/25350/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:49:09 +0000 Subject: Change in libosmocore[master]: ns2: nse: add a uptime/downtime to track the last state change 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/+/25349 to look at the new patch set (#3). Change subject: ns2: nse: add a uptime/downtime to track the last state change ...................................................................... ns2: nse: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nse add a timestamp and show it on the vty > show ns nse 1234 NSEI 01234: UDP, ALIVE since 0d 0h 0m 16s FSM Instance Name: 'GPRS-NS2-SNS-SGSN(NSE01234-SNS)[0x6120000012a0]', ID: 'NSE01234-SNS' Log-Level: 'DEBUG', State: 'CONFIGURED' Timer: 4 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 2, IPv6 Endpoints: 0 [...] Related: OS#5028 Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 4 files changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/25349/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 Gerrit-Change-Number: 25349 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 21:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 21:49:09 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change 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/+/25350 to look at the new patch set (#3). Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... ns2: nsvc: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nsvc add a timestamp and show it on the vty > show ns nsei 1234 NSEI 01234: UDP, DEAD since 0d 0h 1m 42s [...] 4 NS-VC: UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22000<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22000<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22001<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22001<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s Related: OS#5028 Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 24 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/25350/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 22:42:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 22:42:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct wh... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 to look at the new patch set (#2). Change subject: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind This TC produces an abort of the ns2 dummy by the memory sanitizer. Test if SNS fails when removing a bind which has the last valid connection. The ns2 has 2 binds, ttcn3 1 bind. There are 2 NSVCs. Bind -- NSVCs -- Bind. (ns2) (ttcn3) 1*-----------*1 / 2*-broken--/ Remove the 1st ns2 bind after the other NSVC has failed. Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b --- M ns/NS_Tests.ttcn 1 file changed, 39 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/25341/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 22:42:58 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 22:42:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: f_init_vty: only reset SNS configuration when using SNS. In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 to look at the new patch set (#2). Change subject: ns: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... ns: f_init_vty: only reset SNS configuration when using SNS. Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 --- M ns/NS_Tests.ttcn 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/25342/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 22:43:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 22:43:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmi... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 ) Change subject: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port ...................................................................... ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c --- M ns/NS_Tests.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/51/25351/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index a19477d..8553684 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -752,6 +752,20 @@ f_clean_ns_codec(); } +/* Ensure a SNS SIZE ACK is transmitted from the correct port */ +testcase TC_sns_sgsn_size_correct_port() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 10); + f_outgoing_sns_config(); + f_incoming_sns_config(); + NSCP[0].receive(t_NS_ALIVE); + f_outgoing_sns_size(max_nsvcs := 10, idx := 1); + setverdict(pass); + f_clean_ns_codec(); +} + testcase TC_sns_sgsn_add() runs on RAW_Test_CT { g_handle_rx_alive := true; f_init_vty(); @@ -900,6 +914,7 @@ execute( TC_sns_sgsn_add() ); execute( TC_sns_sgsn_del() ); execute( TC_sns_sgsn_add_change_del() ); + execute( TC_sns_sgsn_size_correct_port() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c Gerrit-Change-Number: 25351 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 22:43:00 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 22:43:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add tests to test UNITDATA over a BLOCKED nsvcs References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 ) Change subject: ns: add tests to test UNITDATA over a BLOCKED nsvcs ...................................................................... ns: add tests to test UNITDATA over a BLOCKED nsvcs The UNITDATA should be rejected by a NS STATUS PDU. Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 --- M ns/NS_Tests.ttcn 1 file changed, 55 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/52/25352/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 8553684..105d397 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -162,6 +162,52 @@ f_sleep(1.0); } +/* 48.016 7.2.1 transmit a UNIT DATA over a BLOCKED NSVC when ttcn3 blocked it + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: block + * TTCN <- NS: block ack + * TTCN -> NS: unitdata + * TTCN <- NS: status (cause blocked) + */ +testcase TC_tx_block_unitdata_over_blocked() runs on RAW_Test_CT { + f_tx_block(); + f_sleep(1.0); + + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED)); + + setverdict(pass); + f_sleep(1.0); + f_clean_ns_codec(); +} + +/* 48.016 7.2.1 transmit a UNIT DATA over a BLOCKED NSVC when ns2 blocked it + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN <- NS: block + * TTCN -> NS: block ack + * TTCN -> NS: unitdata + * TTCN <- NS: status (cause blocked) + */ +testcase TC_rx_block_unitdata_over_blocked() runs on RAW_Test_CT { + tx_block_by_vty(); + f_sleep(1.0); + + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED)); + + setverdict(pass); + f_sleep(1.0); + f_clean_ns_codec(); +} + /* 48.016 7.2 unblock procedure * * TTCN -> NS: reset @@ -219,9 +265,9 @@ * TTCN -> NS: block * TTCN <- NS: block ack */ -testcase TC_tx_block() runs on RAW_Test_CT { +function f_tx_block(float guard_secs := 30.0) runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + f_init_ns_codec(mp_nsconfig, guard_secs := guard_secs); /* do a NS Reset procedure */ f_outgoing_ns_reset(); @@ -235,6 +281,11 @@ f_sleep(1.0); } +testcase TC_tx_block() runs on RAW_Test_CT { + f_tx_block() + f_clean_ns_codec(); +} + /* 48.016 7.2 block procedure by vty * * TTCN -> NS: reset @@ -860,6 +911,8 @@ execute( TC_tx_block() ); execute( TC_tx_block_by_vty() ); execute( TC_tx_block_by_vty_reset() ); + execute( TC_tx_block_unitdata_over_blocked() ); + execute( TC_rx_block_unitdata_over_blocked() ); // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci /* 48.016 7.2 Unblock procedure */ execute( TC_tx_unblock() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 Gerrit-Change-Number: 25352 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 22:43:01 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 22:43:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: always clean up the ns_codec References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 ) Change subject: ns: always clean up the ns_codec ...................................................................... ns: always clean up the ns_codec The f_clean_ns_codec() was introduced later to clean up the ns_codec properly. Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 --- M ns/NS_Tests.ttcn 1 file changed, 19 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/25353/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 105d397..8b321ff 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -131,6 +131,7 @@ setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } testcase TC_tx_reset_tx_alive() runs on RAW_Test_CT { @@ -145,6 +146,7 @@ setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } testcase TC_tx_reset_rx_alive() runs on RAW_Test_CT { @@ -160,6 +162,7 @@ setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2.1 transmit a UNIT DATA over a BLOCKED NSVC when ttcn3 blocked it @@ -227,6 +230,7 @@ f_outgoing_ns_unblock(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2 tx unblock retries @@ -254,6 +258,7 @@ f_outgoing_ns_unblock(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2 block procedure @@ -318,6 +323,7 @@ testcase TC_tx_block_by_vty() runs on RAW_Test_CT { tx_block_by_vty(30.0); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2 block precedure by vty and reset the NSVC. @@ -336,6 +342,7 @@ [] T.timeout { setverdict(pass); } } deactivate(d); + f_clean_ns_codec(); } /* 48.016 7.4.1 ignore unexpected NS_ALIVE ACK */ @@ -347,6 +354,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET with wrong nsei */ @@ -359,6 +367,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET with wrong nsvci */ @@ -371,6 +380,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET with wrong nsvci + nsei */ @@ -383,6 +393,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET_ACK with wrong nsei */ @@ -395,6 +406,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET_ACK with wrong nsvci */ @@ -407,6 +419,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET_ACK with wrong nsvci + nsei */ @@ -419,6 +432,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 ignore unexpected NS_RESET_ACK after NS_RESET+ALIVE */ @@ -439,6 +453,7 @@ f_ensure_no_ns(answer_alive := true, tout := 15.0); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3 NS_RESET retries */ @@ -460,6 +475,7 @@ } f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 behave RESET_ACK got dropped @@ -493,6 +509,7 @@ } f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.4 test procedure for frame relay with a single nsvci */ @@ -526,10 +543,12 @@ testcase TC_alive_retries_single_reset() runs on RAW_Test_CT { f_alive_retries_single(reset := true); + f_clean_ns_codec(); } testcase TC_alive_retries_single_no_resp() runs on RAW_Test_CT { f_alive_retries_single(reset := false); + f_clean_ns_codec(); } /* 48.016 SNS test cases */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 Gerrit-Change-Number: 25353 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 22:43:01 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 22:43:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: fix missing f_ prefix for function f_tx_block_by_vty References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 ) Change subject: ns: fix missing f_ prefix for function f_tx_block_by_vty ...................................................................... ns: fix missing f_ prefix for function f_tx_block_by_vty All function should have this prefix Change-Id: Id7b692b3b76946b36dcaa3d23b32b5ccb5007702 --- M ns/NS_Tests.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/54/25354/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 8b321ff..58aeacd 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -200,7 +200,7 @@ * TTCN <- NS: status (cause blocked) */ testcase TC_rx_block_unitdata_over_blocked() runs on RAW_Test_CT { - tx_block_by_vty(); + f_tx_block_by_vty(); f_sleep(1.0); NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); @@ -301,7 +301,7 @@ * TTCN <- NS: block * TTCN -> NS: block ack */ -function tx_block_by_vty(float guard_secs := 30.0) runs on RAW_Test_CT { +function f_tx_block_by_vty(float guard_secs := 30.0) runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig, guard_secs := guard_secs); @@ -321,7 +321,7 @@ } testcase TC_tx_block_by_vty() runs on RAW_Test_CT { - tx_block_by_vty(30.0); + f_tx_block_by_vty(30.0); f_sleep(1.0); f_clean_ns_codec(); } @@ -332,7 +332,7 @@ testcase TC_tx_block_by_vty_reset() runs on RAW_Test_CT { timer T := 10.0; - tx_block_by_vty(60.0); + f_tx_block_by_vty(60.0); f_outgoing_ns_reset(); var default d := activate(ax_rx_fail_on_any_ns()); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7b692b3b76946b36dcaa3d23b32b5ccb5007702 Gerrit-Change-Number: 25354 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 5 23:23:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Sun, 5 Sep 2021 23:23:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for UNITDATA transmission References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 ) Change subject: ns: add test case for UNITDATA transmission ...................................................................... ns: add test case for UNITDATA transmission Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 --- M ns/NS_Tests.ttcn 1 file changed, 28 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/55/25355/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 58aeacd..c3247fc 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -77,6 +77,7 @@ map(self:NSVTY, system:NSVTY); f_vty_set_prompts(NSVTY); f_vty_transceive(NSVTY, "enable"); + f_vty_config2(NSVTY, {}, "mirror-mode disable"); f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); if (mp_dialect == NS2_DIALECT_SNS) { f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); @@ -218,7 +219,7 @@ * TTCN -> NS: unblock * TTCN <- NS: unblock ack */ -testcase TC_tx_unblock() runs on RAW_Test_CT { +function f_tx_unblock() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); @@ -229,6 +230,10 @@ f_outgoing_ns_unblock(); setverdict(pass); +} + +testcase TC_tx_unblock() runs on RAW_Test_CT { + f_tx_unblock(); f_sleep(1.0); f_clean_ns_codec(); } @@ -922,6 +927,27 @@ f_clean_ns_codec(); } +/* 48.016 7.2 transmit a UNITDATA over an ALIVE connection + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unitdata + * TTCN <- NS: unitdata (mirror) + */ +testcase TC_tx_unitdata() runs on RAW_Test_CT { + f_tx_unblock(); + + f_vty_config2(NSVTY, {}, "mirror-mode enable"); + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_vty_config2(NSVTY, {}, "mirror-mode disable"); + + f_sleep(1.0); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -965,6 +991,7 @@ } execute( TC_no_reset_alive_ack() ); + execute( TC_tx_unitdata() ); } if (mp_dialect == NS2_DIALECT_SNS) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 Gerrit-Change-Number: 25355 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 06:33:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 6 Sep 2021 06:33:30 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve reselection protection In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25150 ) Change subject: gprs_ns2: improve reselection protection ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I375a7639fb8e0f92fd67bb4176bd6219978aa428 Gerrit-Change-Number: 25150 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 06 Sep 2021 06: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 Mon Sep 6 06:35:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 6 Sep 2021 06:35:43 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NS... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25151 ) Change subject: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95e6bbb7a418d647a8426804879571597ae06ff8 Gerrit-Change-Number: 25151 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 06 Sep 2021 06:35:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 06:36:34 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 6 Sep 2021 06:36:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25344 ) Change subject: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b Gerrit-Change-Number: 25344 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 06 Sep 2021 06:36:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:04:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:04:14 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c File src/utils.c: https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c at 1419 PS1, Line 1419: int osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val) We probably want to have: int _osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val); #define osmo_str_to_int64(result, str, base) _osmo_str_to_int64(result, str, base, INT64_MIN, INT64_MAX) https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c at 1430 PS1, Line 1430: if (val < INT64_MIN) { This looks wrong. What if the string contains INT64_MIn or INT64_MAX? You'd return non-zero, which is wrong imho. You should do this kind of tests later iirc. BTW. How can a an int64_t variable hold a value smaller than INT64_MIN? Can you explain me? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:04:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:05:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:05:16 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25346 ) Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:05:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:08:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:08:06 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25224 ) Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 09:08:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:10:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:10:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, daniel, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 to look at the new patch set (#2). Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... pcu: add TC_stat_pdch_avail_occ Test new stats bts.N.pdch.available/occupied, which count available PDCHs (3GPP TS 52.402 ? B.2.1.38) as well as occupied PDCHs (? B.2.1.42-44). Related: SYS#4878 Related: osmo-pcu I74760a68ee055510a79e80854ec7bf1521669119 Change-Id: I607b4729740159c161af824317f9fc04878eb13d --- M pcu/PCU_Tests.ttcn 1 file changed, 47 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/32/25332/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Mon Sep 6 09:11:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:11:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 ) Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... Patch Set 2: Code-Review+2 > Patch Set 1: Code-Review+1 > > Ah I see now that those namings are coming from TS 52.402. A better explanation/reference somewhere in this commit would help though done -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:11: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 Sep 6 09:11:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:11:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 ) Change subject: pcu: add TC_stat_pdch_avail_occ ...................................................................... pcu: add TC_stat_pdch_avail_occ Test new stats bts.N.pdch.available/occupied, which count available PDCHs (3GPP TS 52.402 ? B.2.1.38) as well as occupied PDCHs (? B.2.1.42-44). Related: SYS#4878 Related: osmo-pcu I74760a68ee055510a79e80854ec7bf1521669119 Change-Id: I607b4729740159c161af824317f9fc04878eb13d --- M pcu/PCU_Tests.ttcn 1 file changed, 47 insertions(+), 0 deletions(-) Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 6f0df06..88893ec 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -5992,6 +5992,51 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Test stats for available and occupied PDCHs */ +testcase TC_stat_pdch_avail_occ() runs on RAW_PCU_Test_CT { + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + const BssgpBvci bvci := mp_gb_cfg.bvc[0].bvci; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + + /* Only 1 TRX with 8 PDCH */ + f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0); + f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); + + /* Allocate 17 GprsMS instances */ + f_init_gprs_ms(4); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Reset stats */ + f_statsd_reset(); + + /* Establish BSSGP */ + f_bssgp_establish(); + + /* 8 PDCHs available, 0 occupied */ + var StatsDExpects expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 } + }; + f_statsd_expect(expect); + + /* Establish an Uplink TBF for each GprsMS instance */ + f_multi_ms_bssgp_register(); + f_multi_ms_establish_tbf(do_activate := false); + + /* 4 PDCHs occupied */ + expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 } + }; + f_statsd_expect(expect); + + f_shutdown(__BFILE__, __LINE__, final := true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -6098,6 +6143,8 @@ execute( TC_rim_ran_info_req_single_rep_no_si() ); execute (TC_pdch_energy_saving() ); + + execute( TC_stat_pdch_avail_occ() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25332 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I607b4729740159c161af824317f9fc04878eb13d Gerrit-Change-Number: 25332 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:11:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:11:48 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.available/occupied In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25333 ) Change subject: Add stats: pcu.bts.N.pdch.available/occupied ...................................................................... Add stats: pcu.bts.N.pdch.available/occupied Count available PDCHs (3GPP TS 52.402 ? B.2.1.38) as well as occupied PDCHs (? B.2.1.42-44). Related: SYS#4878 Change-Id: I74760a68ee055510a79e80854ec7bf1521669119 --- M src/bts.cpp M src/bts.h M src/pdch.cpp 3 files 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/src/bts.cpp b/src/bts.cpp index 8ccbee9..beb626d 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -199,6 +199,10 @@ static const struct osmo_stat_item_desc bts_stat_item_description[] = { { "ms.present", "MS Present ", OSMO_STAT_ITEM_NO_UNIT, 4, 0}, + { "pdch.available", "PDCH available ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, + { "pdch.occupied", "PDCH occupied ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, }; static const struct osmo_stat_item_group_desc bts_statg_desc = { diff --git a/src/bts.h b/src/bts.h index 5e45527..a6e7150 100644 --- a/src/bts.h +++ b/src/bts.h @@ -182,6 +182,8 @@ enum { STAT_MS_PRESENT, + STAT_PDCH_AVAILABLE, + STAT_PDCH_OCCUPIED, }; /* RACH.ind parameters (to be parsed) */ @@ -346,6 +348,10 @@ osmo_stat_item_set(item, val + inc); } +#define bts_stat_item_inc(bts, stat_id) bts_stat_item_add(bts, stat_id, 1) + +#define bts_stat_item_dec(bts, stat_id) bts_stat_item_add(bts, stat_id, -1) + struct gprs_rlcmac_bts *bts_alloc(struct gprs_pcu *pcu, uint8_t bts_nr); struct gprs_rlcmac_sba *bts_alloc_sba(struct gprs_rlcmac_bts *bts, uint8_t ta); diff --git a/src/pdch.cpp b/src/pdch.cpp index 49f9eb6..e213c28 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -150,6 +150,7 @@ this->ulc = pdch_ulc_alloc(this, trx->bts); m_is_enabled = 1; + bts_stat_item_inc(trx->bts, STAT_PDCH_AVAILABLE); } void gprs_rlcmac_pdch::disable() @@ -158,6 +159,7 @@ this->free_resources(); m_is_enabled = 0; + bts_stat_item_dec(trx->bts, STAT_PDCH_AVAILABLE); } void gprs_rlcmac_pdch::free_resources() @@ -1043,6 +1045,12 @@ "%s has not been detached, overwriting it\n", m_tbfs[tbf->direction][tbf->tfi()]->name()); + /* Count PDCHs with at least one TBF as "occupied", as in + * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 0 TBFs in + * this PDCH to 1, increase the counter by 1. */ + if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 0) + bts_stat_item_inc(trx->bts, STAT_PDCH_OCCUPIED); + m_num_tbfs[tbf->direction] += 1; if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); @@ -1063,6 +1071,12 @@ OSMO_ASSERT(m_num_tbfs[tbf->direction] > 0); + /* Count PDCHs with at least one TBF as "occupied", as in + * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 1 TBFs in + * this PDCH to 0, decrease the counter by 1. */ + if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 1) + bts_stat_item_dec(trx->bts, STAT_PDCH_OCCUPIED); + m_num_tbfs[tbf->direction] -= 1; if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25333 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I74760a68ee055510a79e80854ec7bf1521669119 Gerrit-Change-Number: 25333 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:13:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:13:58 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) we should really add uint counterparts of these APIs. https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/vty/cpu_sched_vty.c File src/vty/cpu_sched_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/vty/cpu_sched_vty.c at 303 PS4, Line 303: if (*res_pid != val) This looks really strange. You set one to another and then you compare them to be different? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:13: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 Mon Sep 6 09:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:16:56 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c File src/vty/vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c at 339 PS2, Line 339: int vty_out_uptime(struct vty *vty, const struct timespec *starttime) I recall we already have some libosmocore APIs to get this kind of strings. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:16: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 Sep 6 09:17:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:17:44 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25350 ) Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:17: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 Sep 6 09:18:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:18:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct wh... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:18:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:18:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:18:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: f_init_vty: only reset SNS configuration when using SNS. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 ) Change subject: ns: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:18:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:18:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:18:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmi... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 ) Change subject: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c Gerrit-Change-Number: 25351 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:18: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 Sep 6 09:20:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:20:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add tests to test UNITDATA over a BLOCKED nsvcs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 ) Change subject: ns: add tests to test UNITDATA over a BLOCKED nsvcs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 Gerrit-Change-Number: 25352 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:20:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:20:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:20:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: always clean up the ns_codec In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 ) Change subject: ns: always clean up the ns_codec ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 Gerrit-Change-Number: 25353 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:20:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:20:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:20:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: fix missing f_ prefix for function f_tx_block_by_vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 ) Change subject: ns: fix missing f_ prefix for function f_tx_block_by_vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7b692b3b76946b36dcaa3d23b32b5ccb5007702 Gerrit-Change-Number: 25354 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:20: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 Sep 6 09:20:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:20:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for UNITDATA transmission In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 ) Change subject: ns: add test case for UNITDATA transmission ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 Gerrit-Change-Number: 25355 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 09:20: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 Sep 6 09:30:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 09:30:53 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 to look at the new patch set (#9). Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... MS Power Control Loop: Support set up of C/I parameters for osmo-bts This commit extends existing VTY and RSL infrastructure to configure and manage MS Power Parameters used in MS Power Control loop, by adding support to set up Carrier-to-Interference (CI) parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f --- M TODO-RELEASE M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 8 files changed, 568 insertions(+), 41 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/25298/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 9 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:41:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:41:02 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Support EWMA algorithm for C/I measurements In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25324 ) Change subject: MS Power Control Loop: Support EWMA algorithm for C/I measurements ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Gerrit-Change-Number: 25324 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 09:41:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:45:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:45:32 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Improve logging In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25325 ) Change subject: MS Power Control Loop: Improve logging ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8babd42566c41935079fd414d930ebf2d737892e Gerrit-Change-Number: 25325 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 09:45:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 09:53:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 09:53:55 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 09:53:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:00:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 10:00:36 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 10:00: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 Sep 6 10:06:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:04 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Support EWMA algorithm for C/I measurements In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25324 ) Change subject: MS Power Control Loop: Support EWMA algorithm for C/I measurements ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Gerrit-Change-Number: 25324 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10: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 Mon Sep 6 10:06:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:07 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Improve logging In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25325 ) Change subject: MS Power Control Loop: Improve logging ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8babd42566c41935079fd414d930ebf2d737892e Gerrit-Change-Number: 25325 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:06: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 Sep 6 10:06:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:10 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:06:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:15 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:06: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 Sep 6 10:06:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:18 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25327 ) Change subject: BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 Gerrit-Change-Number: 25327 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:06:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:21 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25328 ) Change subject: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 Gerrit-Change-Number: 25328 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:06:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:24 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Fix downscaling averaging bug In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25329 ) Change subject: MS/BS Power Control Loop: Fix downscaling averaging bug ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 Gerrit-Change-Number: 25329 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:06: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 Sep 6 10:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:36 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25268 ) Change subject: MS Power Control Loop: Take C/I into account ...................................................................... MS Power Control Loop: Take C/I into account This commit extends existing MS Power Control Loop algorithm to take into account computed C/I values on the UL, received from MS. The related C/I parameters used by the algorithm are configured at and provided by the BSC, which transmits them to the BTS similar to already existing parameters. Using C/I instead of existing RxQual is preferred due to extended granularity of C/I (bigger range than RxQual's 0-7). Furthermore, existing literature (such as "GSM/EDGE: Evolution and Performance" Table 10.3) provides detailed information about expected target values, even different values for different channel types. Hence, it was decided to support setting different MS Power Parameters for different channel types. These MS Power Parameters are Osmocom specific, ie. supported only by newish versions of osmo-bts. Older versions of osmo-bts should ignore the new IEs added just fine. The new IEs containing the MS POwer Parameters are not send for non osmo-bts BTSs, hence this commit is secure with regards to running osmo-bsc against an ip.access BTS such as nanoBTS. Related: SYS#4917 Depends: libosmocore.git Change-Id Iffef0611430ad6c90606149c398d80158633bbca Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/power_control.h M src/common/gsm_data.c M src/common/l1sap.c M src/common/power_control.c M src/common/rsl.c M src/common/vty.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 10 files changed, 504 insertions(+), 137 deletions(-) Approvals: Jenkins Builder: Verified osmith: 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 80f1833..979e6d9 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -211,6 +211,14 @@ /* Measurement averaging parameters for RxLev & RxQual */ struct gsm_power_ctrl_meas_params rxqual_meas; struct gsm_power_ctrl_meas_params rxlev_meas; + + /* Measurement averaging parameters for C/I, per chan type */ + struct gsm_power_ctrl_meas_params ci_fr_meas; + struct gsm_power_ctrl_meas_params ci_hr_meas; + struct gsm_power_ctrl_meas_params ci_amr_fr_meas; + struct gsm_power_ctrl_meas_params ci_amr_hr_meas; + struct gsm_power_ctrl_meas_params ci_sdcch_meas; + struct gsm_power_ctrl_meas_params ci_gprs_meas; }; /* Default MS/BS Power Control parameters */ diff --git a/include/osmo-bts/power_control.h b/include/osmo-bts/power_control.h index f2e14cf..ed9f891 100644 --- a/include/osmo-bts/power_control.h +++ b/include/osmo-bts/power_control.h @@ -5,7 +5,8 @@ int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, - const int8_t ul_rssi_dbm); + const int8_t ul_rssi_dbm, + const int16_t ul_lqual_cb); int lchan_bs_pwr_ctrl(struct gsm_lchan *lchan, const struct gsm48_hdr *gh); diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index b1f695b..2da16bb 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -527,4 +527,136 @@ /* FIXME: RxQual averaging is not yet implemented */ .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, }, + + /* C/I measurement parameters. + * Target C/I retrieved from "GSM/EDGE: Evolution and Performance" Table 10.3. + * Set lower and upper so that (lower + upper) / 2 is equal or slightly + * above the target. + */ + .ci_fr_meas = { /* FR: Target C/I = 15 dB, Soft blocking threshold = 10 dB */ + .lower_thresh = 13, + .upper_thresh = 17, + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_CI_FR_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_CI_FR_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + .ci_hr_meas = { /* HR: Target C/I = 18 dB, Soft blocking threshold = 13 dB */ + .lower_thresh = 16, + .upper_thresh = 21, + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_CI_HR_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_CI_HR_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + .ci_amr_fr_meas = { /* AMR-FR: Target C/I = 9 dB, Soft blocking threshold = 4 dB */ + .lower_thresh = 7, + .upper_thresh = 11, + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_CI_AMR_FR_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_CI_AMR_FR_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + .ci_amr_hr_meas = { /* AMR-HR: Target C/I = 15 dB, Soft blocking threshold = 10 dB */ + .lower_thresh = 13, + .upper_thresh = 17, + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_CI_AMR_HR_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_CI_AMR_HR_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + .ci_sdcch_meas = { /* SDCCH: Target C/I = 14 dB, Soft blocking threshold = 9 dB */ + .lower_thresh = 12, + .upper_thresh = 16, + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_CI_SDCCH_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_CI_SDCCH_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, + .ci_gprs_meas = { /* GPRS: Target C/I = 20 dB, Soft blocking threshold = 15 dB */ + .lower_thresh = 18, + .upper_thresh = 24, + + /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages + * out of LOWER_CMP_N averages are lower than L_CI_GPRS_XX_P */ + .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ + /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages + * out of UPPER_CMP_N averages are greater than L_CI_GPRS_XX_P */ + .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ + + /* No averaging (filtering) by default */ + .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, + + /* Hreqave: the period over which an average is produced */ + .h_reqave = 4, /* TODO: investigate a reasonable default value */ + /* Hreqt: the number of averaged results maintained */ + .h_reqt = 6, /* TODO: investigate a reasonable default value */ + }, }; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 3b225c2..9785bfd 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1604,7 +1604,7 @@ rsl_tx_meas_res(lchan, NULL, 0, le); radio_link_timeout(lchan, true); - lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi); + lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi, data_ind->lqual_cb); } return -EINVAL; } @@ -1632,7 +1632,7 @@ lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; - lchan_ms_pwr_ctrl(lchan, data[0] & 0x1f, data_ind->rssi); + lchan_ms_pwr_ctrl(lchan, data[0] & 0x1f, data_ind->rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/power_control.c b/src/common/power_control.c index 4f5d15e..9d874c4 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -90,7 +90,7 @@ /* Calculate target RxLev value from lower/upper thresholds */ #define CALC_TARGET(mp) \ - (mp.lower_thresh + mp.upper_thresh) / 2 + ((mp).lower_thresh + (mp).upper_thresh) / 2 /* Calculate a 'delta' value (for the given MS/BS power control state and parameters) * to be applied to the current Tx power level to approach the target level. */ @@ -139,14 +139,40 @@ return delta; } +static const struct gsm_power_ctrl_meas_params *lchan_get_ci_thresholds(const struct gsm_lchan *lchan) +{ + const struct gsm_power_ctrl_params *params = lchan->ms_power_ctrl.dpc_params; + + switch (lchan->type) { + case GSM_LCHAN_SDCCH: + return ¶ms->ci_sdcch_meas; + case GSM_LCHAN_PDTCH: + return ¶ms->ci_gprs_meas; + case GSM_LCHAN_TCH_F: + if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) + return ¶ms->ci_amr_fr_meas; + else + return ¶ms->ci_fr_meas; + case GSM_LCHAN_TCH_H: + if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) + return ¶ms->ci_amr_hr_meas; + else + return ¶ms->ci_hr_meas; + default: + OSMO_ASSERT(0); + } +} + /*! compute the new MS POWER LEVEL communicated to the MS and store it in lchan. * \param lchan logical channel for which to compute (and in which to store) new power value. * \param[in] ms_power_lvl MS Power Level received from Uplink L1 SACCH Header in SACCH block. * \param[in] ul_rssi_dbm Signal level of the received SACCH block, in dBm. + * \param[in] ul_lqual_cb C/I of the received SACCH block, in dB. */ int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, const uint8_t ms_power_lvl, - const int8_t ul_rssi_dbm) + const int8_t ul_rssi_dbm, + const int16_t ul_lqual_cb) { struct lchan_power_ctrl_state *state = &lchan->ms_power_ctrl; const struct gsm_power_ctrl_params *params = state->dpc_params; @@ -155,6 +181,7 @@ enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; + const struct gsm_power_ctrl_meas_params *ci_meas; if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; @@ -187,8 +214,16 @@ return 0; } - /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta(params, state, ul_rssi_dbm); + /* If computed C/I is out of acceptable thresholds: */ + ci_meas = lchan_get_ci_thresholds(lchan); + if (ul_lqual_cb < ci_meas->lower_thresh * 10) { + new_dbm = ms_dbm + params->inc_step_size_db; + } else if (ul_lqual_cb > ci_meas->upper_thresh * 10) { + new_dbm = ms_dbm - params->red_step_size_db; + } else { + /* Calculate the new Tx power value (in dBm) */ + new_dbm = ms_dbm + calc_delta(params, state, ul_rssi_dbm); + } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on cope with any unsigned dbm value, regardless of band minimal value. */ @@ -211,19 +246,21 @@ int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); if (state->current == new_power_lvl) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d, %d dBm " - "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n", + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " + "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", RSSI[curr %d, tgt %d] dBm," + " C/I[curr %d, tgt %d] dB)\n", new_power_lvl, new_dbm, ms_power_lvl, state->max, - ul_rssi_dbm, target_dbm); + ul_rssi_dbm, target_dbm, ul_lqual_cb/10, CALC_TARGET(*ci_meas)); return 0; } current_dbm = ms_pwr_dbm(band, state->current); - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power from control level %d (%d dBm) to %d, %d dBm " - "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", rx-current %d dBm, rx-target %d dBm)\n", + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power control level %d (%d dBm) => %d (%d dBm): " + "rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", RSSI[curr %d, tgt %d] dBm," + " C/I[curr %d, tgt %d] dB\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", - state->current, current_dbm, new_power_lvl, new_dbm, - ms_power_lvl, state->max, ul_rssi_dbm, target_dbm); + state->current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, + state->max, ul_rssi_dbm, target_dbm, ul_lqual_cb/10, CALC_TARGET(*ci_meas)); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; diff --git a/src/common/rsl.c b/src/common/rsl.c index 4ad807f..f585ec4 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -938,6 +938,30 @@ params->rxqual_meas.upper_thresh = thresh->u_rxqual; } + /* Osmocom extension, C/I related thresholds: */ + if (TLVP_PRES_LEN(&tp[0], RSL_IPAC_EIE_OSMO_MS_PWR_CTL, sizeof(struct osmo_preproc_pc_thresh))) { + const struct osmo_preproc_pc_thresh *osmo_thresh; + ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_OSMO_MS_PWR_CTL); + osmo_thresh = (const struct osmo_preproc_pc_thresh *) ie->val; + params->ci_fr_meas.lower_thresh = osmo_thresh->l_ci_fr; + params->ci_fr_meas.upper_thresh = osmo_thresh->u_ci_fr; + + params->ci_hr_meas.lower_thresh = osmo_thresh->l_ci_hr; + params->ci_hr_meas.upper_thresh = osmo_thresh->u_ci_hr; + + params->ci_amr_fr_meas.lower_thresh = osmo_thresh->l_ci_amr_fr; + params->ci_amr_fr_meas.upper_thresh = osmo_thresh->u_ci_amr_fr; + + params->ci_amr_hr_meas.lower_thresh = osmo_thresh->l_ci_amr_hr; + params->ci_amr_hr_meas.upper_thresh = osmo_thresh->u_ci_amr_hr; + + params->ci_sdcch_meas.lower_thresh = osmo_thresh->l_ci_sdcch; + params->ci_sdcch_meas.upper_thresh = osmo_thresh->u_ci_sdcch; + + params->ci_gprs_meas.lower_thresh = osmo_thresh->l_ci_gprs; + params->ci_gprs_meas.upper_thresh = osmo_thresh->u_ci_gprs; + } + /* (TV) PC Threshold Comparators */ if ((ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_PC_THRESH_COMP)) != NULL) { const struct ipac_preproc_pc_comp *thresh_comp; @@ -964,6 +988,25 @@ params->red_step_size_db = thresh_comp->red_step_size; } + /* Osmocom extension, C/I related thresholds: */ + if (TLVP_PRES_LEN(&tp[0], RSL_IPAC_EIE_OSMO_PC_THRESH_COMP, sizeof(struct osmo_preproc_pc_thresh))) { + const struct osmo_preproc_pc_comp *osmo_thresh_comp; + ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_OSMO_PC_THRESH_COMP); + osmo_thresh_comp = (const struct osmo_preproc_pc_comp *) ie->val; + #define SET_PREPROC_PC(PARAMS, FROM, TYPE) \ + (PARAMS)->TYPE##_meas.lower_cmp_p = (FROM)->TYPE.lower_p; \ + (PARAMS)->TYPE##_meas.lower_cmp_n = (FROM)->TYPE.lower_n; \ + (PARAMS)->TYPE##_meas.upper_cmp_p = (FROM)->TYPE.upper_p; \ + (PARAMS)->TYPE##_meas.upper_cmp_n = (FROM)->TYPE.upper_n + SET_PREPROC_PC(params, osmo_thresh_comp, ci_fr); + SET_PREPROC_PC(params, osmo_thresh_comp, ci_hr); + SET_PREPROC_PC(params, osmo_thresh_comp, ci_amr_fr); + SET_PREPROC_PC(params, osmo_thresh_comp, ci_amr_hr); + SET_PREPROC_PC(params, osmo_thresh_comp, ci_sdcch); + SET_PREPROC_PC(params, osmo_thresh_comp, ci_gprs); + #undef SET_PREPROC_PC + } + /* (TLV) Measurement Averaging parameters for RxLev/RxQual */ for (i = 0; i < ARRAY_SIZE(tp); i++) { const struct ipac_preproc_ave_cfg *ave_cfg; @@ -1008,6 +1051,42 @@ } } + /* (TLV) Measurement Averaging parameters for C/I (Osmocom extension)*/ + if (TLVP_PRES_LEN(&tp[0], RSL_IPAC_EIE_OSMO_MEAS_AVG_CFG, sizeof(struct osmo_preproc_ave_cfg))) { + ie = TLVP_GET(&tp[0], RSL_IPAC_EIE_OSMO_MEAS_AVG_CFG); + const struct osmo_preproc_ave_cfg *cfg = (const struct osmo_preproc_ave_cfg *) ie->val; + unsigned params_offset = 0; + #define SET_AVE_CFG(PARAMS, FROM, TYPE, PARAM_OFFSET) do {\ + if ((FROM)->TYPE.ave_enabled) { \ + (PARAMS)->TYPE##_meas.h_reqave = (FROM)->TYPE.h_reqave; \ + (PARAMS)->TYPE##_meas.h_reqt = (FROM)->TYPE.h_reqt; \ + (PARAMS)->TYPE##_meas.algo = (FROM)->TYPE.ave_method + 1; \ + switch ((FROM)->TYPE.ave_method) { \ + case IPAC_OSMO_EWMA_AVE: \ + if (ie->len > sizeof(*cfg) + (PARAM_OFFSET)) { \ + (PARAMS)->TYPE##_meas.ewma.alpha = (FROM)->params[PARAM_OFFSET]; \ + (PARAM_OFFSET)++; \ + } \ + break; \ + /* FIXME: not implemented */ \ + case IPAC_UNWEIGHTED_AVE: \ + case IPAC_WEIGHTED_AVE: \ + case IPAC_MEDIAN_AVE: \ + break; \ + } \ + } else { \ + (PARAMS)->TYPE##_meas.algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE; \ + } \ + } while(0) + SET_AVE_CFG(params, cfg, ci_fr, params_offset); + SET_AVE_CFG(params, cfg, ci_hr, params_offset); + SET_AVE_CFG(params, cfg, ci_amr_fr, params_offset); + SET_AVE_CFG(params, cfg, ci_amr_hr, params_offset); + SET_AVE_CFG(params, cfg, ci_sdcch, params_offset); + SET_AVE_CFG(params, cfg, ci_gprs, params_offset); + #undef SET_AVE_CFG + } + return 0; } diff --git a/src/common/vty.c b/src/common/vty.c index 4f618d0..62e2d70 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -1391,7 +1391,7 @@ } static void dump_dpc_params(struct vty *vty, const unsigned int indent, - const struct gsm_power_ctrl_params *cp) + const struct gsm_power_ctrl_params *cp, bool uplink) { cfg_out(vty, "Power control interval: %u ms (every %u SACCH block(s))%s", cp->ctrl_interval ? cp->ctrl_interval * 2 * 480 : 480, @@ -1408,6 +1408,26 @@ cfg_out(vty, "RxQual measurement processing:%s", VTY_NEWLINE); dump_dpc_meas_params(vty, indent + 2, &cp->rxqual_meas, "RXQUAL", 3); + + if (uplink) { + cfg_out(vty, "C/I measurement processing (FR/EFR):%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->ci_fr_meas, "CI_FR", 0); + + cfg_out(vty, "C/I measurement processing (HR):%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->ci_hr_meas, "CI_HR", 0); + + cfg_out(vty, "C/I measurement processing (AMR-FR):%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->ci_amr_fr_meas, "CI_AMR_FR", 0); + + cfg_out(vty, "C/I measurement processing (AMR-HR):%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->ci_amr_hr_meas, "CI_AMR_HR", 0); + + cfg_out(vty, "C/I measurement processing (SDCCH):%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->ci_sdcch_meas, "CI_SDCCH", 0); + + cfg_out(vty, "C/I measurement processing (GPRS):%s", VTY_NEWLINE); + dump_dpc_meas_params(vty, indent + 2, &cp->ci_gprs_meas, "CI_GPRS", 0); + } } static void trx_dump_vty(struct vty *vty, const struct gsm_bts_trx *trx) @@ -1425,13 +1445,13 @@ trx->bs_dpc_params == &trx->bts->bs_dpc_params ? "fall-back" : "from BSC", VTY_NEWLINE); - dump_dpc_params(vty, 4, trx->bs_dpc_params); + dump_dpc_params(vty, 4, trx->bs_dpc_params, false); vty_out(vty, " MS Power control parameters (%s):%s", trx->ms_dpc_params == &trx->bts->ms_dpc_params ? "fall-back" : "from BSC", VTY_NEWLINE); - dump_dpc_params(vty, 4, trx->ms_dpc_params); + dump_dpc_params(vty, 4, trx->ms_dpc_params, true); vty_out(vty, " NM State: "); net_dump_nmstate(vty, &trx->mo.nm_state); @@ -1638,7 +1658,7 @@ return; cfg_out(vty, "Power Control parameters:%s", VTY_NEWLINE); - dump_dpc_params(vty, indent + 2, st->dpc_params); + dump_dpc_params(vty, indent + 2, st->dpc_params, false); } static void lchan_ms_power_ctrl_state_dump(struct vty *vty, unsigned int indent, @@ -1664,7 +1684,7 @@ return; cfg_out(vty, "Power Control parameters:%s", VTY_NEWLINE); - dump_dpc_params(vty, indent + 2, st->dpc_params); + dump_dpc_params(vty, indent + 2, st->dpc_params, true); } static void lchan_acch_rep_state_dump(struct vty *vty, unsigned int indent, diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 0d86310..f0c0250 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -67,13 +67,13 @@ printf("\nStarting test case '%s'\n", name); } -static inline void apply_power_test(struct gsm_lchan *lchan, int rxlev, int exp_ret, uint8_t exp_current) +static inline void apply_power_test(struct gsm_lchan *lchan, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) { uint8_t old; int ret; old = lchan->ms_power_ctrl.current; - ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, rxlev); + ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, rxlev, lqual_cb); /* Keep the measurement counter updated */ lchan->meas.res_nr++; @@ -87,9 +87,14 @@ static void test_power_loop(void) { struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual; init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; + params = lchan->ms_power_ctrl.dpc_params; + lchan->type = GSM_LCHAN_SDCCH; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); OSMO_ASSERT(lchan->ms_power_ctrl.current == 15); @@ -97,73 +102,78 @@ OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); /* Simply clamping */ - apply_power_test(lchan, -60, 0, 15); + apply_power_test(lchan, -60, good_lqual, 0, 15); /* * Now 15 dB too little and we should power it up. Could be a * power level of 7 or 8 for 15 dBm. However, since we limit peace at * which we change values, expect several steps of MS_RAISE_MAX_DB/2 levels: */ - apply_power_test(lchan, -90, 1, 13); - apply_power_test(lchan, -90, 1, 11); - apply_power_test(lchan, -90, 1, 9); - apply_power_test(lchan, -90, 1, 7); - apply_power_test(lchan, -90, 1, 5); + apply_power_test(lchan, -90, good_lqual, 1, 13); + apply_power_test(lchan, -90, good_lqual, 1, 11); + apply_power_test(lchan, -90, good_lqual, 1, 9); + apply_power_test(lchan, -90, good_lqual, 1, 7); + apply_power_test(lchan, -90, good_lqual, 1, 5); /* Check good RSSI value keeps it at same power level: */ - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 5); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, good_lqual, 0, 5); - apply_power_test(lchan, -90, 1, 3); - apply_power_test(lchan, -90, 1, 2); /* .max is pwr lvl 2 */ - apply_power_test(lchan, -90, 0, 2); /* .max is pwr lvl 2 */ + apply_power_test(lchan, -90, good_lqual, 1, 3); + apply_power_test(lchan, -90, good_lqual, 1, 2); /* .max is pwr lvl 2 */ + apply_power_test(lchan, -90, good_lqual, 0, 2); /* .max is pwr lvl 2 */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 30); OSMO_ASSERT(lchan->ms_power_ctrl.max == 0); - apply_power_test(lchan, -90, 1, 0); /* .max is pwr lvl 0 */ - apply_power_test(lchan, -90, 0, 0); /* .max is pwr lvl 0 */ + apply_power_test(lchan, -90, good_lqual, 1, 0); /* .max is pwr lvl 0 */ + apply_power_test(lchan, -90, good_lqual, 0, 0); /* .max is pwr lvl 0 */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 36); OSMO_ASSERT(lchan->ms_power_ctrl.max == 29); - apply_power_test(lchan, -90, 1, 30); - apply_power_test(lchan, -90, 1, 29); - apply_power_test(lchan, -90, 0, 29); + apply_power_test(lchan, -90, good_lqual, 1, 30); + apply_power_test(lchan, -90, good_lqual, 1, 29); + apply_power_test(lchan, -90, good_lqual, 0, 29); /* Check good RSSI value keeps it at same power level: */ - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 29); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, good_lqual, 0, 29); /* Now go down, steps are double size in this direction: */ - apply_power_test(lchan, -45, 1, 1); - apply_power_test(lchan, -45, 1, 5); - apply_power_test(lchan, -45, 1, 9); + apply_power_test(lchan, -45, good_lqual, 1, 1); + apply_power_test(lchan, -45, good_lqual, 1, 5); + apply_power_test(lchan, -45, good_lqual, 1, 9); /* Go down only one level down and up: */ - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, 1, 10); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 2, 1, 9); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, good_lqual, 1, 10); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 2, good_lqual, 1, 9); /* Check if BSC requesting a low max power is applied after loop calculation: */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 2); OSMO_ASSERT(lchan->ms_power_ctrl.max == 14); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, 1, 14); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 2, good_lqual, 1, 14); /* Set back a more normal max: */ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 30); OSMO_ASSERT(lchan->ms_power_ctrl.max == 0); /* Disable dynamic power control and jump down */ lchan->ms_power_ctrl.dpc_params = NULL; - apply_power_test(lchan, -60, 0, 14); + apply_power_test(lchan, -60, good_lqual, 0, 14); /* Enable and leave it again */ lchan->ms_power_ctrl.dpc_params = &lchan->ms_dpc_params; - apply_power_test(lchan, -40, 1, 15); + apply_power_test(lchan, -40, good_lqual, 1, 15); } static void test_pf_algo_ewma(void) { struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual; const int *avg100; init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; + lchan->type = GSM_LCHAN_SDCCH; + params = lchan->ms_power_ctrl.dpc_params; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; avg100 = &lchan->ms_power_ctrl.rxlev_meas_proc.ewma.Avg100; struct gsm_power_ctrl_meas_params *mp = &lchan->ms_dpc_params.rxlev_meas; @@ -180,15 +190,15 @@ ((float) *avg100) / 100, exp); /* UL RSSI remains constant => no UL power change */ - apply_power_test(lchan, -75, 0, 15); + apply_power_test(lchan, -75, good_lqual, 0, 15); CHECK_UL_RSSI_AVG100(-75.00); /* Avg[t] = (0.2 * -90) + (0.8 * -75) = -78.0 dBm */ - apply_power_test(lchan, -90, 1, 13); + apply_power_test(lchan, -90, good_lqual, 1, 13); CHECK_UL_RSSI_AVG100(-78.00); /* Avg[t] = (0.2 * -90) + (0.8 * -78) = -80.4 dBm */ - apply_power_test(lchan, -90, 1, 11); + apply_power_test(lchan, -90, good_lqual, 1, 11); CHECK_UL_RSSI_AVG100(-80.40); /* Avg[t] = (0.2 * -70) + (0.8 * -80.4) = -78.32 dBm, @@ -199,7 +209,7 @@ * Avg100[t] = -8040 + 20 * (-70 + 80) * Avg100[t] = -8040 + 200 = -7840 * Avg[t] = -7840 / 100 = -78.4 */ - apply_power_test(lchan, -70, 1, 9); + apply_power_test(lchan, -70, good_lqual, 1, 9); CHECK_UL_RSSI_AVG100(-78.40); mp->ewma.alpha = 70; /* 30% smoothing */ @@ -208,25 +218,30 @@ (struct gsm_power_ctrl_meas_proc_state) { 0 }; /* This is the first sample, the filter outputs it as-is */ - apply_power_test(lchan, -50, 0, 15); + apply_power_test(lchan, -50, good_lqual, 0, 15); CHECK_UL_RSSI_AVG100(-50.00); /* Avg[t] = (0.7 * -50) + (0.3 * -50) = -50.0 dBm */ - apply_power_test(lchan, -50, 0, 15); + apply_power_test(lchan, -50, good_lqual, 0, 15); CHECK_UL_RSSI_AVG100(-50.0); /* Simulate SACCH block loss (-110 dBm): * Avg[t] = (0.7 * -110) + (0.3 * -50) = -92.0 dBm */ - apply_power_test(lchan, -110, 1, 13); + apply_power_test(lchan, -110, good_lqual, 1, 13); CHECK_UL_RSSI_AVG100(-92.0); } static void test_power_hysteresis(void) { struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual; init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; + lchan->type = GSM_LCHAN_SDCCH; + params = lchan->ms_power_ctrl.dpc_params; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; /* Tolerate power deviations in range -80 .. -70 */ lchan->ms_dpc_params.rxlev_meas.lower_thresh = 30; @@ -237,61 +252,66 @@ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 15); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 3, 0, 15); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 3, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, good_lqual, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 3, good_lqual, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 3, good_lqual, 0, 15); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, 0, 15); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 5, 0, 15); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 5, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM, good_lqual, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM + 5, good_lqual, 0, 15); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 5, good_lqual, 0, 15); - apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 10, 1, 13); + apply_power_test(lchan, PWR_TEST_RXLEV_TARGET_DBM - 10, good_lqual, 1, 13); } static void test_power_ctrl_interval(void) { struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual; unsigned int i, j; init_test(__func__); lchan = &g_trx->ts[0].lchan[0]; + lchan->type = GSM_LCHAN_SDCCH; + params = lchan->ms_power_ctrl.dpc_params; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); - static const int script[][8][3] = { + const int script[][8][4] = { { /* P_Con_INTERVAL=0 (480 ms) */ /* { UL RxLev, expected rc, expected Tx power level } */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 13 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 11 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 9 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 7 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 5 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 3 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 2 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 2 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 13 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 11 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 9 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 7 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 5 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 3 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 2 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 2 }, }, { /* P_Con_INTERVAL=1 (960 ms) */ /* { UL RxLev, expected rc, expected Tx power level } */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 13 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 13 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 11 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 11 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 9 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 9 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 7 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 7 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 13 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 13 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 11 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 11 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 9 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 9 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 7 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 7 }, /* skipped */ }, { /* P_Con_INTERVAL=2 (1920 ms) */ /* { UL RxLev, expected rc, expected Tx power level } */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 13 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 13 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 13 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 13 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 1, 11 }, - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 11 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 11 }, /* skipped */ - { PWR_TEST_RXLEV_TARGET_DBM - 15, 0, 11 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 13 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 13 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 13 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 13 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 1, 11 }, + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 11 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 11 }, /* skipped */ + { PWR_TEST_RXLEV_TARGET_DBM - 15, good_lqual, 0, 11 }, /* skipped */ }, }; @@ -305,14 +325,54 @@ for (j = 0; j < ARRAY_SIZE(script[i]); j++) { apply_power_test(lchan, script[i][j][0], /* UL RxLev */ - script[i][j][1], /* expected rc */ - script[i][j][2]); /* expected Tx power level */ + script[i][j][1], /* UL C/I */ + script[i][j][2], /* expected rc */ + script[i][j][3]); /* expected Tx power level */ } printf("\n"); } } +static void test_power_loop_ci(void) +{ + struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual, too_low_lqual, too_high_lqual; + + init_test(__func__); + lchan = &g_trx->ts[0].lchan[0]; + params = lchan->ms_power_ctrl.dpc_params; + lchan->type = GSM_LCHAN_SDCCH; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; + too_low_lqual = (params->ci_sdcch_meas.lower_thresh - 1) * 10; + too_high_lqual = (params->ci_sdcch_meas.upper_thresh + 1) * 10; + + lchan->ms_power_ctrl.current = ms_pwr_ctl_lvl(GSM_BAND_1800, 0); + OSMO_ASSERT(lchan->ms_power_ctrl.current == 15); + lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); + OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); + + /* Simply clamping */ + apply_power_test(lchan, -60, good_lqual, 0, 15); + + /* Now UL C/I is too bad as well as RSSI: */ + apply_power_test(lchan, -100, too_low_lqual, 1, 13); + apply_power_test(lchan, -100, too_low_lqual, 1, 11); + + /* Now UL C/I is good again while RSSI is good: */ + apply_power_test(lchan, -60, good_lqual, 1, 12); + apply_power_test(lchan, -60, too_high_lqual, 1, 13); + + /* Now UL C/I is good while RSSI is bad, C/I mandates: */ + apply_power_test(lchan, -100, good_lqual, 1, 11); + apply_power_test(lchan, -100, too_high_lqual, 1, 12); + + /* Now UL C/I is bad again while RSSI is good, C/I mandates: */ + apply_power_test(lchan, -60, good_lqual, 1, 13); + apply_power_test(lchan, -60, too_high_lqual, 1, 14); +} + int main(int argc, char **argv) { printf("Testing power loop...\n"); @@ -332,6 +392,7 @@ test_pf_algo_ewma(); test_power_hysteresis(); test_power_ctrl_interval(); + test_power_loop_ci(); printf("Power loop test OK\n"); diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index ae8ad03..55092db 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -1,51 +1,60 @@ -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -60 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 9 (12 dBm) to 7, 16 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 7 (16 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5, 20 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 5 (20 dBm) to 3, 24 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 3 (24 dBm) to 2, 26 dBm (rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2, 26 dBm (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 2 (26 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 0, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 0, 30 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 0, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 0 (30 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 30 (34 dBm) to 29, 36 dBm (rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29, 36 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29, 36 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 29 (36 dBm) to 30, 34 dBm (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 30 (34 dBm) to 31, 32 dBm (rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 31 (32 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 31, max-ms-pwr-lvl 29, rx-current -45 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 0 (30 dBm) to 1, 28 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, rx-current -73 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 1 (28 dBm) to 0, 30 dBm (rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, rx-current -77 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 0 (30 dBm) to 14, 2 dBm (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 14, rx-current -73 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power from control level 14 (2 dBm) to 15, 0 dBm (rx-ms-pwr-lvl 14, max-ms-pwr-lvl 0, rx-current -40 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 3 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 11 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -70 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -50 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -50 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -110 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -72 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -78 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -75 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -70 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15, 0 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -80 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -85 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 9 (12 dBm) to 7, 16 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 7 (16 dBm) to 5, 20 dBm (rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 5 (20 dBm) to 3, 24 dBm (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 3 (24 dBm) to 2, 26 dBm (rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2, 26 dBm (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 11 (8 dBm) to 9, 12 dBm (rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 9 (12 dBm) to 7, 16 dBm (rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 15 (0 dBm) to 13, 4 dBm (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) -(bts=0,trx=0,ts=0,ss=0) Raising MS power from control level 13 (4 dBm) to 11, 8 dBm (rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, rx-current -90 dBm, rx-target -75 dBm) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm): (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 2 (26 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 2, max-ms-pwr-lvl 0, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 0 (30 dBm): (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 0, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 0 (30 dBm) => 30 (34 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 30 (34 dBm) => 29 (36 dBm): rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 31, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 1 (28 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, RSSI[curr -73, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 1 (28 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, RSSI[curr -77, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 14 (2 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 14, RSSI[curr -73, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): rx-ms-pwr-lvl 14, max-ms-pwr-lvl 0, RSSI[curr -40, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -70, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -50, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -50, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -110, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -72, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -78, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -70, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -80, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -85, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB) +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 11, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 11, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 12, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 17, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 17, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 12, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 17, tgt 14] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 5fea474..ccf2ddc 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -144,4 +144,24 @@ lchan_ms_pwr_ctrl(RxLvl=-90 dBm) returns 0 (expected 0) MS current power 11 -> 11 (expected 11) + +Starting test case 'test_power_loop_ci' +lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 0 (expected 0) + MS current power 15 -> 15 (expected 15) +lchan_ms_pwr_ctrl(RxLvl=-100 dBm) returns 1 (expected 1) + MS current power 15 -> 13 (expected 13) +lchan_ms_pwr_ctrl(RxLvl=-100 dBm) returns 1 (expected 1) + MS current power 13 -> 11 (expected 11) +lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 1 (expected 1) + MS current power 11 -> 12 (expected 12) +lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 1 (expected 1) + MS current power 12 -> 13 (expected 13) +lchan_ms_pwr_ctrl(RxLvl=-100 dBm) returns 1 (expected 1) + MS current power 13 -> 11 (expected 11) +lchan_ms_pwr_ctrl(RxLvl=-100 dBm) returns 1 (expected 1) + MS current power 11 -> 12 (expected 12) +lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 1 (expected 1) + MS current power 12 -> 13 (expected 13) +lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 1 (expected 1) + MS current power 13 -> 14 (expected 14) Power loop test OK -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25268 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dfd8ff9ab6b499646498b507624758dcc160fb6 Gerrit-Change-Number: 25268 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:37 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Support EWMA algorithm for C/I measurements In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25324 ) Change subject: MS Power Control Loop: Support EWMA algorithm for C/I measurements ...................................................................... MS Power Control Loop: Support EWMA algorithm for C/I measurements Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Related: SYS#4917 --- M include/osmo-bts/gsm_data.h M src/common/power_control.c 2 files changed, 29 insertions(+), 19 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 979e6d9..256cf21 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -242,6 +242,7 @@ const struct gsm_power_ctrl_params *dpc_params; /* Measurement pre-processing state (for dynamic mode) */ struct gsm_power_ctrl_meas_proc_state rxlev_meas_proc; + struct gsm_power_ctrl_meas_proc_state ci_meas_proc; /* Number of SACCH blocks to skip (for dynamic mode) */ int skip_block_num; diff --git a/src/common/power_control.c b/src/common/power_control.c index 9d874c4..80157f2 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -92,29 +92,31 @@ #define CALC_TARGET(mp) \ ((mp).lower_thresh + (mp).upper_thresh) / 2 -/* Calculate a 'delta' value (for the given MS/BS power control state and parameters) - * to be applied to the current Tx power level to approach the target level. */ -static int calc_delta(const struct gsm_power_ctrl_params *params, - struct lchan_power_ctrl_state *state, - const int rxlev_dbm) +static int do_avg_algo(const struct gsm_power_ctrl_meas_params *mp, + struct gsm_power_ctrl_meas_proc_state *mps, + const int val) { - int rxlev_dbm_avg; - uint8_t rxlev_avg; - int delta; - - /* Filter RxLev value to reduce unnecessary Tx power oscillations */ - switch (params->rxlev_meas.algo) { + int val_avg; + switch (mp->algo) { case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: - rxlev_dbm_avg = do_pf_ewma(¶ms->rxlev_meas, - &state->rxlev_meas_proc, - rxlev_dbm); + val_avg = do_pf_ewma(mp, mps, val); break; /* TODO: implement other pre-processing methods */ case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: default: /* No filtering (pass through) */ - rxlev_dbm_avg = rxlev_dbm; + val_avg = val; } + return val_avg; +} +/* Calculate a 'delta' value (for the given MS/BS power control state and parameters) + * to be applied to the current Tx power level to approach the target level. */ +static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, + struct lchan_power_ctrl_state *state, + const int rxlev_dbm_avg) +{ + uint8_t rxlev_avg; + int delta; /* FIXME: avoid this conversion, accept RxLev as-is */ rxlev_avg = dbm2rxlev(rxlev_dbm_avg); @@ -181,6 +183,8 @@ enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; + int8_t ul_rssi_dbm_avg; + int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; if (!trx_ms_pwr_ctrl_is_osmo(trx)) @@ -216,13 +220,15 @@ /* If computed C/I is out of acceptable thresholds: */ ci_meas = lchan_get_ci_thresholds(lchan); - if (ul_lqual_cb < ci_meas->lower_thresh * 10) { + ul_lqual_cb_avg = do_avg_algo(ci_meas, &state->ci_meas_proc, ul_lqual_cb); + ul_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, ul_rssi_dbm); + if (ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { new_dbm = ms_dbm + params->inc_step_size_db; - } else if (ul_lqual_cb > ci_meas->upper_thresh * 10) { + } else if (ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta(params, state, ul_rssi_dbm); + new_dbm = ms_dbm + calc_delta_rxlev(params, state, ul_rssi_dbm_avg); } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on @@ -281,6 +287,7 @@ uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; uint8_t rxqual, rxlev; + int8_t dl_rssi_dbm_avg; int delta, new; /* Check if dynamic BS Power Control is enabled */ @@ -334,6 +341,8 @@ rxlev = rxlev_full; } + dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev2dbm(rxlev)); + /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ if (rxqual > params->rxqual_meas.lower_thresh) { uint8_t old = state->current; @@ -355,7 +364,7 @@ } /* Calculate a 'delta' for the current attenuation level */ - delta = calc_delta(params, state, rxlev2dbm(rxlev)); + delta = calc_delta_rxlev(params, state, dl_rssi_dbm_avg); /* Basic signal transmission / reception formula: * -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25324 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I52eb0558fd7a215a6ee0b2aced189ae4a37d8a22 Gerrit-Change-Number: 25324 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:37 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Improve logging In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25325 ) Change subject: MS Power Control Loop: Improve logging ...................................................................... MS Power Control Loop: Improve logging Change-Id: I8babd42566c41935079fd414d930ebf2d737892e --- M src/common/power_control.c M tests/power/ms_power_loop_test.err 2 files changed, 70 insertions(+), 70 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index 80157f2..d23153f 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -248,25 +248,25 @@ return 0; } - /* FIXME: this is only needed for logging, print thresholds instead */ - int target_dbm = rxlev2dbm(CALC_TARGET(params->rxlev_meas)); - if (state->current == new_power_lvl) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " - "(rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", RSSI[curr %d, tgt %d] dBm," - " C/I[curr %d, tgt %d] dB)\n", - new_power_lvl, new_dbm, ms_power_lvl, state->max, - ul_rssi_dbm, target_dbm, ul_lqual_cb/10, CALC_TARGET(*ci_meas)); + "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," + " C/I[curr %d, avg %d, thresh %d..%d] dB\n", + new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); return 0; } current_dbm = ms_pwr_dbm(band, state->current); LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power control level %d (%d dBm) => %d (%d dBm): " - "rx-ms-pwr-lvl %" PRIu8 ", max-ms-pwr-lvl %" PRIu8 ", RSSI[curr %d, tgt %d] dBm," - " C/I[curr %d, tgt %d] dB\n", + "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," + " C/I[curr %d, avg %d, thresh %d..%d] dB\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", state->current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, - state->max, ul_rssi_dbm, target_dbm, ul_lqual_cb/10, CALC_TARGET(*ci_meas)); + state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 55092db..894756b 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -1,60 +1,60 @@ -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm): (rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 2 (26 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 2, max-ms-pwr-lvl 0, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 0 (30 dBm): (rx-ms-pwr-lvl 0, max-ms-pwr-lvl 0, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 0 (30 dBm) => 30 (34 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 30 (34 dBm) => 29 (36 dBm): rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): (rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): rx-ms-pwr-lvl 29, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): rx-ms-pwr-lvl 30, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 31, max-ms-pwr-lvl 29, RSSI[curr -45, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 1 (28 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 29, RSSI[curr -73, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 1 (28 dBm) => 0 (30 dBm): rx-ms-pwr-lvl 1, max-ms-pwr-lvl 29, RSSI[curr -77, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 14 (2 dBm): rx-ms-pwr-lvl 0, max-ms-pwr-lvl 14, RSSI[curr -73, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): rx-ms-pwr-lvl 14, max-ms-pwr-lvl 0, RSSI[curr -40, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -70, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -50, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -50, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -110, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -72, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -78, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -75, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -70, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -80, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -85, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): rx-ms-pwr-lvl 7, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): rx-ms-pwr-lvl 5, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): rx-ms-pwr-lvl 3, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): (rx-ms-pwr-lvl 2, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): rx-ms-pwr-lvl 9, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -90, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): (rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB) -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 15, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 11, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 11, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 12, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 17, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): rx-ms-pwr-lvl 11, max-ms-pwr-lvl 2, RSSI[curr -100, tgt -75] dBm, C/I[curr 17, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): rx-ms-pwr-lvl 12, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 14, tgt 14] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): rx-ms-pwr-lvl 13, max-ms-pwr-lvl 2, RSSI[curr -60, tgt -75] dBm, C/I[curr 17, tgt 14] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): ms-pwr-lvl[curr 7, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 5 (20 dBm): ms-pwr-lvl[curr 5, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): ms-pwr-lvl[curr 5, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): ms-pwr-lvl[curr 3, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): ms-pwr-lvl[curr 2, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 2 (26 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 2, max 0], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 0 (30 dBm): ms-pwr-lvl[curr 0, max 0], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 0 (30 dBm) => 30 (34 dBm): ms-pwr-lvl[curr 0, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 30 (34 dBm) => 29 (36 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 31, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 1 (28 dBm): ms-pwr-lvl[curr 0, max 29], RSSI[curr -73, avg -73, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 1 (28 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 1, max 29], RSSI[curr -77, avg -77, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 0, max 14], RSSI[curr -73, avg -73, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): ms-pwr-lvl[curr 14, max 0], RSSI[curr -40, avg -40, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -80, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -110, avg -92, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -72, avg -72, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -78, avg -78, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -70, avg -70, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -80, avg -80, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -85, avg -85, thresh -80..-70] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 7 (16 dBm) => 5 (20 dBm): ms-pwr-lvl[curr 7, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 5 (20 dBm) => 3 (24 dBm): ms-pwr-lvl[curr 5, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 3 (24 dBm) => 2 (26 dBm): ms-pwr-lvl[curr 3, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 2 (26 dBm): ms-pwr-lvl[curr 2, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 9 (12 dBm) => 7 (16 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 11, avg 11, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 11, avg 11, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8babd42566c41935079fd414d930ebf2d737892e Gerrit-Change-Number: 25325 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:38 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() This commit reworks the code in function lchan_bs_pwr_ctrl() and logging to look similar to that of lchan_ms_pwr_ctrl(), so that reader can easily spot similarities between both and add simillar features more easily. This commit is also a preparation to add EWMA avg support for RxQual measurements. Logging is also reworked now to look similar to that of MS Power Control Loop, because having several parameters driving the algo (RxLev and RxQual), it becomes more suitable to log all of them together instead of intermediate info only aplicable to one param such as "delta". Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 --- M src/common/power_control.c M tests/power/bs_power_loop_test.err 2 files changed, 138 insertions(+), 149 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index d23153f..4c3ff89 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -287,8 +287,8 @@ uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; uint8_t rxqual, rxlev; - int8_t dl_rssi_dbm_avg; - int delta, new; + int8_t dl_rssi_dbm, dl_rssi_dbm_avg; + int new_att; /* Check if dynamic BS Power Control is enabled */ if (params == NULL) @@ -341,68 +341,54 @@ rxlev = rxlev_full; } - dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev2dbm(rxlev)); - + dl_rssi_dbm = rxlev2dbm(rxlev); + dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dl_rssi_dbm); /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ if (rxqual > params->rxqual_meas.lower_thresh) { - uint8_t old = state->current; - - /* Tx power has reached the maximum, nothing to do */ - if (state->current == 0) - return 0; - /* Increase Tx power by reducing Tx attenuation */ - if (state->current >= params->inc_step_size_db) - state->current -= params->inc_step_size_db; - else - state->current = 0; - - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Reducing Downlink attenuation: " - "%u -> %d dB due to RxQual %u worse than L_RXQUAL_XX_P %u\n", - old, state->current, rxqual, params->rxqual_meas.lower_thresh); - return 1; + new_att = state->current - params->inc_step_size_db; + } else { + /* Basic signal transmission / reception formula: + * + * RxLev = TxPwr - (PathLoss + TxAtt) + * + * Here we want to change RxLev at the MS side, so: + * + * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta + * + * The only parameter we can change here is TxAtt, so: + * + * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta + * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) + */ + new_att = state->current - calc_delta_rxlev(params, state, dl_rssi_dbm_avg); } - /* Calculate a 'delta' for the current attenuation level */ - delta = calc_delta_rxlev(params, state, dl_rssi_dbm_avg); + /* Make sure new TxAtt is never negative: */ + if (new_att < 0) + new_att = 0; - /* Basic signal transmission / reception formula: - * - * RxLev = TxPwr - (PathLoss + TxAtt) - * - * Here we want to change RxLev at the MS side, so: - * - * RxLev + Delta = TxPwr - (PathLoss + TxAtt) + Delta - * - * The only parameter we can change here is TxAtt, so: - * - * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta - * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) - */ - new = state->current - delta; - if (new > state->max) - new = state->max; - if (new < 0) - new = 0; + /* Don't ask for higher TxAtt than permitted: */ + if (new_att > state->max) + new_att = state->max; - if (state->current != new) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Changing Downlink attenuation: " - "%u -> %u dB (maximum %u dB, suggested delta %d dB, " - "RxLev current %u (%d dBm), thresholds %u .. %u)\n", - state->current, new, state->max, - -delta, rxlev, rxlev2dbm(rxlev), - params->rxlev_meas.lower_thresh, - params->rxlev_meas.upper_thresh); - state->current = new; - return 1; - } else { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping Downlink attenuation " - "at %u dB (maximum %u dB, suggested delta %d dB, " - "RxLev current %u (%d dBm), thresholds %u .. %u)\n", - state->current, state->max, - -delta, rxlev, rxlev2dbm(rxlev), - params->rxlev_meas.lower_thresh, - params->rxlev_meas.upper_thresh); + if (state->current == new_att) { + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping DL attenuation at %u dB: " + "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " + "RxQual[curr %d, thresh %d..%d]\n", + state->current, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + rxqual, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); return 0; } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s DL attenuation %u dB => %u dB:" + "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " + "RxQual[curr %d, thresh %d..%d]\n", + (new_att > state->current) ? "Raising" : "Lowering", + state->current, new_att, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), + rxqual, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); + state->current = new_att; + return 1; } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index c4726b1..6af6c3f 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,196 +1,199 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 10 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 10 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 12 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 16 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 14 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 18 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 18 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 18 -> 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 18 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 16 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 16 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 12 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 8 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 4 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 8 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 12 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 16 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 20 dB (maximum 20 dB, suggested delta 4 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 20 -> 14 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 14 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 8 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 2 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 2 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 2 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta -6 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 11 dB (maximum 20 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 11 dB:max 20 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 32 (-78 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 20 dB, RSSI[curr -78, avg -78, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 13 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 13 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 16 dB (maximum 20 dB, suggested delta 3 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 13 dB => 16 dB:max 20 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 10 -> 9 dB (maximum 20 dB, suggested delta -1 dB, RxLev current 29 (-81 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 10 dB => 9 dB:max 20 dB, RSSI[curr -81, avg -81, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 9 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 9 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 9 -> 6 dB (maximum 20 dB, suggested delta -3 dB, RxLev current 27 (-83 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 9 dB => 6 dB:max 20 dB, RSSI[curr -83, avg -83, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 6 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 6 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 1 dB (maximum 20 dB, suggested delta -5 dB, RxLev current 25 (-85 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 6 dB => 1 dB:max 20 dB, RSSI[curr -85, avg -85, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 1 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 1 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 0 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 1, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 2, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 3, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 16 -> 12 dB due to RxQual 4 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 4, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 12 -> 8 dB due to RxQual 5 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -76, avg -76, thresh -80..-80] dBm, RxQual[curr 5, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 8 -> 4 dB due to RxQual 6 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -72, avg -72, thresh -80..-80] dBm, RxQual[curr 6, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Reducing Downlink attenuation: 4 -> 0 dB due to RxQual 7 worse than L_RXQUAL_XX_P 3 +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 46 (-64 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 44 (-66 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -66, avg -66, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 42 (-68 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 20 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 0 -> 2 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 2 -> 4 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 6 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 6 -> 8 dB (maximum 20 dB, suggested delta 2 dB, RxLev current 60 (-50 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 8 -> 4 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 4 -> 0 dB (maximum 20 dB, suggested delta -4 dB, RxLev current 10 (-100 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 13 dB (maximum 16 dB, suggested delta 1 dB, RxLev current 31 (-79 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 13 dB:max 16 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 13 dB (maximum 16 dB, suggested delta 2 dB, RxLev current 33 (-77 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 16 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 13 -> 11 dB (maximum 16 dB, suggested delta -2 dB, RxLev current 28 (-82 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 31 (-79 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -79, avg -79, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 33 (-77 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -77, avg -77, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 11 dB (maximum 16 dB, suggested delta 0 dB, RxLev current 28 (-82 dBm), thresholds 27 .. 33) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping Downlink attenuation at 16 dB (maximum 30 dB, suggested delta 0 dB, RxLev current 30 (-80 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 16 -> 14 dB (maximum 30 dB, suggested delta -2 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 14 dB:max 30 dB, RSSI[curr -84, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 14 -> 11 dB (maximum 30 dB, suggested delta -3 dB, RxLev current 26 (-84 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 11 dB:max 30 dB, RSSI[curr -84, avg -83, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 11 -> 12 dB (maximum 30 dB, suggested delta 1 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 12 dB:max 30 dB, RSSI[curr -75, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Changing Downlink attenuation: 12 -> 14 dB (maximum 30 dB, suggested delta 2 dB, RxLev current 35 (-75 dBm), thresholds 30 .. 30) +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 30 dB, RSSI[curr -75, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:39 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25326 ) Change subject: BS Power Control Loop: Support EWMA average algo for RxQual meas ...................................................................... BS Power Control Loop: Support EWMA average algo for RxQual meas params->rxqual_meas.upper_thresh is left unchecked in lchan_bs_pwr_ctrl() on this commit on purpose, to keep this commit with old behavior wrt to algo logic. Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf --- M include/osmo-bts/gsm_data.h M src/common/gsm_data.c M src/common/power_control.c M tests/power/bs_power_loop_test.err 4 files changed, 105 insertions(+), 102 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 256cf21..33cb2af 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -242,6 +242,7 @@ const struct gsm_power_ctrl_params *dpc_params; /* Measurement pre-processing state (for dynamic mode) */ struct gsm_power_ctrl_meas_proc_state rxlev_meas_proc; + struct gsm_power_ctrl_meas_proc_state rxqual_meas_proc; struct gsm_power_ctrl_meas_proc_state ci_meas_proc; /* Number of SACCH blocks to skip (for dynamic mode) */ int skip_block_num; diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 2da16bb..721bb45 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -524,7 +524,8 @@ .lower_thresh = 3, /* L_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ - /* FIXME: RxQual averaging is not yet implemented */ + /* No averaging (filtering) by default. + * NOTE: only Osmocom specific EWMA is supported */ .algo = GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE, }, diff --git a/src/common/power_control.c b/src/common/power_control.c index 4c3ff89..225198f 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -286,7 +286,7 @@ const struct gsm_power_ctrl_params *params = state->dpc_params; uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; - uint8_t rxqual, rxlev; + uint8_t rxqual, rxqual_avg, rxlev; int8_t dl_rssi_dbm, dl_rssi_dbm_avg; int new_att; @@ -343,8 +343,9 @@ dl_rssi_dbm = rxlev2dbm(rxlev); dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dl_rssi_dbm); + rxqual_avg = do_avg_algo(¶ms->rxqual_meas, &state->rxqual_meas_proc, rxqual); /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ - if (rxqual > params->rxqual_meas.lower_thresh) { + if (rxqual_avg > params->rxqual_meas.lower_thresh) { /* Increase Tx power by reducing Tx attenuation */ new_att = state->current - params->inc_step_size_db; } else { @@ -375,20 +376,20 @@ if (state->current == new_att) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping DL attenuation at %u dB: " "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " - "RxQual[curr %d, thresh %d..%d]\n", + "RxQual[curr %d, avg %d, thresh %d..%d]\n", state->current, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), - rxqual, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); + rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); return 0; } LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s DL attenuation %u dB => %u dB:" "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " - "RxQual[curr %d, thresh %d..%d]\n", + "RxQual[curr %d, avg %d, thresh %d..%d]\n", (new_att > state->current) ? "Raising" : "Lowering", state->current, new_att, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), - rxqual, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); + rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); state->current = new_att; return 1; } diff --git a/tests/power/bs_power_loop_test.err b/tests/power/bs_power_loop_test.err index 6af6c3f..dc4f411 100644 --- a/tests/power/bs_power_loop_test.err +++ b/tests/power/bs_power_loop_test.err @@ -1,199 +1,199 @@ (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 10 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 10 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 14 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 14 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 18 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 18 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 18 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 18 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 16 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 16 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 8 dB => 12 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 16 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 16 dB => 20 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 20 dB: max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 14 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 20 dB => 14 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 8 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 2 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 2 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 2 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 2 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 11 dB:max 20 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 10 dB => 11 dB:max 20 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(32), RXQUAL-FULL(0), RXLEV-SUB(32), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 20 dB, RSSI[curr -78, avg -78, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 20 dB, RSSI[curr -78, avg -78, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 13 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 13 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 13 dB => 16 dB:max 20 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 13 dB => 16 dB:max 20 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(29), RXQUAL-FULL(0), RXLEV-SUB(29), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 10 dB => 9 dB:max 20 dB, RSSI[curr -81, avg -81, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 10 dB => 9 dB:max 20 dB, RSSI[curr -81, avg -81, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 9 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 9 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(27), RXQUAL-FULL(0), RXLEV-SUB(27), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 9 dB => 6 dB:max 20 dB, RSSI[curr -83, avg -83, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 9 dB => 6 dB:max 20 dB, RSSI[curr -83, avg -83, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 6 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 6 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(25), RXQUAL-FULL(0), RXLEV-SUB(25), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 6 dB => 1 dB:max 20 dB, RSSI[curr -85, avg -85, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 6 dB => 1 dB:max 20 dB, RSSI[curr -85, avg -85, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 1 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 1 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(00), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(63), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is enabled => using SUB -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(1), RXLEV-SUB(30), RXQUAL-SUB(1), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 1, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 1, avg 1, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(2), RXLEV-SUB(30), RXQUAL-SUB(2), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 2, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 2, avg 2, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(3), RXLEV-SUB(30), RXQUAL-SUB(3), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 3, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 3, avg 3, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(4), RXLEV-SUB(30), RXQUAL-SUB(4), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 4, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 12 dB:max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 4, avg 4, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(34), RXQUAL-FULL(5), RXLEV-SUB(34), RXQUAL-SUB(5), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -76, avg -76, thresh -80..-80] dBm, RxQual[curr 5, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 12 dB => 8 dB:max 20 dB, RSSI[curr -76, avg -76, thresh -80..-80] dBm, RxQual[curr 5, avg 5, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(38), RXQUAL-FULL(6), RXLEV-SUB(38), RXQUAL-SUB(6), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -72, avg -72, thresh -80..-80] dBm, RxQual[curr 6, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -72, avg -72, thresh -80..-80] dBm, RxQual[curr 6, avg 6, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(7), RXLEV-SUB(42), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(7), RXLEV-SUB(46), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(46), RXQUAL-FULL(0), RXLEV-SUB(46), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -64, avg -64, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(44), RXQUAL-FULL(0), RXLEV-SUB(44), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -66, avg -66, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -66, avg -66, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(42), RXQUAL-FULL(0), RXLEV-SUB(42), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -68, avg -68, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(7), RXLEV-SUB(30), RXQUAL-SUB(7), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 0 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 7, avg 7, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) The measurement results are not valid (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 20 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 0 dB => 2 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 2 dB => 4 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 4 dB => 6 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 6 dB => 8 dB:max 20 dB, RSSI[curr -50, avg -50, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(60), RXQUAL-FULL(0), RXLEV-SUB(60), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 8 dB => 4 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(10), RXQUAL-FULL(0), RXLEV-SUB(10), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 4 dB => 0 dB:max 20 dB, RSSI[curr -100, avg -100, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 13 dB:max 16 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 13 dB:max 16 dB, RSSI[curr -79, avg -79, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 16 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 13 dB:max 16 dB, RSSI[curr -77, avg -77, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 13 dB => 11 dB:max 16 dB, RSSI[curr -82, avg -82, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(31), RXQUAL-FULL(0), RXLEV-SUB(31), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -79, avg -79, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -79, avg -79, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(33), RXQUAL-FULL(0), RXLEV-SUB(33), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -77, avg -77, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -77, avg -77, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(28), RXQUAL-FULL(0), RXLEV-SUB(28), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 11 dB: max 16 dB, RSSI[curr -82, avg -82, thresh -83..-77] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(30), RXQUAL-FULL(0), RXLEV-SUB(30), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Keeping DL attenuation at 16 dB: max 30 dB, RSSI[curr -80, avg -80, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 14 dB:max 30 dB, RSSI[curr -84, avg -82, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 16 dB => 14 dB:max 30 dB, RSSI[curr -84, avg -82, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(26), RXQUAL-FULL(0), RXLEV-SUB(26), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 11 dB:max 30 dB, RSSI[curr -84, avg -83, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Lowering DL attenuation 14 dB => 11 dB:max 30 dB, RSSI[curr -84, avg -83, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 12 dB:max 30 dB, RSSI[curr -75, avg -79, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 11 dB => 12 dB:max 30 dB, RSSI[curr -75, avg -79, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] (bts=0,trx=0,ts=0,ss=0) Rx DL Measurement Report: RXLEV-FULL(35), RXQUAL-FULL(0), RXLEV-SUB(35), RXQUAL-SUB(0), DTx is disabled => using FULL -(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 30 dB, RSSI[curr -75, avg -77, thresh -80..-80] dBm, RxQual[curr 0, thresh 3..0] +(bts=0,trx=0,ts=0,ss=0) Raising DL attenuation 12 dB => 14 dB:max 30 dB, RSSI[curr -75, avg -77, thresh -80..-80] dBm, RxQual[curr 0, avg 0, thresh 3..0] -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25326 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If7e3987df89d680cfa443195ab2f225681d0e6cf Gerrit-Change-Number: 25326 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:06:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:41 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25327 ) Change subject: BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold ...................................................................... BS Power Control Loop: Increase attenuation if RxQual is better than upper threshold If RxQual is considered good enough, attenuation can be increased in order to lower overall cross-channel noise among different MS. Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 --- M src/common/power_control.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/common/power_control.c b/src/common/power_control.c index 225198f..cb96177 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -348,6 +348,9 @@ if (rxqual_avg > params->rxqual_meas.lower_thresh) { /* Increase Tx power by reducing Tx attenuation */ new_att = state->current - params->inc_step_size_db; + } else if (rxqual_avg < params->rxqual_meas.upper_thresh) { + /* Increase Tx power by Increasing Tx attenuation */ + new_att = state->current + params->red_step_size_db; } else { /* Basic signal transmission / reception formula: * -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25327 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie97898980acd152de15f6b4b619d492048855ef4 Gerrit-Change-Number: 25327 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 Mon Sep 6 10:06:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:42 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25328 ) Change subject: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels ...................................................................... MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations directly on RxLevels Before this comits, averaging and delta calculation was done in RSSI, but stored the averaging cached state in variables named "rxlev", which was really confusing. Let's keeping averaging and delta calculations based on RxLevels. Some of the tests change results due to test passing RSSI -45, which is an invalid Rxlev (only up to -47 is supported). Others fail due to an unrelated bug showing up now. Basically the averaging algo is doing rounding the wrong way when downscaling the values. It will be fixed in a follow-up commit. Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 49 insertions(+), 57 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/common/power_control.c b/src/common/power_control.c index cb96177..b3066cd 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -113,22 +113,18 @@ * to be applied to the current Tx power level to approach the target level. */ static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, struct lchan_power_ctrl_state *state, - const int rxlev_dbm_avg) + const uint8_t rxlev) { - uint8_t rxlev_avg; int delta; - /* FIXME: avoid this conversion, accept RxLev as-is */ - rxlev_avg = dbm2rxlev(rxlev_dbm_avg); - /* Check if RxLev is within the threshold window */ - if (rxlev_avg >= params->rxlev_meas.lower_thresh && - rxlev_avg <= params->rxlev_meas.upper_thresh) + if (rxlev >= params->rxlev_meas.lower_thresh && + rxlev <= params->rxlev_meas.upper_thresh) return 0; /* How many dBs measured power should be increased (+) or decreased (-) * to reach expected power. */ - delta = CALC_TARGET(params->rxlev_meas) - rxlev_avg; + delta = CALC_TARGET(params->rxlev_meas) - rxlev; /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop * iteration, i.e. reduce the speed at which the MS transmit power can @@ -183,7 +179,7 @@ enum gsm_band band = bts->band; int8_t new_power_lvl; /* TS 05.05 power level */ int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; - int8_t ul_rssi_dbm_avg; + uint8_t rxlev_avg; int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; @@ -221,14 +217,14 @@ /* If computed C/I is out of acceptable thresholds: */ ci_meas = lchan_get_ci_thresholds(lchan); ul_lqual_cb_avg = do_avg_algo(ci_meas, &state->ci_meas_proc, ul_lqual_cb); - ul_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, ul_rssi_dbm); + rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dbm2rxlev(ul_rssi_dbm)); if (ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { new_dbm = ms_dbm + params->inc_step_size_db; } else if (ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta_rxlev(params, state, ul_rssi_dbm_avg); + new_dbm = ms_dbm + calc_delta_rxlev(params, state, rxlev_avg); } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on @@ -252,7 +248,7 @@ LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," " C/I[curr %d, avg %d, thresh %d..%d] dB\n", - new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); return 0; @@ -264,7 +260,7 @@ " C/I[curr %d, avg %d, thresh %d..%d] dB\n", (new_dbm > current_dbm) ? "Raising" : "Lowering", state->current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, - state->max, ul_rssi_dbm, ul_rssi_dbm_avg, + state->max, ul_rssi_dbm, rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); @@ -286,8 +282,7 @@ const struct gsm_power_ctrl_params *params = state->dpc_params; uint8_t rxqual_full, rxqual_sub; uint8_t rxlev_full, rxlev_sub; - uint8_t rxqual, rxqual_avg, rxlev; - int8_t dl_rssi_dbm, dl_rssi_dbm_avg; + uint8_t rxqual, rxqual_avg, rxlev, rxlev_avg; int new_att; /* Check if dynamic BS Power Control is enabled */ @@ -341,8 +336,7 @@ rxlev = rxlev_full; } - dl_rssi_dbm = rxlev2dbm(rxlev); - dl_rssi_dbm_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dl_rssi_dbm); + rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, rxlev); rxqual_avg = do_avg_algo(¶ms->rxqual_meas, &state->rxqual_meas_proc, rxqual); /* If RxQual > L_RXQUAL_XX_P, try to increase Tx power */ if (rxqual_avg > params->rxqual_meas.lower_thresh) { @@ -365,7 +359,7 @@ * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) */ - new_att = state->current - calc_delta_rxlev(params, state, dl_rssi_dbm_avg); + new_att = state->current - calc_delta_rxlev(params, state, rxlev_avg); } /* Make sure new TxAtt is never negative: */ @@ -380,7 +374,7 @@ LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping DL attenuation at %u dB: " "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " "RxQual[curr %d, avg %d, thresh %d..%d]\n", - state->current, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + state->current, state->max, rxlev2dbm(rxlev), rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); return 0; @@ -390,7 +384,7 @@ "max %u dB, RSSI[curr %d, avg %d, thresh %d..%d] dBm, " "RxQual[curr %d, avg %d, thresh %d..%d]\n", (new_att > state->current) ? "Raising" : "Lowering", - state->current, new_att, state->max, dl_rssi_dbm, dl_rssi_dbm_avg, + state->current, new_att, state->max, rxlev2dbm(rxlev), rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), rxqual, rxqual_avg, params->rxqual_meas.lower_thresh, params->rxqual_meas.upper_thresh); state->current = new_att; diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index f0c0250..b9d6867 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -185,32 +185,30 @@ lchan->ms_power_ctrl.max = ms_pwr_ctl_lvl(GSM_BAND_1800, 26); OSMO_ASSERT(lchan->ms_power_ctrl.max == 2); -#define CHECK_UL_RSSI_AVG100(exp) \ - printf("\tAvg[t] is %2.2f dBm (expected %2.2f dBm)\n", \ +#define CHECK_RXLEV_AVG100(exp) \ + printf("\tAvg[t] is RxLev %2.2f (expected %2.2f)\n", \ ((float) *avg100) / 100, exp); /* UL RSSI remains constant => no UL power change */ apply_power_test(lchan, -75, good_lqual, 0, 15); - CHECK_UL_RSSI_AVG100(-75.00); + CHECK_RXLEV_AVG100((float)dbm2rxlev(-75)); /* RXLEV 35 */ - /* Avg[t] = (0.2 * -90) + (0.8 * -75) = -78.0 dBm */ - apply_power_test(lchan, -90, good_lqual, 1, 13); - CHECK_UL_RSSI_AVG100(-78.00); + /* Avg[t] = (0.2 * 20) + (0.8 * 35) = RXLEV 32, (-78 dBm) */ + apply_power_test(lchan, -90, good_lqual, 1, 13); /* -90 dBm = RXLEV 20 */ + CHECK_RXLEV_AVG100(32.00); - /* Avg[t] = (0.2 * -90) + (0.8 * -78) = -80.4 dBm */ - apply_power_test(lchan, -90, good_lqual, 1, 11); - CHECK_UL_RSSI_AVG100(-80.40); + /* Avg[t] = (0.2 * 20) + (0.8 * 32) = RXLEV 29.6 (-80.4 dBm) */ + apply_power_test(lchan, -90, good_lqual, 1, 11); /* -90 dBm = RXLEV 20 */ + CHECK_RXLEV_AVG100(29.60); - /* Avg[t] = (0.2 * -70) + (0.8 * -80.4) = -78.32 dBm, + /* Avg[t] = (0.2 * 40) + (0.8 * 29.60) = RXLEV 31.68 (-78.32 dBm), * but due to up-/down-scaling artefacts we get the following: * Avg100[t] = Avg100[t - 1] + A * (Pwr - Avg[t] / 100) - * Avg100[t] = -8040 + 20 * (-70 - (-8040 / 100)) - * Avg100[t] = -8040 + 20 * (-70 - (-8040 / 100)) - * Avg100[t] = -8040 + 20 * (-70 + 80) - * Avg100[t] = -8040 + 200 = -7840 - * Avg[t] = -7840 / 100 = -78.4 */ - apply_power_test(lchan, -70, good_lqual, 1, 9); - CHECK_UL_RSSI_AVG100(-78.40); + * Avg100[t] = 2960 + 20 * (40 - (2960 / 100)) + * Avg100[t] = 2960 + 20 * (40 - 29) + * Avg[t] = 3180 / 100 = 31.80 */ + apply_power_test(lchan, -70, good_lqual, 1, 9); /* RXLEV 40 */ + CHECK_RXLEV_AVG100(31.80); mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; @@ -218,17 +216,17 @@ (struct gsm_power_ctrl_meas_proc_state) { 0 }; /* This is the first sample, the filter outputs it as-is */ - apply_power_test(lchan, -50, good_lqual, 0, 15); - CHECK_UL_RSSI_AVG100(-50.00); + apply_power_test(lchan, -50, good_lqual, 0, 15); /* RXLEV 60 */ + CHECK_RXLEV_AVG100((float)dbm2rxlev(-50)); - /* Avg[t] = (0.7 * -50) + (0.3 * -50) = -50.0 dBm */ + /* Avg[t] = (0.7 * 60) + (0.3 * 60) = RXLEV 60 (-50.0 dBm) */ apply_power_test(lchan, -50, good_lqual, 0, 15); - CHECK_UL_RSSI_AVG100(-50.0); + CHECK_RXLEV_AVG100((float)dbm2rxlev(-50)); /* Simulate SACCH block loss (-110 dBm): - * Avg[t] = (0.7 * -110) + (0.3 * -50) = -92.0 dBm */ - apply_power_test(lchan, -110, good_lqual, 1, 13); - CHECK_UL_RSSI_AVG100(-92.0); + * Avg[t] = (0.7 * 0) + (0.3 * 60) = RXLEV 18.0 (-92.0 dBm) */ + apply_power_test(lchan, -110, good_lqual, 1, 13); /* RXLEV 0 */ + CHECK_RXLEV_AVG100(18.0); } static void test_power_hysteresis(void) diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 894756b..8ab6419 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -14,17 +14,17 @@ (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 30 (34 dBm) => 29 (36 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -90, avg -90, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 29 (36 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 31, max 29], RSSI[curr -45, avg -45, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 29 (36 dBm) => 30 (34 dBm): ms-pwr-lvl[curr 29, max 29], RSSI[curr -45, avg -47, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 30 (34 dBm) => 31 (32 dBm): ms-pwr-lvl[curr 30, max 29], RSSI[curr -45, avg -47, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 31 (32 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 31, max 29], RSSI[curr -45, avg -47, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 1 (28 dBm): ms-pwr-lvl[curr 0, max 29], RSSI[curr -73, avg -73, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 1 (28 dBm) => 0 (30 dBm): ms-pwr-lvl[curr 1, max 29], RSSI[curr -77, avg -77, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 0 (30 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 0, max 14], RSSI[curr -73, avg -73, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): ms-pwr-lvl[curr 14, max 0], RSSI[curr -40, avg -40, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): ms-pwr-lvl[curr 14, max 0], RSSI[curr -40, avg -47, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -80, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -81, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -79, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -110, avg -92, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index ccf2ddc..8c92b03 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -53,25 +53,25 @@ Starting test case 'test_pf_algo_ewma' lchan_ms_pwr_ctrl(RxLvl=-75 dBm) returns 0 (expected 0) MS current power 15 -> 15 (expected 15) - Avg[t] is -75.00 dBm (expected -75.00 dBm) + Avg[t] is RxLev 35.00 (expected 35.00) lchan_ms_pwr_ctrl(RxLvl=-90 dBm) returns 1 (expected 1) MS current power 15 -> 13 (expected 13) - Avg[t] is -78.00 dBm (expected -78.00 dBm) + Avg[t] is RxLev 32.00 (expected 32.00) lchan_ms_pwr_ctrl(RxLvl=-90 dBm) returns 1 (expected 1) MS current power 13 -> 11 (expected 11) - Avg[t] is -80.40 dBm (expected -80.40 dBm) + Avg[t] is RxLev 29.60 (expected 29.60) lchan_ms_pwr_ctrl(RxLvl=-70 dBm) returns 1 (expected 1) MS current power 11 -> 9 (expected 9) - Avg[t] is -78.40 dBm (expected -78.40 dBm) + Avg[t] is RxLev 31.80 (expected 31.80) lchan_ms_pwr_ctrl(RxLvl=-50 dBm) returns 0 (expected 0) MS current power 15 -> 15 (expected 15) - Avg[t] is -50.00 dBm (expected -50.00 dBm) + Avg[t] is RxLev 60.00 (expected 60.00) lchan_ms_pwr_ctrl(RxLvl=-50 dBm) returns 0 (expected 0) MS current power 15 -> 15 (expected 15) - Avg[t] is -50.00 dBm (expected -50.00 dBm) + Avg[t] is RxLev 60.00 (expected 60.00) lchan_ms_pwr_ctrl(RxLvl=-110 dBm) returns 1 (expected 1) MS current power 15 -> 13 (expected 13) - Avg[t] is -92.00 dBm (expected -92.00 dBm) + Avg[t] is RxLev 18.00 (expected 18.00) Starting test case 'test_power_hysteresis' lchan_ms_pwr_ctrl(RxLvl=-75 dBm) returns 0 (expected 0) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25328 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4cff8394f22b5d47789163051364ff594b2bcd74 Gerrit-Change-Number: 25328 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 Mon Sep 6 10:06:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:43 +0000 Subject: Change in osmo-bts[master]: MS/BS Power Control Loop: Fix downscaling averaging bug In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25329 ) Change subject: MS/BS Power Control Loop: Fix downscaling averaging bug ...................................................................... MS/BS Power Control Loop: Fix downscaling averaging bug The bug showed up in previous commit and is fixed in this commit. It can be seen how rounding error is carried over time in the average measurement, and affects final values. Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 11 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/common/power_control.c b/src/common/power_control.c index b3066cd..0362675 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -36,6 +36,8 @@ /* We don't want to deal with floating point, so we scale up */ #define EWMA_SCALE_FACTOR 100 +/* EWMA_SCALE_FACTOR/2 = +50: Round to nearest value when downscaling, otherwise floor() is applied. */ +#define EWMA_ROUND_FACTOR (EWMA_SCALE_FACTOR / 2) /* Base Low-Pass Single-Pole IIR Filter (EWMA) formula: * @@ -84,8 +86,8 @@ return Val; } - *Avg100 += A * (Val - *Avg100 / EWMA_SCALE_FACTOR); - return *Avg100 / EWMA_SCALE_FACTOR; + *Avg100 += A * (Val - (*Avg100 + EWMA_ROUND_FACTOR) / EWMA_SCALE_FACTOR); + return (*Avg100 + EWMA_ROUND_FACTOR) / EWMA_SCALE_FACTOR; } /* Calculate target RxLev value from lower/upper thresholds */ diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index b9d6867..5f83329 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -204,11 +204,11 @@ /* Avg[t] = (0.2 * 40) + (0.8 * 29.60) = RXLEV 31.68 (-78.32 dBm), * but due to up-/down-scaling artefacts we get the following: * Avg100[t] = Avg100[t - 1] + A * (Pwr - Avg[t] / 100) - * Avg100[t] = 2960 + 20 * (40 - (2960 / 100)) - * Avg100[t] = 2960 + 20 * (40 - 29) - * Avg[t] = 3180 / 100 = 31.80 */ + * Avg100[t] = 2960 + 20 * (40 - ((2960+50) / 100)) <- HERE we lose 0.1: (2960+50) / 100) = 30.1 + * Avg100[t] = 2960 + 20 * (40 - 30) <- HERE we lose 20*0.1 = 2.0! (upscaled, hence we lose finally 2.0/100=0.2) + * Avg[t] = (3160) / 100 = 31.60*/ apply_power_test(lchan, -70, good_lqual, 1, 9); /* RXLEV 40 */ - CHECK_RXLEV_AVG100(31.80); + CHECK_RXLEV_AVG100(31.60); mp->ewma.alpha = 70; /* 30% smoothing */ lchan->ms_power_ctrl.current = 15; diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 8ab6419..8f58882 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -23,8 +23,8 @@ (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 14 (2 dBm) => 15 (0 dBm): ms-pwr-lvl[curr 14, max 0], RSSI[curr -40, avg -47, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -75, avg -75, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (3 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -90, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -81, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -79, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 13 (4 dBm) => 11 (8 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -90, avg -80, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 11 (8 dBm) => 9 (11 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -70, avg -78, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 15 (0 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -50, avg -50, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Raising MS power control level 15 (0 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 15, max 2], RSSI[curr -110, avg -92, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 8c92b03..27992b1 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -62,7 +62,7 @@ Avg[t] is RxLev 29.60 (expected 29.60) lchan_ms_pwr_ctrl(RxLvl=-70 dBm) returns 1 (expected 1) MS current power 11 -> 9 (expected 9) - Avg[t] is RxLev 31.80 (expected 31.80) + Avg[t] is RxLev 31.60 (expected 31.60) lchan_ms_pwr_ctrl(RxLvl=-50 dBm) returns 0 (expected 0) MS current power 15 -> 15 (expected 15) Avg[t] is RxLev 60.00 (expected 60.00) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25329 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I680d1c94bd4bae179b14b26662a819fa1462a5c8 Gerrit-Change-Number: 25329 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 Mon Sep 6 10:06:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:06:47 +0000 Subject: Change in osmo-bsc[master]: cosmetic: power_ctrl_params_def: Fix typo in comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25337 ) Change subject: cosmetic: power_ctrl_params_def: Fix typo in comment ...................................................................... cosmetic: power_ctrl_params_def: Fix typo in comment Change-Id: Ibbbb073fa674666f47d84d8e670790c4028ba874 --- M src/osmo-bsc/gsm_data.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: 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 e976a5b..481329b 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1173,11 +1173,11 @@ .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ /* Increase {UL,DL}_TXPWR if at least LOWER_CMP_P averages - * out of LOWER_CMP_N averages are lower than L_RXLEV_XX_P */ + * out of LOWER_CMP_N averages are lower than L_RXQUAL_XX_P */ .lower_cmp_p = 5, /* P3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ .lower_cmp_n = 7, /* N3 as in 3GPP TS 45.008, A.3.2.1 (case c) */ /* Decrease {UL,DL}_TXPWR if at least UPPER_CMP_P averages - * out of UPPER_CMP_N averages are greater than L_RXLEV_XX_P */ + * out of UPPER_CMP_N averages are greater than L_RXQUAL_XX_P */ .upper_cmp_p = 15, /* P4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ .upper_cmp_n = 18, /* N4 as in 3GPP TS 45.008, A.3.2.1 (case d) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25337 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibbbb073fa674666f47d84d8e670790c4028ba874 Gerrit-Change-Number: 25337 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 Sep 6 10:07:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:07:58 +0000 Subject: Change in osmo-bts[master]: Do not transmit dummy RLC/MAC blocks on non-BCCH carriers In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/24855 ) Change subject: Do not transmit dummy RLC/MAC blocks on non-BCCH carriers ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/24855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2bf5271c4f1eaf5a975129f73091eb51cee50e57 Gerrit-Change-Number: 24855 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:08:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:08:03 +0000 Subject: Change in osmo-pcu[master]: Indicate to the BTS whether DATA.req contains a dummy block In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/24854 ) Change subject: Indicate to the BTS whether DATA.req contains a dummy block ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/24854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I72c7f0f0853f2bda77c20e3ec1bcd0c7c815c750 Gerrit-Change-Number: 24854 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Assignee: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:14:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 10:14:09 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Improve VTY snippet foot notes In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25338 ) Change subject: doc: power_control.adoc: Improve VTY snippet foot notes ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie5f129c418c187d4f331d6e92884f4f507fb018f Gerrit-Change-Number: 25338 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 10:14: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 Sep 6 10:27:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:27:33 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25356 ) Change subject: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL ...................................................................... doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL Original graph made by Vadim Yanitskiy. Change-Id: I9b76088b2d46973b477deb555214d64fcc746754 Related: SYS#5371 --- M doc/manuals/chapters/power_control.adoc 1 file changed, 16 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/56/25356/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 30c36b1..95adbb1 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -163,7 +163,22 @@ second Uplink SACCH block is skipped; value 2 corresponds to the interval of 1920 ms, so 3/4 received SACCH blocks are skipped. -3GPP TS 45.008 briefly mentiones this parameter in table A.1 (P_Con_INTERVAL). +3GPP TS 45.008 briefly mentions this parameter in table A.1 (P_Con_INTERVAL). + +A small time graph is depicted below for better understanding of the meaning of +values for this parameter, since it is not obvious at all. + +.Example: Suspension interval accomplished by several values of P_CON_INTERVAL +---- +|<-->| - one SACCH multi-frame period +| | +|----|----|----|----|----|----|----|----|----> SACCH multi-frames +a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s, default) +b) * * * * * P_CON_INTERVAL=1 (0.96 s) +c) * * * P_CON_INTERVAL=2 (1.92 s) +d) * * P_CON_INTERVAL=3 (2.88 s) +e) * * P_CON_INTERVAL=4 (3.84 s) +---- ==== Power change step size -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b76088b2d46973b477deb555214d64fcc746754 Gerrit-Change-Number: 25356 Gerrit-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 Sep 6 10:47:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 10:47:08 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... Patch Set 10: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25298/10/src/osmo-bsc/bts_osmobts.c File src/osmo-bsc/bts_osmobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/10/src/osmo-bsc/bts_osmobts.c at 83 PS10, Line 83: GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE (this is already ruled out by the 'if ((TO)->TYPE.ave_enabled) {') -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 10 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 10:47:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:47:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 10:47:54 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25356 ) Change subject: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b76088b2d46973b477deb555214d64fcc746754 Gerrit-Change-Number: 25356 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 06 Sep 2021 10:47:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:51:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:51:50 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25298 ) Change subject: MS Power Control Loop: Support set up of C/I parameters for osmo-bts ...................................................................... Patch Set 10: Code-Review+2 (1 comment) RE-adding laforge's +1 after rebasing. +1+1=+2. https://gerrit.osmocom.org/c/osmo-bsc/+/25298/10/src/osmo-bsc/bts_osmobts.c File src/osmo-bsc/bts_osmobts.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25298/10/src/osmo-bsc/bts_osmobts.c at 83 PS10, Line 83: GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE > (this is already ruled out by the 'if ((TO)->TYPE. [?] Still good to leave it there for completeness (gcc could warn due to missing case from enum). -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I7e76ec47b323d469f777624b74b08752d1f5584f Gerrit-Change-Number: 25298 Gerrit-PatchSet: 10 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:51:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:52:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 10:52:02 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Improve VTY snippet foot notes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25338 ) Change subject: doc: power_control.adoc: Improve VTY snippet foot notes ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25338 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie5f129c418c187d4f331d6e92884f4f507fb018f Gerrit-Change-Number: 25338 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 10:52:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 10:56:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 10:56:13 +0000 Subject: Change in osmo-ci[master]: jobs/gerrit-lint.yml: add lint jobs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/24703 ) Change subject: jobs/gerrit-lint.yml: add lint jobs ...................................................................... Patch Set 1: Verified+1 Code-Review+2 1+1=2, merging wiki extended: https://osmocom.org/projects/cellular-infrastructure/wiki/Linting#What-if-errors-from-the-linter-dont-make-sense -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/24703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic473a5c535dfbdda55751e53fc751ede1adde7e2 Gerrit-Change-Number: 24703 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 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 Mon Sep 6 10:56:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 10:56:26 +0000 Subject: Change in osmo-ci[master]: jobs/gerrit-lint.yml: add lint jobs In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/24703 ) Change subject: jobs/gerrit-lint.yml: add lint jobs ...................................................................... jobs/gerrit-lint.yml: add lint jobs Related: OS#5087 Change-Id: Ic473a5c535dfbdda55751e53fc751ede1adde7e2 --- A jobs/gerrit-lint.yml M jobs/gerrit-verifications.yml 2 files changed, 148 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved; Verified diff --git a/jobs/gerrit-lint.yml b/jobs/gerrit-lint.yml new file mode 100644 index 0000000..130b616 --- /dev/null +++ b/jobs/gerrit-lint.yml @@ -0,0 +1,147 @@ +# This file holds all gerrit lint verifications https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/. +# One cane simply add a gerrit job by adding project's repository to repos list. + +- project: + name: gerrit-lint + # following default values can be overridden by each repo + disabled: false + cmd: '~/osmo-ci/lint/lint_diff.sh HEAD~1' + gerrit_url: 'ssh://jenkins at gerrit.osmocom.org:29418' + repos_url: '{gerrit_url}/{repos}' + gerrit_project: '{repos}' + + # in alphabetical order + repos: + - asn1c + - cellmgr-ng + - libasn1c + - libgtpnl + - libosmo-abis + - libosmo-netif + - libosmo-sccp + - libosmocore + - libsmpp34 + - libtelnet + - libusrp + - openbsc + - openggsn + - osmo-bsc + - osmo-bts + + - osmo-ci: + # Run the lint script from the checked out branch + cmd: 'lint/lint_diff.sh HEAD~1' + + - osmo_dia2gsup: + repos_url: '{gerrit_url}/erlang/{repos}' + gerrit_project: 'erlang/{repos}' + + - osmo-e1-hardware + - osmo-ggsn + - osmo-gsm-manuals + + - osmo_gsup: + repos_url: '{gerrit_url}/erlang/{repos}' + gerrit_project: 'erlang/{repos}' + + - osmo-hlr + - osmo-iuh + - osmo-mgw + - osmo-msc + - osmo-pcap + - osmo-pcu + + - osmo-python-tests: + repos_url: '{gerrit_url}/python/{repos}' + gerrit_project: 'python/{repos}' + + - osmo-sgsn + + - osmo_ss7: + repos_url: '{gerrit_url}/erlang/{repos}' + gerrit_project: 'erlang/{repos}' + + - osmo-sip-connector + - osmo-trx + - osmocom-bb + - osmo-tetra + - osmo-sysmon + - osmo-remsim + - simtrace2 + - osmo-asf4-dfu + - osmo-ccid-firmware + - osmo-e1d + - osmo-cbc + - osmo-e1-recorder + - gapk + - osmo-uecups + - osmo-el2tpd + - osmo-smlc + - osmo-gbproxy + - pysim + + - osmo-ttcn3-hacks: + repos_url: 'https://gerrit.osmocom.org/{repos}' + + jobs: + - 'gerrit-{repos}-lint' + +- job-template: + name: 'gerrit-{repos}-lint' + project-type: freestyle + node: osmocom-gerrit-debian9 + disabled: '{obj:disabled}' + retry-count: 3 # scm checkout + properties: + - build-discarder: + days-to-keep: 30 + num-to-keep: 120 + artifact-days-to-keep: -1 + artifact-num-to-keep: -1 + description: | + Run linting on patches submitted to gerrit for + {repos} +

+ Related issue: OS#5087 + + scm: + - git: + url: '{obj:repos_url}' + credentials-id: d5eda5e9-b59d-44ba-88d2-43473cb6e42d + branches: + - $GERRIT_BRANCH + refspec: $GERRIT_REFSPEC + name: + choosing-strategy: gerrit + wipe-workspace: false + skip-tag: true + submodule: + recursive: false + + triggers: + - gerrit: + trigger-on: + - patchset-created-event: + exclude-drafts: true + exclude-no-code-change: true + projects: + - project-compare-type: 'PLAIN' + project-pattern: '{obj:gerrit_project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**' + skip-vote: + successful: false + failed: false + unstable: false + notbuilt: false + silent: false + escape-quotes: false + no-name-and-email: false + trigger-for-unreviewed-patches: true + server-name: gerrit.osmocom.org + + builders: + - shell: '{obj:cmd}' + +# vim: expandtab tabstop=2 shiftwidth=2 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 8efce77..59e332c 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -1,4 +1,4 @@ -# This file holds all gerrit verifications https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/. +# This file holds all gerrit build verifications https://jenkins.osmocom.org/jenkins/view/Jenkins-Gerrit/. # One cane simply add a gerrit job by adding project's repository to repos list. - project: -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/24703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ic473a5c535dfbdda55751e53fc751ede1adde7e2 Gerrit-Change-Number: 24703 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Hoernchen 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 Mon Sep 6 11:17:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 11:17:10 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Move skip loop logic to function helper References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25357 ) Change subject: Power Control Loop: Move skip loop logic to function helper ...................................................................... Power Control Loop: Move skip loop logic to function helper Let's move duplicate logic to function helper. Related: SYS#5371 Change-Id: Ic26c17564ec61cdadaab0184c4246b9bf863c69a --- M src/common/power_control.c 1 file changed, 21 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/57/25357/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 0362675..d57c28d 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -139,6 +139,23 @@ return delta; } +/* Shall we skip current block based on configured interval? */ +static bool ctrl_interval_skip_block(const struct gsm_power_ctrl_params *params, + struct lchan_power_ctrl_state *state) +{ + /* Power control interval: how many blocks do we skip? */ + if (state->skip_block_num-- > 0) + return true; + + /* Reset the number of SACCH blocks to be skipped: + * ctrl_interval=0 => 0 blocks to skip, + * ctrl_interval=1 => 1 blocks to skip, + * ctrl_interval=2 => 3 blocks to skip, + * so basically ctrl_interval * 2 - 1. */ + state->skip_block_num = params->ctrl_interval * 2 - 1; + return false; +} + static const struct gsm_power_ctrl_meas_params *lchan_get_ci_thresholds(const struct gsm_lchan *lchan) { const struct gsm_power_ctrl_params *params = lchan->ms_power_ctrl.dpc_params; @@ -190,17 +207,10 @@ if (params == NULL) return 0; - /* Power control interval: how many blocks do we skip? */ - if (state->skip_block_num-- > 0) + /* Shall we skip current block based on configured interval? */ + if (ctrl_interval_skip_block(params, state)) return 0; - /* Reset the number of SACCH blocks to be skipped: - * ctrl_interval=0 => 0 blocks to skip, - * ctrl_interval=1 => 1 blocks to skip, - * ctrl_interval=2 => 3 blocks to skip, - * so basically ctrl_interval * 2 - 1. */ - state->skip_block_num = params->ctrl_interval * 2 - 1; - ms_dbm = ms_pwr_dbm(band, ms_power_lvl); if (ms_dbm < 0) { LOGPLCHAN(lchan, DLOOP, LOGL_NOTICE, @@ -318,17 +328,10 @@ lchan->tch.dtx.dl_active ? "enabled" : "disabled", lchan->tch.dtx.dl_active ? "SUB" : "FULL"); - /* Power control interval: how many blocks do we skip? */ - if (state->skip_block_num-- > 0) + /* Shall we skip current block based on configured interval? */ + if (ctrl_interval_skip_block(params, state)) return 0; - /* Reset the number of SACCH blocks to be skipped: - * ctrl_interval=0 => 0 blocks to skip, - * ctrl_interval=1 => 1 blocks to skip, - * ctrl_interval=2 => 3 blocks to skip, - * so basically ctrl_interval * 2 - 1. */ - state->skip_block_num = params->ctrl_interval * 2 - 1; - /* If DTx is active on Downlink, use the '-SUB' */ if (lchan->tch.dtx.dl_active) { rxqual = rxqual_sub; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25357 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic26c17564ec61cdadaab0184c4246b9bf863c69a Gerrit-Change-Number: 25357 Gerrit-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 Sep 6 13:10:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 13:10:48 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c File src/utils.c: https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c at 1419 PS1, Line 1419: int osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val) > We probably want to have: [?] i specifically added the min max args because virtually all callers would do a range check with values other than INT64_MIN,INT64_MAX. It makes the code a lot shorter, with only one error clause. https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c at 1430 PS1, Line 1430: if (val < INT64_MIN) { > This looks wrong. [?] read 'man strtoll', it will return LLONG_MIN if the string value is smaller than the long long int range, and LLONG_MAX if the string value is larger than LLONG_MAX. That's the reason why i aim for the same here. it's a long long int, no idea if that can ever be larger than 64 bits??? i guess not in practice, but i'm not sure that that will never happen. No harm done either, right? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 13:10: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 Sep 6 13:17:40 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 13:17:40 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) > we should really add uint counterparts of these APIs. i would rather avoid API creep for each and every data type, pretty much all callers are way way within signed int range. a caller still needs an int as return arg with a cast like below, but that's still better than also needing the endptr arg and failing to do validity checks properly. https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/vty/cpu_sched_vty.c File src/vty/cpu_sched_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/vty/cpu_sched_vty.c at 303 PS4, Line 303: if (*res_pid != val) > This looks really strange. [?] that's because the range of pid_t is not well defined. I'm looking whether the cast falsifies the number value. if it does, we've surpassed pid_t range and rather bail. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 13:17:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 13:18:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 13:18:52 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) > i would rather avoid API creep for each and every data type, [?] ...arguably we could also do away with osmo_str_to_int() and only keep osmo_str_to_int64() -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 13:18:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 13:45:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 13:45:33 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 1: Code-Review+1 (1 comment) Fine in general, though I'd add APIs for unsigned counterparts too, I already saw the patches using these APIs for expected unsigned values and code looks bit fishy imho. https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c File src/utils.c: https://gerrit.osmocom.org/c/libosmocore/+/25345/1/src/utils.c at 1430 PS1, Line 1430: if (val < INT64_MIN) { > read 'man strtoll', it will return LLONG_MIN if the string value is smaller than the long long int r [?] Ah ok, indeed val is a long long int. In practice it shouldn't happen indeed, but fine with it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 13:45:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 13:48:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 13:48:41 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) > ... [?] Sure, and we could also use strtoll directly ;) but doing it in a particular way makes code more robust and clear, and imho having unsigned variants for these APIs accomplish that, since you avoid potential range problems. What if you need to parse an expected range of uint64_t? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 13:48:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:06:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:06:12 +0000 Subject: Change in osmo-bts[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25358 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/58/25358/1 diff --git a/debian/control b/debian/control index 5a42d19..3b8098b 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25358 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25358 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:06:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:06:12 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Bosmith/release=5D=3A_Bump_version=3A_1=2E3=2E2=2E1-16d3_=E2=86=92_1=2E3=2E3?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25359 ) Change subject: Bump version: 1.3.2.1-16d3 ? 1.3.3 ...................................................................... Bump version: 1.3.2.1-16d3 ? 1.3.3 Change-Id: Icf98f2e87c77e90ed8f4dc25924bda17a5f7f615 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/25359/1 diff --git a/debian/changelog b/debian/changelog index 85680dc..7c8d441 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-bts (1.3.3) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:24:34 +0200 + osmo-bts (1.3.2) unstable; urgency=medium * osmo-bts-trx: fix hopping pointer bug in trx_sched_fn() -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: osmith/release Gerrit-Change-Id: Icf98f2e87c77e90ed8f4dc25924bda17a5f7f615 Gerrit-Change-Number: 25359 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:06:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:06:57 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/60/25360/1 diff --git a/debian/control b/debian/control index cf70307..2bdb50e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25360 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:06:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:06:57 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-c7af_=E2=86=92_0=2E1=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 ) Change subject: Bump version: 0.1.0.1-c7af ? 0.1.1 ...................................................................... Bump version: 0.1.0.1-c7af ? 0.1.1 Change-Id: I3b4787bffa9dc9860b0b02ca89107f00580b7743 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/61/25361/1 diff --git a/debian/changelog b/debian/changelog index c6702cd..cbfec96 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-gbproxy (1:0.1.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:45:25 +0200 + osmo-gbproxy (1:0.1.0) unstable; urgency=medium [ Philipp Maier ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I3b4787bffa9dc9860b0b02ca89107f00580b7743 Gerrit-Change-Number: 25361 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:07:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:07:27 +0000 Subject: Change in osmo-hlr[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25362 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/62/25362/1 diff --git a/debian/control b/debian/control index 104799b..68bd475 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, python3-minimal, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25362 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:07:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:07:27 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Bosmith/release=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-9fee_=E2=86=92_1=2E3=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25363 ) Change subject: Bump version: 1.3.0.1-9fee ? 1.3.1 ...................................................................... Bump version: 1.3.0.1-9fee ? 1.3.1 Change-Id: I1d11caf44d9054e1be3b463ee36e22a4518a7f2a --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/63/25363/1 diff --git a/debian/changelog b/debian/changelog index 0ac618d..ecfc4c5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-hlr (1.3.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:48:52 +0200 + osmo-hlr (1.3.0) unstable; urgency=medium [ Alexander Couzens ] -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: osmith/release Gerrit-Change-Id: I1d11caf44d9054e1be3b463ee36e22a4518a7f2a Gerrit-Change-Number: 25363 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:07:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:07:57 +0000 Subject: Change in osmo-pcu[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25364 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/64/25364/1 diff --git a/debian/control b/debian/control index a8eae93..0e12f2e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>= 9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25364 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:07:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:07:58 +0000 Subject: =?UTF-8?Q?Change_in_osmo-pcu=5Bosmith/release=5D=3A_Bump_version=3A_0=2E9=2E0=2E1-9e02_=E2=86=92_0=2E9=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25365 ) Change subject: Bump version: 0.9.0.1-9e02 ? 0.9.1 ...................................................................... Bump version: 0.9.0.1-9e02 ? 0.9.1 Change-Id: I6270f7d7d8ace3f353f287ddb4c4d4dbcc26905f --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/65/25365/1 diff --git a/debian/changelog b/debian/changelog index dc42c0c..d9b68bf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-pcu (0.9.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:47:36 +0200 + osmo-pcu (0.9.0) unstable; urgency=medium [ Pau Espin Pedrol ] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: osmith/release Gerrit-Change-Id: I6270f7d7d8ace3f353f287ddb4c4d4dbcc26905f Gerrit-Change-Number: 25365 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:08:37 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25366 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/66/25366/1 diff --git a/debian/control b/debian/control index 7638015..c499bdd 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, osmo-gsm-manuals-dev, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25366 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:08:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:08:37 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E2=2E1-7d9c_=E2=86=92_0=2E2=2E3?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25367 ) Change subject: Bump version: 0.2.2.1-7d9c ? 0.2.3 ...................................................................... Bump version: 0.2.2.1-7d9c ? 0.2.3 Change-Id: I7563320d9e8717540857f2b3856412042a186402 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/67/25367/1 diff --git a/debian/changelog b/debian/changelog index 0ff1dea..ed838b0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-remsim (0.2.3) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:55:25 +0200 + osmo-remsim (0.2.2) unstable; urgency=medium [ Harald Welte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I7563320d9e8717540857f2b3856412042a186402 Gerrit-Change-Number: 25367 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:09:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:09:06 +0000 Subject: Change in osmo-sgsn[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25368 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/68/25368/1 diff --git a/debian/control b/debian/control index abc7595..bc9c8ab 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25368 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:09:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:09:07 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sgsn=5Bosmith/release=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-fc0c_=E2=86=92_1=2E7=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25369 ) Change subject: Bump version: 1.7.0.1-fc0c ? 1.7.1 ...................................................................... Bump version: 1.7.0.1-fc0c ? 1.7.1 Change-Id: I11c73a2b8b68ec34e0164b4abddbfe9c6fb7b7c3 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/69/25369/1 diff --git a/debian/changelog b/debian/changelog index 2edc6e6..065cf77 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-sgsn (1.7.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:57:14 +0200 + osmo-sgsn (1.7.0) unstable; urgency=medium [ Daniel Willmann ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: I11c73a2b8b68ec34e0164b4abddbfe9c6fb7b7c3 Gerrit-Change-Number: 25369 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:09:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:09:58 +0000 Subject: Change in osmo-sip-connector[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25370 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/70/25370/1 diff --git a/debian/control b/debian/control index 0de3953..cdcd470 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,6 @@ pkg-config, libsofia-sip-ua-glib-dev, libsofia-sip-ua-dev, - dh-systemd (>= 1.5), dh-autoreconf, libosmocore-dev (>= 1.5.0), osmo-gsm-manuals-dev -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:09:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 14:09:58 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sip-connector=5Bosmith/release=5D=3A_Bump_version=3A_1=2E5=2E0=2E1-ff92_=E2=86=92_1=2E5=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25371 ) Change subject: Bump version: 1.5.0.1-ff92 ? 1.5.1 ...................................................................... Bump version: 1.5.0.1-ff92 ? 1.5.1 Change-Id: I1274bc887b67f9073c3a8b1bb663780146a32df7 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/71/25371/1 diff --git a/debian/changelog b/debian/changelog index e147a38..4a5a49b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-sip-connector (1.5.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:58:54 +0200 + osmo-sip-connector (1.5.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: osmith/release Gerrit-Change-Id: I1274bc887b67f9073c3a8b1bb663780146a32df7 Gerrit-Change-Number: 25371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:11:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:11:29 +0000 Subject: Change in osmo-bts[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25358 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25358 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25358 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14:11:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:11:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:11:59 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Bosmith/release=5D=3A_Bump_version=3A_1=2E3=2E2=2E1-16d3_=E2=86=92_1=2E3=2E3?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25359 ) Change subject: Bump version: 1.3.2.1-16d3 ? 1.3.3 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: osmith/release Gerrit-Change-Id: Icf98f2e87c77e90ed8f4dc25924bda17a5f7f615 Gerrit-Change-Number: 25359 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14:11: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 Sep 6 14:12:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:12:23 +0000 Subject: Change in osmo-pcu[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25364 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25364 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14:12: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 Sep 6 14:12:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:12:31 +0000 Subject: =?UTF-8?Q?Change_in_osmo-pcu=5Bosmith/release=5D=3A_Bump_version=3A_0=2E9=2E0=2E1-9e02_=E2=86=92_0=2E9=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25365 ) Change subject: Bump version: 0.9.0.1-9e02 ? 0.9.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: osmith/release Gerrit-Change-Id: I6270f7d7d8ace3f353f287ddb4c4d4dbcc26905f Gerrit-Change-Number: 25365 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14:12:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:12:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:12:45 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25366 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25366 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14:12:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:12:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:12:56 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E2=2E1-7d9c_=E2=86=92_0=2E2=2E3?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25367 ) Change subject: Bump version: 0.2.2.1-7d9c ? 0.2.3 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I7563320d9e8717540857f2b3856412042a186402 Gerrit-Change-Number: 25367 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14: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 Mon Sep 6 14:13:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:13:09 +0000 Subject: Change in osmo-sgsn[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25368 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25368 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14:13:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:13:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:13:16 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sgsn=5Bosmith/release=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-fc0c_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25369 ) Change subject: Bump version: 1.7.0.1-fc0c ? 1.7.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: I11c73a2b8b68ec34e0164b4abddbfe9c6fb7b7c3 Gerrit-Change-Number: 25369 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 14: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 Sep 6 14:13:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:13:30 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25360 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 14:13:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:13:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:13:38 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-c7af_=E2=86=92_0=2E1=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 ) Change subject: Bump version: 0.1.0.1-c7af ? 0.1.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I3b4787bffa9dc9860b0b02ca89107f00580b7743 Gerrit-Change-Number: 25361 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 14:13:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:13:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:13:51 +0000 Subject: Change in osmo-sip-connector[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25370 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 14:13:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:13:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:13:58 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sip-connector=5Bosmith/release=5D=3A_Bump_version=3A_1=2E5=2E0=2E1-ff92_=E2=86=92_1=2E5=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25371 ) Change subject: Bump version: 1.5.0.1-ff92 ? 1.5.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: osmith/release Gerrit-Change-Id: I1274bc887b67f9073c3a8b1bb663780146a32df7 Gerrit-Change-Number: 25371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 14:13:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:14:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:14:20 +0000 Subject: Change in osmo-hlr[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25362 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25362 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 14:14:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:14:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:14:30 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Bosmith/release=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-9fee_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25363 ) Change subject: Bump version: 1.3.0.1-9fee ? 1.3.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: osmith/release Gerrit-Change-Id: I1d11caf44d9054e1be3b463ee36e22a4518a7f2a Gerrit-Change-Number: 25363 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 14: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 Mon Sep 6 14:19:27 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 14:19:27 +0000 Subject: Change in libosmocore[master]: gprs_ns2: improve reselection protection In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25150 ) Change subject: gprs_ns2: improve reselection protection ...................................................................... gprs_ns2: improve reselection protection Change-Id: I375a7639fb8e0f92fd67bb4176bd6219978aa428 --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 7a3729b..22ca7b2 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -2227,6 +2227,7 @@ gss->initial = NULL; ns2_prim_status_ind(gss->nse, NULL, 0, GPRS_NS2_AFF_CAUSE_SNS_NO_ENDPOINTS); osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 3); + gss->reselection_running = false; return; } else if (!gss->initial) { gss->initial = llist_first_entry(&gss->sns_endpoints, struct sns_endpoint, list); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25150 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I375a7639fb8e0f92fd67bb4176bd6219978aa428 Gerrit-Change-Number: 25150 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:19:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 14:19:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NS... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25151 ) Change subject: gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present ...................................................................... gprs_ns2_sns: ensure the SNS fsm behave correct when no signalling NSVCs are present When no remaining signalling NSVCs are available the SNS must be restarted (BSS) or go into unconfigured state (SGSN). Change-Id: I95e6bbb7a418d647a8426804879571597ae06ff8 --- M src/gb/gprs_ns2_sns.c 1 file changed, 19 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 22ca7b2..c1be0ab 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -201,6 +201,7 @@ if (reason) LOGPFSMLSRC(fi, LOGL_ERROR, file, line, "NSE %d: SNS failed: %s\n", gss->nse->nsei, reason); + gss->alive = false; if (gss->role == GPRS_SNS_ROLE_SGSN) { if (!gss->nse->persistent) gprs_ns2_free_nse(gss->nse); @@ -2599,19 +2600,33 @@ if (gss->block_no_nsvc_events) return; - if (alive == gss->alive) + if (gss->alive && nse->sum_sig_weight == 0) { + sns_failed(nse->bss_sns_fi, "No signalling NSVC available"); return; + } /* check if this is the current SNS NS-VC */ - if (nsvc == gss->sns_nsvc) { + if (nsvc == gss->sns_nsvc && !alive) { /* only replace the SNS NS-VC if there are other alive NS-VC. * There aren't any other alive NS-VC when the SNS fsm just reached CONFIGURED * and couldn't confirm yet if the NS-VC comes up */ - if (gss->alive && !alive) - ns2_sns_replace_nsvc(nsvc); + llist_for_each_entry(tmp, &nse->nsvc, list) { + if (nsvc == tmp) + continue; + if (ns2_vc_is_unblocked(nsvc)) { + ns2_sns_replace_nsvc(nsvc); + break; + } + } } + if (alive == gss->alive) + return; + if (alive) { + /* we need at least a signalling NSVC before become alive */ + if (nse->sum_sig_weight == 0) + return; gss->alive = true; osmo_fsm_inst_dispatch(nse->bss_sns_fi, NS2_SNS_EV_REQ_NSVC_ALIVE, NULL); } else { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25151 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I95e6bbb7a418d647a8426804879571597ae06ff8 Gerrit-Change-Number: 25151 Gerrit-PatchSet: 8 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:19:28 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 14:19:28 +0000 Subject: Change in libosmocore[master]: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25344 ) Change subject: gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC ...................................................................... gprs_ns2: ensure the incoming NSVC is also the outgoing NSVC Previous the SNS NSVC (the NSVC used for all SNS traffic) was never changed except when the choosen NSVC went dead or got freed. When receiving a SNS SIZE PDU over a different NSVC than the current SNS NSVC the answer would be transmitted to a different port. Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b --- M src/gb/gprs_ns2_sns.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve daniel: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index c1be0ab..7619b66 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -2326,8 +2326,7 @@ /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */ fi = nse->bss_sns_fi; gss = (struct ns2_sns_state *) fi->priv; - if (!gss->sns_nsvc) - gss->sns_nsvc = nsvc; + gss->sns_nsvc = nsvc; LOGPFSML(fi, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25344 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I36cd9488b8bca5cb99dae5cf50a55ee282e0557b Gerrit-Change-Number: 25344 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:19:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 14:19:39 +0000 Subject: Change in osmo-bts[master]: comsetic: measurement.c: fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25372 ) Change subject: comsetic: measurement.c: fix typo in comment ...................................................................... comsetic: measurement.c: fix typo in comment Change-Id: I3ed3486bbc3d55088e3ebe27e4a76f932d6f7a59 --- M src/common/measurement.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/25372/1 diff --git a/src/common/measurement.c b/src/common/measurement.c index b586987..4c49dc9 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -589,7 +589,7 @@ /* When AMR is used, we expect at least one SUB frame, since * the SACCH will always be SUB frame. There may occur more * SUB frames but since DTX periods in AMR are dynamic, we - * can not know how much exactly. */ + * can not know how many exactly. */ num_meas_sub_expect = 1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3ed3486bbc3d55088e3ebe27e4a76f932d6f7a59 Gerrit-Change-Number: 25372 Gerrit-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 Sep 6 14:53:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 14:53:53 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test: add second NSVC to allow SNS tests to work References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/25373 ) Change subject: ttcn3-ns-test: add second NSVC to allow SNS tests to work ...................................................................... ttcn3-ns-test: add second NSVC to allow SNS tests to work The SNS tests need both NSVCs. The NS_Tests.sns.cfg from the ttcn3 repository can be used as reference. Change-Id: I92f2ca61af1e3d0427e6810eddab8f2d6299242d --- M ttcn3-ns-test/sns/NS_Tests.cfg M ttcn3-ns-test/sns/osmo-ns-dummy.cfg 2 files changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/73/25373/1 diff --git a/ttcn3-ns-test/sns/NS_Tests.cfg b/ttcn3-ns-test/sns/NS_Tests.cfg index bc3c870..680e67e 100644 --- a/ttcn3-ns-test/sns/NS_Tests.cfg +++ b/ttcn3-ns-test/sns/NS_Tests.cfg @@ -22,6 +22,18 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.29.10", + local_udp_port := 22000, + remote_ip := "172.18.29.101", + remote_udp_port := 23001 + } + }, + nsvci := 1235 } } } diff --git a/ttcn3-ns-test/sns/osmo-ns-dummy.cfg b/ttcn3-ns-test/sns/osmo-ns-dummy.cfg index 985aff3..64ce4b1 100644 --- a/ttcn3-ns-test/sns/osmo-ns-dummy.cfg +++ b/ttcn3-ns-test/sns/osmo-ns-dummy.cfg @@ -89,8 +89,12 @@ timer tsns-config-retries 3 bind udp local listen 172.18.29.101 23000 - accept-ipaccess ip-sns signalling-weight 2 data-weight 2 + accept-ipaccess + bind udp local2 + listen 172.18.29.101 23001 + ip-sns signalling-weight 1 data-weight 1 + accept-ipaccess nse 1234 ip-sns-remote 172.18.29.10 22000 ip-sns-bind local -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I92f2ca61af1e3d0427e6810eddab8f2d6299242d Gerrit-Change-Number: 25373 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 14:53:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 14:53:53 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/25374 ) Change subject: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns ...................................................................... ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 --- A ttcn3-ns-test-sgsn-sns/jenkins.sh A ttcn3-ns-test-sgsn-sns/sgsn-sns A ttcn3-ns-test/jenkins-sgsn-sns.sh A ttcn3-ns-test/sgsn-sns/NS_Tests.cfg A ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg 5 files changed, 187 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/74/25374/1 diff --git a/ttcn3-ns-test-sgsn-sns/jenkins.sh b/ttcn3-ns-test-sgsn-sns/jenkins.sh new file mode 120000 index 0000000..b4143ac --- /dev/null +++ b/ttcn3-ns-test-sgsn-sns/jenkins.sh @@ -0,0 +1 @@ +../ttcn3-ns-test/jenkins-sgsn-sns.sh \ No newline at end of file diff --git a/ttcn3-ns-test-sgsn-sns/sgsn-sns b/ttcn3-ns-test-sgsn-sns/sgsn-sns new file mode 120000 index 0000000..761f95d --- /dev/null +++ b/ttcn3-ns-test-sgsn-sns/sgsn-sns @@ -0,0 +1 @@ +../ttcn3-ns-test/sgsn-sns/ \ No newline at end of file diff --git a/ttcn3-ns-test/jenkins-sgsn-sns.sh b/ttcn3-ns-test/jenkins-sgsn-sns.sh new file mode 100755 index 0000000..4460380 --- /dev/null +++ b/ttcn3-ns-test/jenkins-sgsn-sns.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "osmo-ns-$IMAGE_SUFFIX" \ + "ttcn3-ns-test" + +set_clean_up_trap +set -e + +SUBNET=32 +network_create $SUBNET + +mkdir $VOL_BASE_DIR/ns-tester +cp sgsn-sns/NS_Tests.cfg $VOL_BASE_DIR/ns-tester/ + +mkdir $VOL_BASE_DIR/ns +cp sgsn-sns/osmo-ns-dummy.cfg $VOL_BASE_DIR/ns/ + +echo Starting container with osmo-ns-dummy +docker run --rm \ + $(docker_network_params $SUBNET 101) \ + --ulimit core=-1 \ + -v $VOL_BASE_DIR/ns:/data \ + --name ${BUILD_TAG}-ns-sgsn-sns -d \ + $DOCKER_ARGS \ + $REPO_USER/osmo-ns-$IMAGE_SUFFIX \ + /bin/sh -c "/usr/local/bin/osmo-ns-dummy -c /data/osmo-ns-dummy.cfg -p 4240 >>/data/osmo-ns-dummy.log 2>&1" + +echo Starting container with NS testsuite +docker run --rm \ + $(docker_network_params $SUBNET 10) \ + --ulimit core=-1 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/ns-tester:/data \ + --name ${BUILD_TAG}-ttcn3-ns-test-sgsn-sns \ + $DOCKER_ARGS \ + $REPO_USER/ttcn3-ns-test diff --git a/ttcn3-ns-test/sgsn-sns/NS_Tests.cfg b/ttcn3-ns-test/sgsn-sns/NS_Tests.cfg new file mode 100644 index 0000000..d84f43c --- /dev/null +++ b/ttcn3-ns-test/sgsn-sns/NS_Tests.cfg @@ -0,0 +1,46 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/ns/NS_Tests.default" + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.NSVTY.CTRL_HOSTNAME := "172.18.32.101" + +[MODULE_PARAMETERS] +NS_Tests.mp_nsconfig := { + nsei := 1234, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.32.10", + local_udp_port := 22000, + remote_ip := "172.18.32.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.32.10", + local_udp_port := 22000, + remote_ip := "172.18.32.101", + remote_udp_port := 23001 + } + }, + nsvci := 1235 + } + } +} +NS_Tests.mp_dialect := NS2_DIALECT_SNS +NS_Tests.mp_sns_role := SNS_ROLE_SGSN + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg b/ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg new file mode 100644 index 0000000..d1c6bef --- /dev/null +++ b/ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg @@ -0,0 +1,100 @@ +! +! OsmoNSdummy (1.4.0.326-f57c-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category-hex 0 + logging print category 1 + logging print extended-timestamp 1 + logging print level 1 + logging print file basename + logging level force-all info + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +log gsmtap 172.18.32.10 + logging filter all 0 + logging color 1 + logging print category-hex 1 + logging print category 0 + logging timestamp 0 + logging print file 1 + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +! +stats reporter statsd + disable + remote-ip 172.18.32.10 + remote-port 8125 + mtu 1024 + level subscriber + prefix TTCN3 + flush-period 1 + enable +stats interval 0 +! +line vty + no login + bind 172.18.32.101 +! +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 12 + timer tns-alive 3 + timer tns-alive-retries 3 + timer tsns-prov 3 + timer tsns-size-retries 3 + timer tsns-config-retries 3 + bind udp local + listen 172.18.32.101 23000 + ip-sns signalling-weight 2 data-weight 2 + accept-ipaccess + bind udp local2 + listen 172.18.32.101 23001 + ip-sns signalling-weight 1 data-weight 1 + accept-ipaccess + nse 1234 ip-sns-role-sgsn + ip-sns-bind local + ip-sns-bind local2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 Gerrit-Change-Number: 25374 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:02:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:02:37 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr ...................................................................... jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr Depends: docker-playground I1a9205885d381c04141dad752de0b39d9268ab69 Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb --- M jobs/ttcn3-testsuites.yml 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/75/25375/1 diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index 1704327..e3e9f3e 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -126,6 +126,9 @@ blocking: "^(ttcn3|TTCN3-.*)-ns-test-fr.*" timer: 20 11 * * * node: hdlc + - ttcn3-ns-test-sgsn-sns: + blocking: "^(ttcn3|TTCN3-.*)-ns-test-sgsn-sns.*" + timer: 30 11 * * * - ttcn3-pcap-client-test: blocking: "^(ttcn3|TTCN3-.*)-pcap-client-test.*" timer: 40 11 * * * -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:08:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:08:13 +0000 Subject: Change in osmo-sgsn[osmith/release]: gtphub: remove llist_first, llist_last macros References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25376 ) Change subject: gtphub: remove llist_first, llist_last macros ...................................................................... gtphub: remove llist_first, llist_last macros Use list_first_entry_or_null instead of llist_first, which has been present in libosmocore since the 0.10.0 release. Use llist_last_entry instead of llist_last (also present since libosmocore 0.10.0). This macro does not have a check for an empty list, however the only user is already checking for an empty list before using the macro. This solves a build error, as llist_last was defined in libosmocore Icf455bf6ba9d60bd311af17c9e80febaa42cacc9 (should probably be reverted for backwards compatibility with previous osmo-sgsn versions?): gtphub.c:68:0: error: "llist_last" redefined [-Werror] #define llist_last(head, type, entry) \ In file included from /build/deps/install/stow/libosmocore/include/osmocom/core/timer.h:46:0, from /build/deps/install/stow/osmo-ggsn/include/gtp.h:17, from gtphub.c:32: /build/deps/install/stow/libosmocore/include/osmocom/core/linuxlist.h:245:0: note: this is the location of the previous definition #define llist_last(head) (head)->prev Change-Id: Ia0496c24386cd13b1e9e604aa2d425d3fa28d352 --- M src/gtphub/gtphub.c 1 file changed, 2 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/76/25376/1 diff --git a/src/gtphub/gtphub.c b/src/gtphub/gtphub.c index c24652e..4edcdf8 100644 --- a/src/gtphub/gtphub.c +++ b/src/gtphub/gtphub.c @@ -59,15 +59,6 @@ /* TODO move this to osmocom/core/select.h ? */ typedef int (*osmo_fd_cb_t)(struct osmo_fd *fd, unsigned int what); -/* TODO move this to osmocom/core/linuxlist.h ? */ -#define __llist_first(head) (((head)->next == (head)) ? NULL : (head)->next) -#define llist_first(head, type, entry) \ - llist_entry(__llist_first(head), type, entry) - -#define __llist_last(head) (((head)->next == (head)) ? NULL : (head)->prev) -#define llist_last(head, type, entry) \ - llist_entry(__llist_last(head), type, entry) - /* TODO move GTP header stuff to openggsn/gtp/ ? See gtp_decaps*() */ enum gtp_rc { @@ -613,7 +604,7 @@ OSMO_ASSERT(llist_empty(&exq->items) || (item->expiry - >= llist_last(&exq->items, struct expiring_item, entry)->expiry)); + >= llist_last_entry(&exq->items, struct expiring_item, entry)->expiry)); /* Add/move to the tail to always sort by expiry, ascending. */ llist_del(&item->entry); @@ -1142,9 +1133,7 @@ if (llist_empty(&peer->addresses)) return "(addressless)"; - struct gtphub_peer_addr *a = llist_first(&peer->addresses, - struct gtphub_peer_addr, - entry); + struct gtphub_peer_addr *a = llist_first_entry_or_null(&peer->addresses, struct gtphub_peer_addr, entry); return gsn_addr_to_strb(&a->addr, buf, buflen); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: Ia0496c24386cd13b1e9e604aa2d425d3fa28d352 Gerrit-Change-Number: 25376 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:08:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:08:13 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sgsn=5Bosmith/release=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-fc0c_=E2=86=92_1=2E7=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25377 ) Change subject: Bump version: 1.7.0.1-fc0c ? 1.7.1 ...................................................................... Bump version: 1.7.0.1-fc0c ? 1.7.1 Change-Id: Ia9d48cb2b878946df5809bac53c2bd2905903a58 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/77/25377/1 diff --git a/debian/changelog b/debian/changelog index 2edc6e6..561e01d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-sgsn (1.7.1) unstable; urgency=medium + + * gtphub: remove llist_first, llist_last macros + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 17:07:35 +0200 + osmo-sgsn (1.7.0) unstable; urgency=medium [ Daniel Willmann ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: Ia9d48cb2b878946df5809bac53c2bd2905903a58 Gerrit-Change-Number: 25377 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:09:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:09:21 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sgsn=5Bosmith/release=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-fc0c_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: osmith has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25369 ) Change subject: Bump version: 1.7.0.1-fc0c ? 1.7.1 ...................................................................... Abandoned added a patch to fix build failure with current libosmocore, got a new Change-Id after "make release" -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: I11c73a2b8b68ec34e0164b4abddbfe9c6fb7b7c3 Gerrit-Change-Number: 25369 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:11:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:11:55 +0000 Subject: Change in osmo-sgsn[osmith/release]: gtphub: remove llist_first, llist_last macros In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25376 ) Change subject: gtphub: remove llist_first, llist_last macros ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: Ia0496c24386cd13b1e9e604aa2d425d3fa28d352 Gerrit-Change-Number: 25376 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 15:11: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 Sep 6 15:12:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:12:03 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sgsn=5Bosmith/release=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-fc0c_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25377 ) Change subject: Bump version: 1.7.0.1-fc0c ? 1.7.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: Ia9d48cb2b878946df5809bac53c2bd2905903a58 Gerrit-Change-Number: 25377 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 06 Sep 2021 15:12: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 Sep 6 15:14:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:04 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25366 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/control b/debian/control index 7638015..c499bdd 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, osmo-gsm-manuals-dev, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25366 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:04 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E2=2E1-7d9c_=E2=86=92_0=2E2=2E3?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25367 ) Change subject: Bump version: 0.2.2.1-7d9c ? 0.2.3 ...................................................................... Bump version: 0.2.2.1-7d9c ? 0.2.3 Change-Id: I7563320d9e8717540857f2b3856412042a186402 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index 0ff1dea..ed838b0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-remsim (0.2.3) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:55:25 +0200 + osmo-remsim (0.2.2) unstable; urgency=medium [ Harald Welte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I7563320d9e8717540857f2b3856412042a186402 Gerrit-Change-Number: 25367 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:10 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/control b/debian/control index cf70307..2bdb50e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25360 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:11 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-c7af_=E2=86=92_0=2E1=2E1?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 ) Change subject: Bump version: 0.1.0.1-c7af ? 0.1.1 ...................................................................... Bump version: 0.1.0.1-c7af ? 0.1.1 Change-Id: I3b4787bffa9dc9860b0b02ca89107f00580b7743 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index c6702cd..cbfec96 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-gbproxy (1:0.1.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:45:25 +0200 + osmo-gbproxy (1:0.1.0) unstable; urgency=medium [ Philipp Maier ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I3b4787bffa9dc9860b0b02ca89107f00580b7743 Gerrit-Change-Number: 25361 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:14 +0000 Subject: Change in osmo-sip-connector[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25370 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/control b/debian/control index 0de3953..cdcd470 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,6 @@ pkg-config, libsofia-sip-ua-glib-dev, libsofia-sip-ua-dev, - dh-systemd (>= 1.5), dh-autoreconf, libosmocore-dev (>= 1.5.0), osmo-gsm-manuals-dev -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25370 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:15 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sip-connector=5Bosmith/release=5D=3A_Bump_version=3A_1=2E5=2E0=2E1-ff92_=E2=86=92_1=2E5=2E1?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sip-connector/+/25371 ) Change subject: Bump version: 1.5.0.1-ff92 ? 1.5.1 ...................................................................... Bump version: 1.5.0.1-ff92 ? 1.5.1 Change-Id: I1274bc887b67f9073c3a8b1bb663780146a32df7 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index e147a38..4a5a49b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-sip-connector (1.5.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:58:54 +0200 + osmo-sip-connector (1.5.0) unstable; urgency=medium [ Vadim Yanitskiy ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sip-connector/+/25371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: osmith/release Gerrit-Change-Id: I1274bc887b67f9073c3a8b1bb663780146a32df7 Gerrit-Change-Number: 25371 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:18 +0000 Subject: Change in osmo-hlr[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25362 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/control b/debian/control index 104799b..68bd475 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, python3-minimal, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25362 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:18 +0000 Subject: =?UTF-8?Q?Change_in_osmo-hlr=5Bosmith/release=5D=3A_Bump_version=3A_1=2E3=2E0=2E1-9fee_=E2=86=92_1=2E3=2E1?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hlr/+/25363 ) Change subject: Bump version: 1.3.0.1-9fee ? 1.3.1 ...................................................................... Bump version: 1.3.0.1-9fee ? 1.3.1 Change-Id: I1d11caf44d9054e1be3b463ee36e22a4518a7f2a --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 0ac618d..ecfc4c5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-hlr (1.3.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:48:52 +0200 + osmo-hlr (1.3.0) unstable; urgency=medium [ Alexander Couzens ] -- To view, visit https://gerrit.osmocom.org/c/osmo-hlr/+/25363 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: osmith/release Gerrit-Change-Id: I1d11caf44d9054e1be3b463ee36e22a4518a7f2a Gerrit-Change-Number: 25363 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:23 +0000 Subject: Change in osmo-pcu[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25364 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/control b/debian/control index a8eae93..0e12f2e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>= 9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25364 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25364 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:23 +0000 Subject: =?UTF-8?Q?Change_in_osmo-pcu=5Bosmith/release=5D=3A_Bump_version=3A_0=2E9=2E0=2E1-9e02_=E2=86=92_0=2E9=2E1?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25365 ) Change subject: Bump version: 0.9.0.1-9e02 ? 0.9.1 ...................................................................... Bump version: 0.9.0.1-9e02 ? 0.9.1 Change-Id: I6270f7d7d8ace3f353f287ddb4c4d4dbcc26905f --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index dc42c0c..d9b68bf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-pcu (0.9.1) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:47:36 +0200 + osmo-pcu (0.9.0) unstable; urgency=medium [ Pau Espin Pedrol ] -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25365 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: osmith/release Gerrit-Change-Id: I6270f7d7d8ace3f353f287ddb4c4d4dbcc26905f Gerrit-Change-Number: 25365 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:31 +0000 Subject: Change in osmo-bts[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25358 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/control b/debian/control index 5a42d19..3b8098b 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, libosmocore-dev (>= 1.5.0), -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25358 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25358 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:31 +0000 Subject: =?UTF-8?Q?Change_in_osmo-bts=5Bosmith/release=5D=3A_Bump_version=3A_1=2E3=2E2=2E1-16d3_=E2=86=92_1=2E3=2E3?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25359 ) Change subject: Bump version: 1.3.2.1-16d3 ? 1.3.3 ...................................................................... Bump version: 1.3.2.1-16d3 ? 1.3.3 Change-Id: Icf98f2e87c77e90ed8f4dc25924bda17a5f7f615 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index 85680dc..7c8d441 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-bts (1.3.3) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 15:24:34 +0200 + osmo-bts (1.3.2) unstable; urgency=medium * osmo-bts-trx: fix hopping pointer bug in trx_sched_fn() -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25359 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: osmith/release Gerrit-Change-Id: Icf98f2e87c77e90ed8f4dc25924bda17a5f7f615 Gerrit-Change-Number: 25359 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:47 +0000 Subject: Change in osmo-sgsn[osmith/release]: gtphub: remove llist_first, llist_last macros In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25376 ) Change subject: gtphub: remove llist_first, llist_last macros ...................................................................... gtphub: remove llist_first, llist_last macros Use list_first_entry_or_null instead of llist_first, which has been present in libosmocore since the 0.10.0 release. Use llist_last_entry instead of llist_last (also present since libosmocore 0.10.0). This macro does not have a check for an empty list, however the only user is already checking for an empty list before using the macro. This solves a build error, as llist_last was defined in libosmocore Icf455bf6ba9d60bd311af17c9e80febaa42cacc9 (should probably be reverted for backwards compatibility with previous osmo-sgsn versions?): gtphub.c:68:0: error: "llist_last" redefined [-Werror] #define llist_last(head, type, entry) \ In file included from /build/deps/install/stow/libosmocore/include/osmocom/core/timer.h:46:0, from /build/deps/install/stow/osmo-ggsn/include/gtp.h:17, from gtphub.c:32: /build/deps/install/stow/libosmocore/include/osmocom/core/linuxlist.h:245:0: note: this is the location of the previous definition #define llist_last(head) (head)->prev Change-Id: Ia0496c24386cd13b1e9e604aa2d425d3fa28d352 --- M src/gtphub/gtphub.c 1 file changed, 2 insertions(+), 13 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gtphub/gtphub.c b/src/gtphub/gtphub.c index c24652e..4edcdf8 100644 --- a/src/gtphub/gtphub.c +++ b/src/gtphub/gtphub.c @@ -59,15 +59,6 @@ /* TODO move this to osmocom/core/select.h ? */ typedef int (*osmo_fd_cb_t)(struct osmo_fd *fd, unsigned int what); -/* TODO move this to osmocom/core/linuxlist.h ? */ -#define __llist_first(head) (((head)->next == (head)) ? NULL : (head)->next) -#define llist_first(head, type, entry) \ - llist_entry(__llist_first(head), type, entry) - -#define __llist_last(head) (((head)->next == (head)) ? NULL : (head)->prev) -#define llist_last(head, type, entry) \ - llist_entry(__llist_last(head), type, entry) - /* TODO move GTP header stuff to openggsn/gtp/ ? See gtp_decaps*() */ enum gtp_rc { @@ -613,7 +604,7 @@ OSMO_ASSERT(llist_empty(&exq->items) || (item->expiry - >= llist_last(&exq->items, struct expiring_item, entry)->expiry)); + >= llist_last_entry(&exq->items, struct expiring_item, entry)->expiry)); /* Add/move to the tail to always sort by expiry, ascending. */ llist_del(&item->entry); @@ -1142,9 +1133,7 @@ if (llist_empty(&peer->addresses)) return "(addressless)"; - struct gtphub_peer_addr *a = llist_first(&peer->addresses, - struct gtphub_peer_addr, - entry); + struct gtphub_peer_addr *a = llist_first_entry_or_null(&peer->addresses, struct gtphub_peer_addr, entry); return gsn_addr_to_strb(&a->addr, buf, buflen); } -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25376 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: Ia0496c24386cd13b1e9e604aa2d425d3fa28d352 Gerrit-Change-Number: 25376 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:48 +0000 Subject: Change in osmo-sgsn[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25368 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/control b/debian/control index abc7595..bc9c8ab 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25368 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:14:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:14:48 +0000 Subject: =?UTF-8?Q?Change_in_osmo-sgsn=5Bosmith/release=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-fc0c_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25377 ) Change subject: Bump version: 1.7.0.1-fc0c ? 1.7.1 ...................................................................... Bump version: 1.7.0.1-fc0c ? 1.7.1 Change-Id: Ia9d48cb2b878946df5809bac53c2bd2905903a58 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/debian/changelog b/debian/changelog index 2edc6e6..561e01d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-sgsn (1.7.1) unstable; urgency=medium + + * gtphub: remove llist_first, llist_last macros + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 17:07:35 +0200 + osmo-sgsn (1.7.0) unstable; urgency=medium [ Daniel Willmann ] -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: osmith/release Gerrit-Change-Id: Ia9d48cb2b878946df5809bac53c2bd2905903a58 Gerrit-Change-Number: 25377 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:24:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:24:37 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25378 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I404d2996a2a16d116f9e8775967ae3d05ca0980b --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/78/25378/1 diff --git a/debian/control b/debian/control index 7638015..c499bdd 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, osmo-gsm-manuals-dev, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I404d2996a2a16d116f9e8775967ae3d05ca0980b Gerrit-Change-Number: 25378 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:24:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:24:39 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E3=2E1-2793_=E2=86=92_0=2E2=2E4?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25379 ) Change subject: Bump version: 0.2.3.1-2793 ? 0.2.4 ...................................................................... Bump version: 0.2.3.1-2793 ? 0.2.4 Change-Id: Id70d55091bcc823fce9448e41e401733e00b1d38 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/79/25379/1 diff --git a/debian/changelog b/debian/changelog index bfa626f..72c089c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-remsim (0.2.4) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 17:22:35 +0200 + osmo-remsim (0.2.3) unstable; urgency=medium [ Harald Welte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: Id70d55091bcc823fce9448e41e401733e00b1d38 Gerrit-Change-Number: 25379 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:25:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:25:19 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:25: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 Sep 6 15:25:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:25:57 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25374 ) Change subject: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 Gerrit-Change-Number: 25374 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15: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 Mon Sep 6 15:29:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:29:21 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25378 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I404d2996a2a16d116f9e8775967ae3d05ca0980b Gerrit-Change-Number: 25378 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:29: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 Sep 6 15:29:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:29:24 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E3=2E1-2793_=E2=86=92_0=2E2=2E4?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25379 ) Change subject: Bump version: 0.2.3.1-2793 ? 0.2.4 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: Id70d55091bcc823fce9448e41e401733e00b1d38 Gerrit-Change-Number: 25379 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:29: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 Sep 6 15:32:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:32:21 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E2=2E1-7d9c_=E2=86=92_0=2E2=2E3?= In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25367 ) Change subject: Bump version: 0.2.2.1-7d9c ? 0.2.3 ...................................................................... Patch Set 1: Note: I didn't run "git fetch --tags" prior to making this, so I didn't notice that there already was a 0.2.3 tag. Pushed a new patch to gerrit based on the existing 0.2.3 tag and didn't push my duplicate 0.2.3 tag. -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I7563320d9e8717540857f2b3856412042a186402 Gerrit-Change-Number: 25367 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:32:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:32:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:32:31 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25366 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Note: I didn't run "git fetch --tags" prior to making this, so I didn't notice that there already was a 0.2.3 tag. Pushed a new patch to gerrit based on the existing 0.2.3 tag and didn't push my duplicate 0.2.3 tag. -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25366 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I769bf61a2f3a97d55c65999436d2cb079c9170a0 Gerrit-Change-Number: 25366 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:32:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:32:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:32:51 +0000 Subject: Change in osmo-remsim[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25378 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I404d2996a2a16d116f9e8775967ae3d05ca0980b --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/control b/debian/control index 7638015..c499bdd 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,6 @@ Build-Depends: debhelper (>= 9), pkg-config, dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, pkg-config, osmo-gsm-manuals-dev, -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25378 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: I404d2996a2a16d116f9e8775967ae3d05ca0980b Gerrit-Change-Number: 25378 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:32:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:32:52 +0000 Subject: =?UTF-8?Q?Change_in_osmo-remsim=5Bosmith/release=5D=3A_Bump_version=3A_0=2E2=2E3=2E1-2793_=E2=86=92_0=2E2=2E4?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25379 ) Change subject: Bump version: 0.2.3.1-2793 ? 0.2.4 ...................................................................... Bump version: 0.2.3.1-2793 ? 0.2.4 Change-Id: Id70d55091bcc823fce9448e41e401733e00b1d38 --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index bfa626f..72c089c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-remsim (0.2.4) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 17:22:35 +0200 + osmo-remsim (0.2.3) unstable; urgency=medium [ Harald Welte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25379 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: osmith/release Gerrit-Change-Id: Id70d55091bcc823fce9448e41e401733e00b1d38 Gerrit-Change-Number: 25379 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:40:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:40:23 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25380 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I5aa41eb54ece4ff1f43079d91896747c9b85b52c --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/80/25380/1 diff --git a/debian/control b/debian/control index cf70307..2bdb50e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I5aa41eb54ece4ff1f43079d91896747c9b85b52c Gerrit-Change-Number: 25380 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:40:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:40:23 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E1=2E1-7245_=E2=86=92_0=2E1=2E2?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25381 ) Change subject: Bump version: 0.1.1.1-7245 ? 0.1.2 ...................................................................... Bump version: 0.1.1.1-7245 ? 0.1.2 Change-Id: Ie75aff816bbb6fc025361daa1ff4d862eae8292e --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/81/25381/1 diff --git a/debian/changelog b/debian/changelog index 580125d..dceab4f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-gbproxy (1:0.1.2) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 17:40:02 +0200 + osmo-gbproxy (1:0.1.1) unstable; urgency=medium [ Daniel Willmann ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ie75aff816bbb6fc025361daa1ff4d862eae8292e Gerrit-Change-Number: 25381 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:43:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:43:20 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25380 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I5aa41eb54ece4ff1f43079d91896747c9b85b52c Gerrit-Change-Number: 25380 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:43: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 Sep 6 15:43:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:43:27 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E1=2E1-7245_=E2=86=92_0=2E1=2E2?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25381 ) Change subject: Bump version: 0.1.1.1-7245 ? 0.1.2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ie75aff816bbb6fc025361daa1ff4d862eae8292e Gerrit-Change-Number: 25381 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:43:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:48:32 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 15:48:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for SIZE after a successful configuration References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 ) Change subject: ns: add test case for SIZE after a successful configuration ...................................................................... ns: add test case for SIZE after a successful configuration Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d --- M ns/NS_Tests.ttcn 1 file changed, 17 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/25382/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index c3247fc..3d7b31a 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -827,6 +827,22 @@ f_clean_ns_codec(); } +/* Ensure a SIZE after a success full configuration is handled */ +testcase TC_sns_sgsn_size_after_success() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + NSCP[0].receive(t_NS_ALIVE); + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + setverdict(pass); + f_clean_ns_codec(); +} + /* Ensure a SNS SIZE ACK is transmitted from the correct port */ testcase TC_sns_sgsn_size_correct_port() runs on RAW_Test_CT { f_init_vty(); @@ -1014,6 +1030,7 @@ execute( TC_sns_sgsn_del() ); execute( TC_sns_sgsn_add_change_del() ); execute( TC_sns_sgsn_size_correct_port() ); + execute( TC_sns_sgsn_size_after_success() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d Gerrit-Change-Number: 25382 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:49:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:49:11 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... Patch Set 1: Note: I didn't run "git fetch --tags" prior to making this, reposted. -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25360 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ieb8669a9a43ea1acc6b2d8d2e363f2466c51697a Gerrit-Change-Number: 25360 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:49: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 Sep 6 15:49:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:49:14 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E0=2E1-c7af_=E2=86=92_0=2E1=2E1?= In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 ) Change subject: Bump version: 0.1.0.1-c7af ? 0.1.1 ...................................................................... Patch Set 1: Note: I didn't run "git fetch --tags" prior to making this, reposted. -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25361 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I3b4787bffa9dc9860b0b02ca89107f00580b7743 Gerrit-Change-Number: 25361 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 15:49:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:49:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:49:24 +0000 Subject: Change in osmo-gbproxy[osmith/release]: debian/control: remove dh-systemd build-depend In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25380 ) Change subject: debian/control: remove dh-systemd build-depend ...................................................................... debian/control: remove dh-systemd build-depend Related: OS#5223 Change-Id: I5aa41eb54ece4ff1f43079d91896747c9b85b52c --- M debian/control 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/control b/debian/control index cf70307..2bdb50e 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,6 @@ Maintainer: Osmocom team Build-Depends: debhelper (>=9), dh-autoreconf, - dh-systemd (>= 1.5), autotools-dev, autoconf, automake, -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25380 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: I5aa41eb54ece4ff1f43079d91896747c9b85b52c Gerrit-Change-Number: 25380 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:49:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 6 Sep 2021 15:49:25 +0000 Subject: =?UTF-8?Q?Change_in_osmo-gbproxy=5Bosmith/release=5D=3A_Bump_version=3A_0=2E1=2E1=2E1-7245_=E2=86=92_0=2E1=2E2?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25381 ) Change subject: Bump version: 0.1.1.1-7245 ? 0.1.2 ...................................................................... Bump version: 0.1.1.1-7245 ? 0.1.2 Change-Id: Ie75aff816bbb6fc025361daa1ff4d862eae8292e --- M debian/changelog 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 580125d..dceab4f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +osmo-gbproxy (1:0.1.2) unstable; urgency=medium + + * debian/control: remove dh-systemd build-depend + + -- Oliver Smith Mon, 06 Sep 2021 17:40:02 +0200 + osmo-gbproxy (1:0.1.1) unstable; urgency=medium [ Daniel Willmann ] -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25381 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: osmith/release Gerrit-Change-Id: Ie75aff816bbb6fc025361daa1ff4d862eae8292e Gerrit-Change-Number: 25381 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:51:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 15:51:49 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25383 ) Change subject: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed ...................................................................... ns2: nsvc: reject UNITDATA when the remote BLOCK'ed When the remote initiated the BLOCK the nsvc would still accept UNITDATA over this nsvc. Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/83/25383/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index c8c9ae9..aafd4cd 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -440,6 +440,7 @@ break; case GPRS_NS2_EV_RX_BLOCK: priv->initiate_block = false; + priv->accept_unitdata = false; ns2_tx_block_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 2); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b Gerrit-Change-Number: 25383 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:51:49 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 15:51:49 +0000 Subject: Change in libosmocore[master]: ns2: fix a crash when receiving a SIZE while configured References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25384 ) Change subject: ns2: fix a crash when receiving a SIZE while configured ...................................................................... ns2: fix a crash when receiving a SIZE while configured The ns2_vc_force_unconfigured() needs to be protected otherwise it would free gss->nsvc which will be used later. It further would run into another SNS failure which is wrong too. Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/84/25384/1 diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 7619b66..0afc06e 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -3021,7 +3021,9 @@ /* keep the NSVC we need for SNS, but unconfigure it */ gss->sns_nsvc->sig_weight = 0; gss->sns_nsvc->data_weight = 0; + gss->block_no_nsvc_events = true; ns2_vc_force_unconfigured(gss->sns_nsvc); + gss->block_no_nsvc_events = false; ns2_sns_compute_local_ep_from_binds(fi); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 Gerrit-Change-Number: 25384 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 15:58:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 15:58:50 +0000 Subject: Change in osmo-bts[master]: l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25385 ) Change subject: l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing ...................................................................... l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing Change-Id: Ib2918d5d6b8463c659896f6e535a0c6eaca4bd87 --- M src/common/l1sap.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/85/25385/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 9785bfd..e9d58ce 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1632,7 +1632,7 @@ lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; - lchan_ms_pwr_ctrl(lchan, data[0] & 0x1f, data_ind->rssi, data_ind->lqual_cb); + lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib2918d5d6b8463c659896f6e535a0c6eaca4bd87 Gerrit-Change-Number: 25385 Gerrit-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 Sep 6 16:13:00 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 16:13:00 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 1: > I already saw the patches using these APIs for expected unsigned values and code looks bit fishy imho. "fishy" is bad. if there are loopholes and mistakes in the code then let's not merge it. could you indicate the fishy parts please? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 16:13:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 16:22:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 16:22:36 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) > Sure, and we could also use strtoll directly ;) [?] The point is that strtoll() is not trivial to use, and every time we do it is a dozen lines of pitfalls. in practice we don't need to parse past int64_t range; that range is HUUGE. if we really do we can add a uint API for that, or use strtoul following the example of the implementation of osmo_str_to_int64(). When parsing a number ranged 0-999 there is no benefit of an unsigned function over a signed one. I'm sorry but I'm not really getting your point it seems? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 16:22:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 16:52:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 16:52:02 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 1: > Patch Set 1: > > > I already saw the patches using these APIs for expected unsigned values and code looks bit fishy imho. > > "fishy" is bad. if there are loopholes and mistakes in the code then let's not merge it. > could you indicate the fishy parts please? Places where expected ranges are not clear or quite wide, see the pid_t or simply a vty command where you'd like yo parse any unsigned range. By not having an unsigned API, you are limiting the code to lower ranges since the range of naturals numbers an integer variable can hold is always less than the unsigned counterpart. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 16:52:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 16:55:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 16:55:45 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) > The point is that strtoll() is not trivial to use, [?] No problem, we can revisit this next time we have some weird bug due to weird behaviors or compiler warnings due to comparing or subtracting signed vs unsigned, etc. In summary, if a variable is unsigned and it shouldn't contain a signed value, I favor working with the proper type. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 06 Sep 2021 16:55:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 17:20:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 6 Sep 2021 17:20:38 +0000 Subject: Change in osmo-bts[master]: WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field First step improving and reworking TA loop: * Move trigger of the loop to similar place done by BS/MS Power Control Loop, that is, upon receivial of UL SACCH block, which contains information about the TA used to transmit the block encode in L1SACCH Header. Hence, from computed received TOA and TA used when transmitting from the MS, we can infer the desired TA to be used by the MS, which will send back to it later during DL SACCH block. This new method also permits changing TA quicker, since we have more confidence that the TA we request is aligned with the one used to transmit, and we don't simply increment/decrement based on the value we request to transmit. Related: SYS#5371 Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc --- M include/osmo-bts/ta_control.h M src/common/l1sap.c M src/common/measurement.c M src/common/ta_control.c M tests/ta_control/ta_control_test.c M tests/ta_control/ta_control_test.ok 6 files changed, 291 insertions(+), 258 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/86/25386/1 diff --git a/include/osmo-bts/ta_control.h b/include/osmo-bts/ta_control.h index 168f14a..bf99331 100644 --- a/include/osmo-bts/ta_control.h +++ b/include/osmo-bts/ta_control.h @@ -2,4 +2,4 @@ #include -void lchan_ms_ta_ctrl(struct gsm_lchan *lchan); +void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256); diff --git a/src/common/l1sap.c b/src/common/l1sap.c index e9d58ce..c2c651a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -1632,6 +1633,7 @@ lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; + lchan_ms_ta_ctrl(lchan, l1_hdr->ta, data_ind->ta_offs_256bits); lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else diff --git a/src/common/measurement.c b/src/common/measurement.c index 4c49dc9..a4cc668 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -10,7 +10,6 @@ #include #include #include -#include /* Tables as per TS 45.008 Section 8.3 */ static const uint8_t ts45008_83_tch_f[] = { 52, 53, 54, 55, 56, 57, 58, 59 }; @@ -739,11 +738,6 @@ lchan_meas_compute_extended(lchan); - /* Compute new ta_req value. This has to be done here since the value - * in lchan->meas.num_ul_meas together with lchan->meas.ms_toa256 - * is needed for the computation. */ - lchan_ms_ta_ctrl(lchan); - lchan->meas.num_ul_meas = 0; /* return 1 to indicate that the computation has been done and the next diff --git a/src/common/ta_control.c b/src/common/ta_control.c index ccb60e2..a89c1a6 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -29,22 +29,63 @@ #define TA_MIN 0 #define TA_MAX 63 -void lchan_ms_ta_ctrl(struct gsm_lchan *lchan) -{ - int16_t toa256 = lchan->meas.ms_toa256; +//TODO: make configurable over osmo-bts VTY? Pass it BSC->BTS? +#define TA_MAX_INC_STEP 2 +#define TA_MAX_DEC_STEP 2 - if (toa256 < -TOA256_9OPERCENT && lchan->rqd_ta > TA_MIN) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "TOA is too early (%d), now lowering TA from %d to %d\n", - toa256, lchan->rqd_ta, lchan->rqd_ta - 1); - lchan->rqd_ta--; - } else if (toa256 > TOA256_9OPERCENT && lchan->rqd_ta < TA_MAX) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "TOA is too late (%d), now raising TA from %d to %d\n", - toa256, lchan->rqd_ta, lchan->rqd_ta + 1); - lchan->rqd_ta++; - } else + +/*! compute the new "Ordered Timing Advance" communicated to the MS and store it in lchan. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] ms_tx_ta The TA used by the MS and reported in L1SACCH, see struct gsm_sacch_l1_hdr field "ta". + * \param[in] toa256 Timing advance offset (in 1/256th bits) computed at Rx side + */ +void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256) +{ + int16_t new_ta; + /* Shall we skip current block based on configured interval? */ + //TODO: implement P_CON_INTERVAL for TA loop + + + //TODO: we could do averaging as per some config nsomewhere? + + //TODO: Ad + int16_t delta_ta = toa256/256; + if (toa256 >= 0) { + if ((toa256 - (256 * delta_ta)) > TOA256_9OPERCENT) + delta_ta++; + if (delta_ta > TA_MAX_INC_STEP) + delta_ta = TA_MAX_INC_STEP; + } else { + if ((toa256 - (256 * delta_ta)) < -TOA256_9OPERCENT) + delta_ta--; + if (delta_ta < TA_MAX_DEC_STEP) + delta_ta = TA_MAX_DEC_STEP; + } + + new_ta = ms_tx_ta + delta_ta; + + /* Make sure new_ta is never negative: */ + if (new_ta < TA_MIN) + new_ta = TA_MIN; + + /* Don't ask for out of range TA: */ + if (new_ta > TA_MAX) + new_ta = TA_MAX; + + if (lchan->rqd_ta == (uint8_t)new_ta) { LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, - "TOA is correct (%d), keeping current TA of %d\n", - toa256, lchan->rqd_ta); + "Keeping current TA at %u: TOA was %d\n", + lchan->rqd_ta, toa256); + return; + } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, + "%s TA %u => %u: TOA was too %s (%d)\n", + (uint8_t)new_ta > lchan->rqd_ta ? "Raising" : "Lowering", + lchan->rqd_ta, (uint8_t)new_ta, + (uint8_t)new_ta > lchan->rqd_ta ? "late" : "early", + toa256); + + /* store the resulting new TA in the lchan */ + lchan->rqd_ta = (uint8_t)new_ta; } diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 2e981b3..12305cb 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -35,9 +35,6 @@ uint8_t rqd_ta_before; int16_t toa256 = toa256_start; - /* Arbitrary value, high enough so that a computation can happen. */ - lchan.meas.num_ul_meas = 10; - printf("toa256_start = %u / 256 = %u, steps = %u\n", toa256_start, toa256_start / 256, steps); @@ -49,8 +46,7 @@ rqd_ta_before = lchan.rqd_ta; - lchan.meas.ms_toa256 = toa256; - lchan_ms_ta_ctrl(&lchan); + lchan_ms_ta_ctrl(&lchan, rqd_ta_before, toa256); rqd_ta_after = lchan.rqd_ta; toa256 -= (rqd_ta_after - rqd_ta_before) * 256; diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok index 8ebe5d5..79de8ad 100644 --- a/tests/ta_control/ta_control_test.ok +++ b/tests/ta_control/ta_control_test.ok @@ -2,81 +2,81 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4096 / 256 = 16 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3840 / 256 = 15 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3840 / 256 = 15 lchan.rqd_ta (after) = 2 toa256 (after) = 3584 / 256 = 14 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3584 / 256 = 14 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3328 / 256 = 13 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3328 / 256 = 13 lchan.rqd_ta (after) = 4 toa256 (after) = 3072 / 256 = 12 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 3072 / 256 = 12 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2816 / 256 = 11 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2816 / 256 = 11 lchan.rqd_ta (after) = 6 toa256 (after) = 2560 / 256 = 10 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2560 / 256 = 10 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2304 / 256 = 9 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2304 / 256 = 9 lchan.rqd_ta (after) = 8 toa256 (after) = 2048 / 256 = 8 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 2048 / 256 = 8 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1792 / 256 = 7 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1792 / 256 = 7 lchan.rqd_ta (after) = 10 toa256 (after) = 1536 / 256 = 6 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1536 / 256 = 6 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1280 / 256 = 5 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1280 / 256 = 5 lchan.rqd_ta (after) = 12 toa256 (after) = 1024 / 256 = 4 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 1024 / 256 = 4 - lchan.rqd_ta (after) = 13 - toa256 (after) = 768 / 256 = 3 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 768 / 256 = 3 lchan.rqd_ta (after) = 14 toa256 (after) = 512 / 256 = 2 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 512 / 256 = 2 - lchan.rqd_ta (after) = 15 - toa256 (after) = 256 / 256 = 1 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 256 / 256 = 1 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 lchan.rqd_ta (after) = 16 toa256 (after) = 0 / 256 = 0 Step #16 @@ -105,78 +105,78 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4000 / 256 = 15 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3744 / 256 = 14 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3744 / 256 = 14 lchan.rqd_ta (after) = 2 toa256 (after) = 3488 / 256 = 13 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3488 / 256 = 13 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3232 / 256 = 12 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3232 / 256 = 12 lchan.rqd_ta (after) = 4 toa256 (after) = 2976 / 256 = 11 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 2976 / 256 = 11 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2720 / 256 = 10 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2720 / 256 = 10 lchan.rqd_ta (after) = 6 toa256 (after) = 2464 / 256 = 9 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2464 / 256 = 9 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2208 / 256 = 8 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2208 / 256 = 8 lchan.rqd_ta (after) = 8 toa256 (after) = 1952 / 256 = 7 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 1952 / 256 = 7 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1696 / 256 = 6 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1696 / 256 = 6 lchan.rqd_ta (after) = 10 toa256 (after) = 1440 / 256 = 5 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1440 / 256 = 5 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1184 / 256 = 4 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1184 / 256 = 4 lchan.rqd_ta (after) = 12 toa256 (after) = 928 / 256 = 3 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 928 / 256 = 3 - lchan.rqd_ta (after) = 13 - toa256 (after) = 672 / 256 = 2 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 672 / 256 = 2 lchan.rqd_ta (after) = 14 toa256 (after) = 416 / 256 = 1 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 416 / 256 = 1 lchan.rqd_ta (after) = 15 toa256 (after) = 160 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 Step #15 lchan.rqd_ta (before) = 15 toa256 (before) = 160 / 256 = 0 @@ -358,241 +358,241 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 12345 / 256 = 48 - lchan.rqd_ta (after) = 1 - toa256 (after) = 12089 / 256 = 47 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 12089 / 256 = 47 lchan.rqd_ta (after) = 2 toa256 (after) = 11833 / 256 = 46 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 11833 / 256 = 46 - lchan.rqd_ta (after) = 3 - toa256 (after) = 11577 / 256 = 45 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 11577 / 256 = 45 lchan.rqd_ta (after) = 4 toa256 (after) = 11321 / 256 = 44 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 11321 / 256 = 44 - lchan.rqd_ta (after) = 5 - toa256 (after) = 11065 / 256 = 43 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 11065 / 256 = 43 lchan.rqd_ta (after) = 6 toa256 (after) = 10809 / 256 = 42 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 10809 / 256 = 42 - lchan.rqd_ta (after) = 7 - toa256 (after) = 10553 / 256 = 41 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 10553 / 256 = 41 lchan.rqd_ta (after) = 8 toa256 (after) = 10297 / 256 = 40 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 10297 / 256 = 40 - lchan.rqd_ta (after) = 9 - toa256 (after) = 10041 / 256 = 39 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 10041 / 256 = 39 lchan.rqd_ta (after) = 10 toa256 (after) = 9785 / 256 = 38 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 9785 / 256 = 38 - lchan.rqd_ta (after) = 11 - toa256 (after) = 9529 / 256 = 37 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 9529 / 256 = 37 lchan.rqd_ta (after) = 12 toa256 (after) = 9273 / 256 = 36 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 9273 / 256 = 36 - lchan.rqd_ta (after) = 13 - toa256 (after) = 9017 / 256 = 35 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 9017 / 256 = 35 lchan.rqd_ta (after) = 14 toa256 (after) = 8761 / 256 = 34 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 8761 / 256 = 34 - lchan.rqd_ta (after) = 15 - toa256 (after) = 8505 / 256 = 33 -Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 8505 / 256 = 33 lchan.rqd_ta (after) = 16 toa256 (after) = 8249 / 256 = 32 -Step #16 +Step #8 lchan.rqd_ta (before) = 16 toa256 (before) = 8249 / 256 = 32 - lchan.rqd_ta (after) = 17 - toa256 (after) = 7993 / 256 = 31 -Step #17 - lchan.rqd_ta (before) = 17 - toa256 (before) = 7993 / 256 = 31 lchan.rqd_ta (after) = 18 toa256 (after) = 7737 / 256 = 30 -Step #18 +Step #9 lchan.rqd_ta (before) = 18 toa256 (before) = 7737 / 256 = 30 - lchan.rqd_ta (after) = 19 - toa256 (after) = 7481 / 256 = 29 -Step #19 - lchan.rqd_ta (before) = 19 - toa256 (before) = 7481 / 256 = 29 lchan.rqd_ta (after) = 20 toa256 (after) = 7225 / 256 = 28 -Step #20 +Step #10 lchan.rqd_ta (before) = 20 toa256 (before) = 7225 / 256 = 28 - lchan.rqd_ta (after) = 21 - toa256 (after) = 6969 / 256 = 27 -Step #21 - lchan.rqd_ta (before) = 21 - toa256 (before) = 6969 / 256 = 27 lchan.rqd_ta (after) = 22 toa256 (after) = 6713 / 256 = 26 -Step #22 +Step #11 lchan.rqd_ta (before) = 22 toa256 (before) = 6713 / 256 = 26 - lchan.rqd_ta (after) = 23 - toa256 (after) = 6457 / 256 = 25 -Step #23 - lchan.rqd_ta (before) = 23 - toa256 (before) = 6457 / 256 = 25 lchan.rqd_ta (after) = 24 toa256 (after) = 6201 / 256 = 24 -Step #24 +Step #12 lchan.rqd_ta (before) = 24 toa256 (before) = 6201 / 256 = 24 - lchan.rqd_ta (after) = 25 - toa256 (after) = 5945 / 256 = 23 -Step #25 - lchan.rqd_ta (before) = 25 - toa256 (before) = 5945 / 256 = 23 lchan.rqd_ta (after) = 26 toa256 (after) = 5689 / 256 = 22 -Step #26 +Step #13 lchan.rqd_ta (before) = 26 toa256 (before) = 5689 / 256 = 22 - lchan.rqd_ta (after) = 27 - toa256 (after) = 5433 / 256 = 21 -Step #27 - lchan.rqd_ta (before) = 27 - toa256 (before) = 5433 / 256 = 21 lchan.rqd_ta (after) = 28 toa256 (after) = 5177 / 256 = 20 -Step #28 +Step #14 lchan.rqd_ta (before) = 28 toa256 (before) = 5177 / 256 = 20 - lchan.rqd_ta (after) = 29 - toa256 (after) = 4921 / 256 = 19 -Step #29 - lchan.rqd_ta (before) = 29 - toa256 (before) = 4921 / 256 = 19 lchan.rqd_ta (after) = 30 toa256 (after) = 4665 / 256 = 18 -Step #30 +Step #15 lchan.rqd_ta (before) = 30 toa256 (before) = 4665 / 256 = 18 - lchan.rqd_ta (after) = 31 - toa256 (after) = 4409 / 256 = 17 -Step #31 - lchan.rqd_ta (before) = 31 - toa256 (before) = 4409 / 256 = 17 lchan.rqd_ta (after) = 32 toa256 (after) = 4153 / 256 = 16 -Step #32 +Step #16 lchan.rqd_ta (before) = 32 toa256 (before) = 4153 / 256 = 16 - lchan.rqd_ta (after) = 33 - toa256 (after) = 3897 / 256 = 15 -Step #33 - lchan.rqd_ta (before) = 33 - toa256 (before) = 3897 / 256 = 15 lchan.rqd_ta (after) = 34 toa256 (after) = 3641 / 256 = 14 -Step #34 +Step #17 lchan.rqd_ta (before) = 34 toa256 (before) = 3641 / 256 = 14 - lchan.rqd_ta (after) = 35 - toa256 (after) = 3385 / 256 = 13 -Step #35 - lchan.rqd_ta (before) = 35 - toa256 (before) = 3385 / 256 = 13 lchan.rqd_ta (after) = 36 toa256 (after) = 3129 / 256 = 12 -Step #36 +Step #18 lchan.rqd_ta (before) = 36 toa256 (before) = 3129 / 256 = 12 - lchan.rqd_ta (after) = 37 - toa256 (after) = 2873 / 256 = 11 -Step #37 - lchan.rqd_ta (before) = 37 - toa256 (before) = 2873 / 256 = 11 lchan.rqd_ta (after) = 38 toa256 (after) = 2617 / 256 = 10 -Step #38 +Step #19 lchan.rqd_ta (before) = 38 toa256 (before) = 2617 / 256 = 10 - lchan.rqd_ta (after) = 39 - toa256 (after) = 2361 / 256 = 9 -Step #39 - lchan.rqd_ta (before) = 39 - toa256 (before) = 2361 / 256 = 9 lchan.rqd_ta (after) = 40 toa256 (after) = 2105 / 256 = 8 -Step #40 +Step #20 lchan.rqd_ta (before) = 40 toa256 (before) = 2105 / 256 = 8 - lchan.rqd_ta (after) = 41 - toa256 (after) = 1849 / 256 = 7 -Step #41 - lchan.rqd_ta (before) = 41 - toa256 (before) = 1849 / 256 = 7 lchan.rqd_ta (after) = 42 toa256 (after) = 1593 / 256 = 6 -Step #42 +Step #21 lchan.rqd_ta (before) = 42 toa256 (before) = 1593 / 256 = 6 - lchan.rqd_ta (after) = 43 - toa256 (after) = 1337 / 256 = 5 -Step #43 - lchan.rqd_ta (before) = 43 - toa256 (before) = 1337 / 256 = 5 lchan.rqd_ta (after) = 44 toa256 (after) = 1081 / 256 = 4 -Step #44 +Step #22 lchan.rqd_ta (before) = 44 toa256 (before) = 1081 / 256 = 4 - lchan.rqd_ta (after) = 45 - toa256 (after) = 825 / 256 = 3 -Step #45 - lchan.rqd_ta (before) = 45 - toa256 (before) = 825 / 256 = 3 lchan.rqd_ta (after) = 46 toa256 (after) = 569 / 256 = 2 -Step #46 +Step #23 lchan.rqd_ta (before) = 46 toa256 (before) = 569 / 256 = 2 - lchan.rqd_ta (after) = 47 - toa256 (after) = 313 / 256 = 1 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #24 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #25 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #26 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #27 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #28 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #29 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #30 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #31 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #32 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #33 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #34 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #35 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #36 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #37 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #38 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #39 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #40 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #41 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #42 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #43 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #44 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #45 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #46 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 47 - toa256 (before) = 313 / 256 = 1 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 lchan.rqd_ta (after) = 48 toa256 (after) = 57 / 256 = 0 Step #48 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-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 Sep 6 17:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 6 Sep 2021 17:34:05 +0000 Subject: Change in osmo-bts[master]: l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25385 ) Change subject: l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib2918d5d6b8463c659896f6e535a0c6eaca4bd87 Gerrit-Change-Number: 25385 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 06 Sep 2021 17:34:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 17:34:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 6 Sep 2021 17:34:34 +0000 Subject: Change in osmo-bts[master]: comsetic: measurement.c: fix typo in comment In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25372 ) Change subject: comsetic: measurement.c: fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3ed3486bbc3d55088e3ebe27e4a76f932d6f7a59 Gerrit-Change-Number: 25372 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 06 Sep 2021 17:34:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 17:35:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 6 Sep 2021 17:35:50 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Move skip loop logic to function helper In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25357 ) Change subject: Power Control Loop: Move skip loop logic to function helper ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25357 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic26c17564ec61cdadaab0184c4246b9bf863c69a Gerrit-Change-Number: 25357 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 06 Sep 2021 17:35:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 17:52:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 6 Sep 2021 17:52:33 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25334/2/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25334/2/src/common/power_control.c at 351 PS2, Line 351: /* Basic signal transmission / reception formula: What was your motivation to move this comment into an else statement? It also applies to the upper RxQual block too. Maybe you were confused by 'RxLev' in the comment itself? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 06 Sep 2021 17:52:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 20:12:26 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 20:12:26 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... add CTRL 'rf_states' and 'bts.N.rf_states' These commands return a listing of OML state, RF policy as well as RSL connection status for each TRX in the form: ,,,,,;,,... For example, the root node 'rf_states' may return: 0,0,operational,unlocked,on,rsl-up;1,0,operational,unlocked,on,rsl-down;2,0,inoperational,locked,on,rsl-down; A 'bts.N.rf_states' returns the same form of string, but lists only the TRX for the given BTS nr. Related: SYS#5542 Related: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb (osmo-ttcn3-hacks) Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e --- M include/osmocom/bsc/osmo_bsc_rf.h M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_rf_ctrl.c 3 files changed, 119 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/25387/1 diff --git a/include/osmocom/bsc/osmo_bsc_rf.h b/include/osmocom/bsc/osmo_bsc_rf.h index 56ac980..f88ccbf 100644 --- a/include/osmocom/bsc/osmo_bsc_rf.h +++ b/include/osmocom/bsc/osmo_bsc_rf.h @@ -60,7 +60,12 @@ enum osmo_bsc_rf_opstate osmo_bsc_rf_get_opstate_by_bts(struct gsm_bts *bts); enum osmo_bsc_rf_adminstate osmo_bsc_rf_get_adminstate_by_bts(struct gsm_bts *bts); enum osmo_bsc_rf_policy osmo_bsc_rf_get_policy_by_bts(struct gsm_bts *bts); +enum osmo_bsc_rf_opstate osmo_bsc_rf_get_opstate_by_trx(struct gsm_bts_trx *trx); +enum osmo_bsc_rf_adminstate osmo_bsc_rf_get_adminstate_by_trx(struct gsm_bts_trx *trx); struct osmo_bsc_rf *osmo_bsc_rf_create(const char *path, struct gsm_network *net); void osmo_bsc_rf_schedule_lock(struct osmo_bsc_rf *rf, char cmd); +char *bsc_rf_states_of_bts_c(void *ctx, struct gsm_bts *bts); +char *bsc_rf_states_c(void *ctx); + #endif diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index be83b1b..3b8125a 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -420,6 +420,42 @@ } CTRL_CMD_DEFINE_RO(bts_rf_state, "rf_state"); +/* Return a list of the states of each TRX for a given BTS: + * ,,,,;,,... + */ +static int get_bts_rf_states(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts *bts = cmd->node; + + if (!bts) { + cmd->reply = "bts not found."; + return CTRL_CMD_ERROR; + } + + cmd->reply = bsc_rf_states_of_bts_c(cmd, bts); + if (!cmd->reply) { + cmd->reply = "OOM."; + return CTRL_CMD_ERROR; + } + + return CTRL_CMD_REPLY; +} +CTRL_CMD_DEFINE_RO(bts_rf_states, "rf_states"); + +/* Return a list of the states of each TRX for all BTS: + * ,,,,;,,... + */ +static int get_net_rf_states(struct ctrl_cmd *cmd, void *data) +{ + cmd->reply = bsc_rf_states_c(cmd); + if (!cmd->reply) { + cmd->reply = "OOM."; + return CTRL_CMD_ERROR; + } + return CTRL_CMD_REPLY; +} +CTRL_CMD_DEFINE_RO(net_rf_states, "rf_states"); + static int get_net_rf_lock(struct ctrl_cmd *cmd, void *data) { struct gsm_network *net = cmd->node; @@ -609,6 +645,7 @@ rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_mcc_mnc_apply); rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_rf_lock); rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_bts_num); + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_rf_states); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_lac); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_ci); @@ -619,6 +656,7 @@ rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_oml_up); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_gprs_mode); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_rf_state); + rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_rf_states); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_c0_power_red); rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_max_power); diff --git a/src/osmo-bsc/bsc_rf_ctrl.c b/src/osmo-bsc/bsc_rf_ctrl.c index a845859..364e8f8 100644 --- a/src/osmo-bsc/bsc_rf_ctrl.c +++ b/src/osmo-bsc/bsc_rf_ctrl.c @@ -124,6 +124,82 @@ } } +enum osmo_bsc_rf_opstate osmo_bsc_rf_get_opstate_by_trx(struct gsm_bts_trx *trx) +{ + if (trx->mo.nm_state.operational == NM_OPSTATE_ENABLED) + return OSMO_BSC_RF_OPSTATE_OPERATIONAL; + return OSMO_BSC_RF_OPSTATE_INOPERATIONAL; +} + +enum osmo_bsc_rf_adminstate osmo_bsc_rf_get_adminstate_by_trx(struct gsm_bts_trx *trx) +{ + if (trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + return OSMO_BSC_RF_ADMINSTATE_UNLOCKED; + return OSMO_BSC_RF_ADMINSTATE_LOCKED; +} + +/* Return a string listing the state of the given TRX. + * The string has the form: + * ,,,,,; + */ +static int bsc_rf_state_of_trx_buf(char *buf, size_t buflen, struct gsm_bts_trx *trx) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + OSMO_STRBUF_PRINTF(sb, "%u,%u,%s,%s,%s,%s;", + trx->bts->nr, trx->nr, + osmo_bsc_rf_get_opstate_name(osmo_bsc_rf_get_opstate_by_trx(trx)), + osmo_bsc_rf_get_adminstate_name(osmo_bsc_rf_get_adminstate_by_trx(trx)), + osmo_bsc_rf_get_policy_name(osmo_bsc_rf_get_policy_by_bts(trx->bts)), + trx_is_usable(trx) && trx->rsl_link_primary ? "rsl-up" : "rsl-down"); + return sb.chars_needed; +} + +static int bsc_rf_states_of_bts_buf(char *buf, size_t buflen, struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + llist_for_each_entry(trx, &bts->trx_list, list) { + OSMO_STRBUF_APPEND(sb, bsc_rf_state_of_trx_buf, trx); + } + return sb.chars_needed; +} + +/* Return a string listing the states of each TRX for the given BTS. + * The string has the form: + * ,,,,,;,,...;...; + * \param ctx Talloc context to allocate the returned string from. + * \param bts BTS of which to list the TRX states. + * \return talloc allocated string. + */ +char *bsc_rf_states_of_bts_c(void *ctx, struct gsm_bts *bts) +{ + OSMO_NAME_C_IMPL(ctx, 256, "ERROR", bsc_rf_states_of_bts_buf, bts); +} + +static int bsc_rf_states_buf(char *buf, size_t buflen) +{ + struct gsm_bts *bts; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + OSMO_STRBUF_APPEND(sb, bsc_rf_states_of_bts_buf, bts); + } + return sb.chars_needed; +} + +/* Return a string listing the states of all TRX of all BTS. + * The string has the form: + * ,,,,,;,,...;...; + * \param ctx Talloc context to allocate the returned string from. + * \param bts BTS of which to list the TRX states, or NULL to list all TRX of all BTS. + * \return talloc allocated string. + */ +char *bsc_rf_states_c(void *ctx) +{ + OSMO_NAME_C_IMPL(ctx, 4096, "ERROR", bsc_rf_states_buf); +} + static int lock_each_trx(struct gsm_network *net, bool lock) { struct gsm_bts *bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 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 Sep 6 20:15:24 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 20:15:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 ) Change subject: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' Related: SYS#5542 Depends: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e (osmo-bsc) Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb --- M bsc/BSC_Tests.ttcn 1 file changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/25388/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index d0c2fe6..b87446d 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2848,6 +2848,31 @@ f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_trx:rsl_connected", int2str(nr_bts)); f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_trx:total", int2str(NUM_BTS_CFG)); + /* Verify rf_states exposed on CTRL interface */ + var charstring expect_net_rf_states := ""; + for (var integer i := 0; i < NUM_BTS_CFG; i := i + 1) { + var charstring expect_bts_rf_states := int2str(i) & ",0,"; + if (i < NUM_BTS) { + /* In these tests, OML for the first NUM_BTS are always connected via osmo-bts-omldummy */ + expect_bts_rf_states := expect_bts_rf_states & "operational,unlocked,"; + } else { + /* For remaining i < NUM_BTS_CFG, OML is not connected, i.e. inoperational */ + expect_bts_rf_states := expect_bts_rf_states & "inoperational,locked,"; + } + /* The RF policy is still global in osmo-bsc, i.e. always "on" */ + expect_bts_rf_states := expect_bts_rf_states & "on,"; + if (i < nr_bts) { + /* For BTS where RSL is connected, the RSL state will be "up" */ + expect_bts_rf_states := expect_bts_rf_states & "rsl-up;"; + } else { + expect_bts_rf_states := expect_bts_rf_states & "rsl-down;"; + } + + f_ctrl_get_exp(IPA_CTRL, "bts." & int2str(i) & ".rf_states", expect_bts_rf_states); + expect_net_rf_states := expect_net_rf_states & expect_bts_rf_states; + } + f_ctrl_get_exp(IPA_CTRL, "rf_states", expect_net_rf_states); + f_shutdown_helper(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb Gerrit-Change-Number: 25388 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 Sep 6 20:24:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 6 Sep 2021 20:24:32 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 to look at the new patch set (#3). Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... add CTRL 'rf_states' and 'bts.N.rf_states' These commands return a listing of OML state, RF policy as well as RSL connection status for each TRX in the form: ,,,,,;,,... For example, the root node 'rf_states' may return: 0,0,operational,unlocked,on,rsl-up;1,0,operational,unlocked,on,rsl-down;2,0,inoperational,locked,on,rsl-down; A 'bts.N.rf_states' returns the same form of string, but lists only the TRX for the given BTS nr. Note, there is already a CTRL command 'bts.N.rf_state' (singular 'rf_state', not plural 'rf_states'), which only reflects the overall status of all TRX combined. This new command has per-TRX resolution. The rf-policy is so far always looked up in the global gsm_network flag, as does the old 'rf_state' command; see osmo_bsc_rf_get_policy_by_bts() which does not depend on the specific BTS at all. This may be worth revisiting in the future, so I am already including the rf-policy in the rf_state string for each TRX, even though it is globally identical. Related: SYS#5542 Related: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb (osmo-ttcn3-hacks) Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e --- M include/osmocom/bsc/osmo_bsc_rf.h M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_rf_ctrl.c 3 files changed, 119 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/25387/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 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 Sep 6 23:30:46 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 23:30:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add tc TC_mirror_unitdata_tx_status_blocked References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 ) Change subject: ns2: add tc TC_mirror_unitdata_tx_status_blocked ...................................................................... ns2: add tc TC_mirror_unitdata_tx_status_blocked Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 --- M ns/NS_Tests.ttcn 1 file changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/25389/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 3d7b31a..b57d686 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -964,6 +964,34 @@ f_clean_ns_codec(); } +/* 48.016 7.2 ensure tx status (blocked) is correctly parsed + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unitdata + * TTCN <- NS: unitdata (mirror) + * TTCN -> NS: status (blocked) + * TTCN -> NS: unitdata + * TTCN <- NS: status (blocked) + */ +testcase TC_mirror_unitdata_tx_status_blocked() runs on RAW_Test_CT { + f_tx_unblock(); + + f_vty_config2(NSVTY, {}, "mirror-mode enable"); + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + var PDU_NS pdu := f_ns_exp(tr_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + + NSCP[0].send(ts_NS_STATUS(NS_CAUSE_NSVC_BLOCKED, pdu)); + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED)); + + f_vty_config2(NSVTY, {}, "mirror-mode disable"); + f_sleep(1.0); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -974,6 +1002,7 @@ execute( TC_tx_block_by_vty_reset() ); execute( TC_tx_block_unitdata_over_blocked() ); execute( TC_rx_block_unitdata_over_blocked() ); + execute( TC_mirror_unitdata_tx_status_blocked() ); // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci /* 48.016 7.2 Unblock procedure */ execute( TC_tx_unblock() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 Gerrit-Change-Number: 25389 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 23:31:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 23:31:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix NS STATUS validation References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25390 ) Change subject: gprs_ns2: fix NS STATUS validation ...................................................................... gprs_ns2: fix NS STATUS validation The wrong TLVs were used. Change-Id: I01339d93469285cc5340500717ab2b696284e12a --- M src/gb/gprs_ns2_message.c 1 file changed, 3 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/90/25390/1 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index dccf51d..5e3e025 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -95,12 +95,11 @@ return -1; } - uint8_t _cause = tlvp_val8(tp, NS_IE_VCI, 0); - + uint8_t _cause = tlvp_val8(tp, NS_IE_CAUSE, 0); switch (_cause) { case NS_CAUSE_NSVC_BLOCKED: case NS_CAUSE_NSVC_UNKNOWN: - if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -110,7 +109,7 @@ case NS_CAUSE_PROTO_ERR_UNSPEC: case NS_CAUSE_INVAL_ESSENT_IE: case NS_CAUSE_MISSING_ESSENT_IE: - if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { + if (!TLVP_PRES_LEN(tp, NS_IE_PDU, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I01339d93469285cc5340500717ab2b696284e12a Gerrit-Change-Number: 25390 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 23:31:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 23:31:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix a white space References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25391 ) Change subject: gprs_ns2: fix a white space ...................................................................... gprs_ns2: fix a white space Change-Id: I2207d13ae451ce49482625fac43b6ab1c0f215e8 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/91/25391/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index aafd4cd..aa4f31d 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -855,7 +855,7 @@ } } - if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { + if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { nsvci = tlvp_val16be(tp, NS_IE_VCI); if (nsvci != nsvc->nsvci) { /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2207d13ae451ce49482625fac43b6ab1c0f215e8 Gerrit-Change-Number: 25391 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 6 23:31:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Mon, 6 Sep 2021 23:31:35 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSV... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25392 ) Change subject: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED ...................................................................... gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED A STATUS PDU with cause code NSVC UNKNOWN/NSVC BLOCKED informs the other side about a state mismatch between the side. Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 27 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/92/25392/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index aa4f31d..fa8cec2 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -618,7 +618,9 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); + struct tlv_parsed *tp; struct msgb *msg = data; + uint8_t cause; switch (event) { case GPRS_NS2_EV_REQ_OM_RESET: @@ -709,6 +711,27 @@ if (fi->state == GPRS_NS2_ST_BLOCKED) osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); break; + case GPRS_NS2_EV_RX_STATUS: + tp = data; + cause = tlvp_val8(tp, NS_IE_CAUSE, 0); + switch (cause) { + case NS_CAUSE_NSVC_BLOCKED: + if (fi->state != GPRS_NS2_ST_BLOCKED) { + LOG_NS_SIGNAL(priv->nsvc, "Rx", NS_PDUT_STATUS, LOGL_ERROR, ": remote side reported blocked state.\n"); + priv->initiate_block = false; + priv->accept_unitdata = false; + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + } + break; + case NS_CAUSE_NSVC_UNKNOWN: + if (fi->state != GPRS_NS2_ST_RESET && fi->state != GPRS_NS2_ST_UNCONFIGURED) { + LOG_NS_SIGNAL(priv->nsvc, "Rx", NS_PDUT_STATUS, LOGL_ERROR, ": remote side reported unknown nsvc.\n"); + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + } + break; + } + + break; } } @@ -728,6 +751,7 @@ S(GPRS_NS2_EV_RX_RESET) | S(GPRS_NS2_EV_RX_ALIVE) | S(GPRS_NS2_EV_RX_ALIVE_ACK) | + S(GPRS_NS2_EV_RX_STATUS) | S(GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED) | S(GPRS_NS2_EV_REQ_OM_RESET) | S(GPRS_NS2_EV_REQ_OM_BLOCK) | @@ -896,6 +920,9 @@ /* UNITDATA have to free msg because it might send the msg layer upwards */ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); return 0; + case NS_PDUT_STATUS: + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_STATUS, tp); + break; default: LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 Gerrit-Change-Number: 25392 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 08:14:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:14:59 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Move skip loop logic to function helper In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25357 ) Change subject: Power Control Loop: Move skip loop logic to function helper ...................................................................... Power Control Loop: Move skip loop logic to function helper Let's move duplicate logic to function helper. Related: SYS#5371 Change-Id: Ic26c17564ec61cdadaab0184c4246b9bf863c69a --- M src/common/power_control.c 1 file changed, 21 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index 0362675..d57c28d 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -139,6 +139,23 @@ return delta; } +/* Shall we skip current block based on configured interval? */ +static bool ctrl_interval_skip_block(const struct gsm_power_ctrl_params *params, + struct lchan_power_ctrl_state *state) +{ + /* Power control interval: how many blocks do we skip? */ + if (state->skip_block_num-- > 0) + return true; + + /* Reset the number of SACCH blocks to be skipped: + * ctrl_interval=0 => 0 blocks to skip, + * ctrl_interval=1 => 1 blocks to skip, + * ctrl_interval=2 => 3 blocks to skip, + * so basically ctrl_interval * 2 - 1. */ + state->skip_block_num = params->ctrl_interval * 2 - 1; + return false; +} + static const struct gsm_power_ctrl_meas_params *lchan_get_ci_thresholds(const struct gsm_lchan *lchan) { const struct gsm_power_ctrl_params *params = lchan->ms_power_ctrl.dpc_params; @@ -190,17 +207,10 @@ if (params == NULL) return 0; - /* Power control interval: how many blocks do we skip? */ - if (state->skip_block_num-- > 0) + /* Shall we skip current block based on configured interval? */ + if (ctrl_interval_skip_block(params, state)) return 0; - /* Reset the number of SACCH blocks to be skipped: - * ctrl_interval=0 => 0 blocks to skip, - * ctrl_interval=1 => 1 blocks to skip, - * ctrl_interval=2 => 3 blocks to skip, - * so basically ctrl_interval * 2 - 1. */ - state->skip_block_num = params->ctrl_interval * 2 - 1; - ms_dbm = ms_pwr_dbm(band, ms_power_lvl); if (ms_dbm < 0) { LOGPLCHAN(lchan, DLOOP, LOGL_NOTICE, @@ -318,17 +328,10 @@ lchan->tch.dtx.dl_active ? "enabled" : "disabled", lchan->tch.dtx.dl_active ? "SUB" : "FULL"); - /* Power control interval: how many blocks do we skip? */ - if (state->skip_block_num-- > 0) + /* Shall we skip current block based on configured interval? */ + if (ctrl_interval_skip_block(params, state)) return 0; - /* Reset the number of SACCH blocks to be skipped: - * ctrl_interval=0 => 0 blocks to skip, - * ctrl_interval=1 => 1 blocks to skip, - * ctrl_interval=2 => 3 blocks to skip, - * so basically ctrl_interval * 2 - 1. */ - state->skip_block_num = params->ctrl_interval * 2 - 1; - /* If DTx is active on Downlink, use the '-SUB' */ if (lchan->tch.dtx.dl_active) { rxqual = rxqual_sub; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25357 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic26c17564ec61cdadaab0184c4246b9bf863c69a Gerrit-Change-Number: 25357 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 Sep 7 08:15:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:15:01 +0000 Subject: Change in osmo-bts[master]: comsetic: measurement.c: fix typo in comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25372 ) Change subject: comsetic: measurement.c: fix typo in comment ...................................................................... comsetic: measurement.c: fix typo in comment Change-Id: I3ed3486bbc3d55088e3ebe27e4a76f932d6f7a59 --- M src/common/measurement.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/measurement.c b/src/common/measurement.c index b586987..4c49dc9 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -589,7 +589,7 @@ /* When AMR is used, we expect at least one SUB frame, since * the SACCH will always be SUB frame. There may occur more * SUB frames but since DTX periods in AMR are dynamic, we - * can not know how much exactly. */ + * can not know how many exactly. */ num_meas_sub_expect = 1; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3ed3486bbc3d55088e3ebe27e4a76f932d6f7a59 Gerrit-Change-Number: 25372 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 Sep 7 08:15:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:15:01 +0000 Subject: Change in osmo-bts[master]: l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25385 ) Change subject: l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing ...................................................................... l1sap: Take L1SACCH MS_PWR from bitfield instead of manual parsing Change-Id: Ib2918d5d6b8463c659896f6e535a0c6eaca4bd87 --- M src/common/l1sap.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 9785bfd..e9d58ce 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1632,7 +1632,7 @@ lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; - lchan_ms_pwr_ctrl(lchan, data[0] & 0x1f, data_ind->rssi, data_ind->lqual_cb); + lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25385 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib2918d5d6b8463c659896f6e535a0c6eaca4bd87 Gerrit-Change-Number: 25385 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 Sep 7 08:42:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:42:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for SIZE after a successful configuration In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 ) Change subject: ns: add test case for SIZE after a successful configuration ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d Gerrit-Change-Number: 25382 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 08:42:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 08:43:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:43:21 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25383 ) Change subject: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25383/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/25383/1//COMMIT_MSG at 7 PS1, Line 7: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed is/was BLOCKed? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b Gerrit-Change-Number: 25383 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 08:43: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 Tue Sep 7 08:45:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:45:24 +0000 Subject: Change in libosmocore[master]: ns2: fix a crash when receiving a SIZE while configured In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25384 ) Change subject: ns2: fix a crash when receiving a SIZE while configured ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 Gerrit-Change-Number: 25384 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 08:45: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 Sep 7 08:47:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 08:47:36 +0000 Subject: Change in osmo-bts[master]: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar t... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25334 ) Change subject: BS Power Control Loop: refactor lchan_bs_pwr_ctrl() to look similar to lchan_ms_pwr_ctrl() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25334/2/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25334/2/src/common/power_control.c at 351 PS2, Line 351: /* Basic signal transmission / reception formula: > What was your motivation to move this comment into an else statement? It also applies to the upper R [?] In the previous state there we as an early return, so no logic is changed. I did so to let all paths follow in the function and have a unified print path at the end, same as we do for MS Power Control Loop, to have both functions look alike and make it easier for devs to apply similar improvements on both. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25334 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ida76b55f0da722135eb61ed06ea2b3a1862df600 Gerrit-Change-Number: 25334 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 07 Sep 2021 08:47:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:00:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 09:00:44 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25387/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/25387/3//COMMIT_MSG at 12 PS3, Line 12: ,,,,,;,,... Why return bts_nr? it's already known by the caller of the CTRL cmd. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:00:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:01:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 09:01:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add tc TC_mirror_unitdata_tx_status_blocked In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 ) Change subject: ns2: add tc TC_mirror_unitdata_tx_status_blocked ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 Gerrit-Change-Number: 25389 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 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 Tue Sep 7 09:02:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 09:02:36 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix NS STATUS validation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25390 ) Change subject: gprs_ns2: fix NS STATUS validation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I01339d93469285cc5340500717ab2b696284e12a Gerrit-Change-Number: 25390 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09: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 Sep 7 09:02:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 09:02:47 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix a white space In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25391 ) Change subject: gprs_ns2: fix a white space ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2207d13ae451ce49482625fac43b6ab1c0f215e8 Gerrit-Change-Number: 25391 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:02: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 Sep 7 09:03:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 09:03:50 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSV... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25392 ) Change subject: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 Gerrit-Change-Number: 25392 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:03: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 Sep 7 09:12:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:12:09 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c File src/vty/vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c at 352 PS2, Line 352: return vty_out(vty, "%dd %dh %dm %ds", d, h, m, s); This function is very similar to DEFUN(show_uptime.. from command.c. Can you refactor that function to use the new function? Something like this: DEFUN(show_uptime, show_uptime_cmd, "show uptime", SHOW_STR "Displays how long the program has been running\n") { vty_out(vty, "%s has been running for ", host.app_info->name); vty_out_uptime(vty, starttime); vty_out(vty, "%s", VTY_NEWLINE); return CMD_SUCCESS; } Also startime is a global variable name in command.c, but gets added here as parameter to vty_out_uptime in vty.c. Maybe rename one of them? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:12:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:19:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:19:54 +0000 Subject: Change in libosmocore[master]: ns2: nse: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25349 ) Change subject: ns2: nse: add a uptime/downtime to track the last state change ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 Gerrit-Change-Number: 25349 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 09:19:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:21:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:21:40 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25350 ) Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:21: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 Sep 7 09:22:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:22:34 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25383 ) Change subject: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b Gerrit-Change-Number: 25383 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:22:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:26:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:26:44 +0000 Subject: Change in libosmocore[master]: ns2: fix a crash when receiving a SIZE while configured In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25384 ) Change subject: ns2: fix a crash when receiving a SIZE while configured ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25384/1/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/25384/1/src/gb/gprs_ns2_sns.c at 3025 PS1, Line 3025: ns2_vc_force_unconfigured(gss->sns_nsvc); * What about other calls to this function? * Why not move these into ns2_vc_force_unconfigured()? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 Gerrit-Change-Number: 25384 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 09:26: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 Sep 7 09:27:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:27:23 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix NS STATUS validation In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25390 ) Change subject: gprs_ns2: fix NS STATUS validation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I01339d93469285cc5340500717ab2b696284e12a Gerrit-Change-Number: 25390 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:27: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 Sep 7 09:27:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:27:34 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix a white space In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25391 ) Change subject: gprs_ns2: fix a white space ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2207d13ae451ce49482625fac43b6ab1c0f215e8 Gerrit-Change-Number: 25391 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:27: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 Sep 7 09:29:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:29:55 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSV... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25392 ) Change subject: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 Gerrit-Change-Number: 25392 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:29:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:40:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:40:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct wh... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341/2//COMMIT_MSG at 21 PS2, Line 21: Please add related issues to commit messages. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:40:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:41:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:41:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: f_init_vty: only reset SNS configuration when using SNS. In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 ) Change subject: ns: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:41:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:42:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:42:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmi... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 ) Change subject: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c Gerrit-Change-Number: 25351 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:42: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 Sep 7 09:44:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:44:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add tests to test UNITDATA over a BLOCKED nsvcs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 ) Change subject: ns: add tests to test UNITDATA over a BLOCKED nsvcs ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 Gerrit-Change-Number: 25352 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:44: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 Sep 7 09:45:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:45:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: always clean up the ns_codec In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 ) Change subject: ns: always clean up the ns_codec ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 Gerrit-Change-Number: 25353 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09: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 Tue Sep 7 09:45:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:45:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: fix missing f_ prefix for function f_tx_block_by_vty In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 ) Change subject: ns: fix missing f_ prefix for function f_tx_block_by_vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7b692b3b76946b36dcaa3d23b32b5ccb5007702 Gerrit-Change-Number: 25354 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:45:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:46:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:46:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for UNITDATA transmission In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 ) Change subject: ns: add test case for UNITDATA transmission ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 Gerrit-Change-Number: 25355 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:46:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 09:49:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:49:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for SIZE after a successful configuration In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 ) Change subject: ns: add test case for SIZE after a successful configuration ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d Gerrit-Change-Number: 25382 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:49: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 Sep 7 09:50:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:50:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add tc TC_mirror_unitdata_tx_status_blocked In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 ) Change subject: ns2: add tc TC_mirror_unitdata_tx_status_blocked ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 Gerrit-Change-Number: 25389 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:50: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 Sep 7 09:54:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 09:54:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct wh... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341/2/ns/NS_Tests.ttcn File ns/NS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341/2/ns/NS_Tests.ttcn at 715 PS2, Line 715: /* 2nd bind won't have a valid connection to the ttcn3 */ the other test cases you've added in the patchset are easy to read. but this one is not so clear to me. How is it verified that "2nd bind won't have a valid connection to the ttcn3"? I'm guessing because there are only t_NS_ALIVE received and nothing else? It would be nice if the comment explained this a bit better. (but overall looking good and it seems you know what you are doing, so this doesn't need to block the merge.) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 09:54:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 10:01:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 7 Sep 2021 10:01:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 ) Change subject: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb Gerrit-Change-Number: 25388 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 10:01:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 10:10:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 10:10:07 +0000 Subject: Change in osmo-bts[master]: WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Patch Set 1: (2 comments) in general a good idea, but probably should be tested using the osmo-rfds to see it [still] works wit real MS https://gerrit.osmocom.org/c/osmo-bts/+/25386/1/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25386/1/src/common/ta_control.c at 40 PS1, Line 40: advance it's only a "timing offset" or "time of arrival" but i've never heard 'timing advance offset'. https://gerrit.osmocom.org/c/osmo-bts/+/25386/1/src/common/ta_control.c at 49 PS1, Line 49: / I'm not sure averaging is useful in the TA context. There might be some loop filtering needed to avoid oscillation, similar to MS power control. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 10:10: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 Sep 7 11:22:25 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 11:22:25 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 1: > Places where expected ranges are not clear or quite wide, see the pid_t This particular case is due to the undefinedness of the pid_t range. We can never get rid of this weird range guessing game with pid_t. > or simply a vty command where you'd like yo parse any unsigned range. By not having an unsigned API, you are limiting the code to lower ranges since the range of naturals numbers an integer variable can hold is always less than the unsigned counterpart. My argument here is that INT64_MAX is sufficiently giga-humungous that this is not even a thing in practice: 9223372036854775807!! Ususally we have ranges 0-255 or 0-999 or 0-INT_MAX or even if it is 0-UINT_MAX, these are all way way way WAY WAY WAY WAAAAY (> two billion times!) within int64_t. So I doubt that we need an osmo_str_to_uint64() ever. But I don't oppose adding unsigned API of this in principle. If we need it, then of course we can simply add this API later. I merely don't see a reason to add this now without a concrete user that needs it: it's called API creep to have more functions than you need, for no *real* reason. A practical argument would be that we can directly pass an unsigned int as return argument (&val) if the data type matches, but that would mean that we need to add one function for each and every data type we use anywhere. I'd rather avoid that. BTW, that other patch moving strtol() users to osmo_str_to_int() is optional, we can e.g. leave that pid_t case in the current implementation. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 11: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 Tue Sep 7 11:27:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 11:27:03 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c File src/gsm/gsm23236.c: https://gerrit.osmocom.org/c/libosmocore/+/25347/4/src/gsm/gsm23236.c at 443 PS4, Line 443: if (osmo_str_to_int(&val, str, base, 0, INT16_MAX)) > we can revisit this next time we have some weird bug Agreed! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 11:27:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 11:34:11 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 11:34:11 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25387/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/25387/3//COMMIT_MSG at 12 PS3, Line 12: ,,,,,;,,... > Why return bts_nr? it's already known by the caller of the CTRL cmd. I decided to return one single consistent syntax for all commands querying this, be it for one BTS or all BTS. Then users can have a single parsing implementation, and no confusion possible. Also it makes the implementation in osmo-bsc composing the rf_state string much simpler. The ttcn3 test for this also benefits from the consistency. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 11:34:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 11:42:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 11:42:50 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25345 to look at the new patch set (#2). Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... utils: add osmo_str_to_int() and osmo_str_to_int64() Properly converting a string to an integer while validating against all possible errors is not trivial. It is a recurring theme in code review, and there are places in osmo code that do it wrong. End this by providing a simple API, if for nothing else then as an example of how to use strol() / strtoul() / strtoll() / strtoull() in an airtight way. A subsequent patch, adding stat items to the CTRL interface, uses this to properly validate indexes in CTRL variables and convert them to int. Related: SYS#5542 Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 400 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/25345/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 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 Tue Sep 7 11:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 11:44:48 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 3: I'd prefer having bts_nr out of there if not needed. That would need an extra function appending bts_nr when running the comamnd for all bts, I think it's fine. Not blocking though, let's see what other think about it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 11: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 Tue Sep 7 12:01:42 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 12:01:42 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 2: The linter does not like that osmo_str_to_int() sometimes returns a positive errno. I did that on purpose. Why am I doing this? There is a difference between exceeding the data type range and exceeding the min_val..max_val range. If exceeding the min_val..max_val range, the result will still reflect the exact number parsed. If exceeding the data type range, the result will be clamped to INT_MIN..INT_MAX. So I thought it is good to distinguish between -ERANGE where our osmo code says "out of range", and strtoll() ERANGE where the library call says "cannot be parsed because there are too many digits". Does anyone oppose removing the linter V-1? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:01: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 Sep 7 12:36:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 12:36:35 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 2: TBH I forgot to write about it, but I found it weird that you returned positive in that case. I'd prefer returning negative on all errors. After all, you can still check the exact error to decide what to do. IMHO it makes sense to return psoitive or negative if the "success" range is more than 1 value, for instance returning error or a size. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:36:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:38:06 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: f_init_vty: only reset SNS configuration when using SNS. In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 ) Change subject: ns: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... Patch Set 2: Code-Review+2 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:38:14 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmi... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 ) Change subject: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port ...................................................................... Patch Set 1: 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c Gerrit-Change-Number: 25351 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:38:18 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmi... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 ) Change subject: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c Gerrit-Change-Number: 25351 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:38:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add tests to test UNITDATA over a BLOCKED nsvcs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 ) Change subject: ns: add tests to test UNITDATA over a BLOCKED nsvcs ...................................................................... Patch Set 1: Code-Review+2 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 Gerrit-Change-Number: 25352 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38: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 Sep 7 12:38:29 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: always clean up the ns_codec In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 ) Change subject: ns: always clean up the ns_codec ...................................................................... Patch Set 1: Code-Review+2 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 Gerrit-Change-Number: 25353 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38: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 Sep 7 12:38:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for UNITDATA transmission In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 ) Change subject: ns: add test case for UNITDATA transmission ...................................................................... Patch Set 1: Code-Review+2 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 Gerrit-Change-Number: 25355 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12: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 Tue Sep 7 12:38:40 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for SIZE after a successful configuration In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 ) Change subject: ns: add test case for SIZE after a successful configuration ...................................................................... Patch Set 1: Code-Review+2 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d Gerrit-Change-Number: 25382 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38: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 Sep 7 12:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:38:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add tc TC_mirror_unitdata_tx_status_blocked In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 ) Change subject: ns2: add tc TC_mirror_unitdata_tx_status_blocked ...................................................................... Patch Set 1: Code-Review+2 1 + 1 = 2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 Gerrit-Change-Number: 25389 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:38:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct wh... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... Patch Set 2: Code-Review+2 (1 comment) 1 + 1 = 2 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341/2/ns/NS_Tests.ttcn File ns/NS_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341/2/ns/NS_Tests.ttcn at 715 PS2, Line 715: /* 2nd bind won't have a valid connection to the ttcn3 */ > the other test cases you've added in the patchset are easy to read. [?] If ttcn3 doesn't answer to NS_ALIVE, the second NSVC will become broken. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:42:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct wh... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 ) Change subject: ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind ...................................................................... ns: add TC_sns_bss_remove_bind_fail_sns to check SNS fails correct when removing a bind This TC produces an abort of the ns2 dummy by the memory sanitizer. Test if SNS fails when removing a bind which has the last valid connection. The ns2 has 2 binds, ttcn3 1 bind. There are 2 NSVCs. Bind -- NSVCs -- Bind. (ns2) (ttcn3) 1*-----------*1 / 2*-broken--/ Remove the 1st ns2 bind after the other NSVC has failed. Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b --- M ns/NS_Tests.ttcn 1 file changed, 39 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index c08f877..51a30ab 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -78,6 +78,7 @@ f_vty_set_prompts(NSVTY); f_vty_transceive(NSVTY, "enable"); f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "no ip-sns-bind local2"); f_vty_config2(NSVTY, {"ns", "bind udp local"}, "ip-sns signalling-weight 1 data-weight 1"); f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); @@ -686,6 +687,43 @@ f_clean_ns_codec(); } +/* Test if SNS fails when removing a bind which has the last valid connection + * + * ns2 has 2 binds, ttcn3 1 bind. + * + * nsvcs: + * ns2 ttcn3 + * 1*-----------*1 + * / + * 2*-broken--/ + * + * remove the 1st ns2 bind. + */ +testcase TC_sns_bss_remove_bind_fail_sns() runs on RAW_Test_CT { + g_handle_rx_alive := true; + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_incoming_sns_size(); + f_incoming_sns_config(); + f_outgoing_sns_config(); + var default d := activate(as_rx_alive_tx_ack()); + + f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "ip-sns-bind local2"); + f_incoming_sns_add(idx_add := 1, w_sig := 1, w_user := 1); + /* 2nd bind won't have a valid connection to the ttcn3 */ + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + NSCP[1].receive(t_NS_ALIVE); + f_sleep(1.0); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(g_nsconfig.nsei)}, "no ip-sns-bind local"); + setverdict(pass); + f_clean_ns_codec(); +} + testcase TC_idle() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); @@ -852,6 +890,7 @@ execute( TC_sns_bss_add_change_del() ); /* execute( TC_sns_bss_all_signalling_nsvcs_failed() ); */ execute( TC_sns_rx_size_force_unconf() ); + execute( TC_sns_bss_remove_bind_fail_sns() ); } if (mp_sns_role == SNS_ROLE_SGSN) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25341 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I8f7daee7a3bcadf64e8ae607619425adbefe3c4b Gerrit-Change-Number: 25341 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:48 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: f_init_vty: only reset SNS configuration when using SNS. In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 ) Change subject: ns: f_init_vty: only reset SNS configuration when using SNS. ...................................................................... ns: f_init_vty: only reset SNS configuration when using SNS. Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 --- M ns/NS_Tests.ttcn 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 51a30ab..a19477d 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -78,10 +78,12 @@ f_vty_set_prompts(NSVTY); f_vty_transceive(NSVTY, "enable"); f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); - f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); - f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "no ip-sns-bind local2"); - f_vty_config2(NSVTY, {"ns", "bind udp local"}, "ip-sns signalling-weight 1 data-weight 1"); - f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); + if (mp_dialect == NS2_DIALECT_SNS) { + f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); + f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "no ip-sns-bind local2"); + f_vty_config2(NSVTY, {"ns", "bind udp local"}, "ip-sns signalling-weight 1 data-weight 1"); + f_vty_config2(NSVTY, {"ns", "bind udp local2"}, "ip-sns signalling-weight 1 data-weight 1"); + } } /* ensure no matching message is received within 'tout' */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25342 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9ecf0abe29e5acdd18f4b18b340baeb442cc09b6 Gerrit-Change-Number: 25342 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:51 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmi... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 ) Change subject: ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port ...................................................................... ns: add TC_sns_sgsn_size_correct_port to check if SIZE_ACK is transmitted from the correct port Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c --- M ns/NS_Tests.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index a19477d..8553684 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -752,6 +752,20 @@ f_clean_ns_codec(); } +/* Ensure a SNS SIZE ACK is transmitted from the correct port */ +testcase TC_sns_sgsn_size_correct_port() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_init_ns_codec(mp_nsconfig, 1); + f_outgoing_sns_size(max_nsvcs := 10); + f_outgoing_sns_config(); + f_incoming_sns_config(); + NSCP[0].receive(t_NS_ALIVE); + f_outgoing_sns_size(max_nsvcs := 10, idx := 1); + setverdict(pass); + f_clean_ns_codec(); +} + testcase TC_sns_sgsn_add() runs on RAW_Test_CT { g_handle_rx_alive := true; f_init_vty(); @@ -900,6 +914,7 @@ execute( TC_sns_sgsn_add() ); execute( TC_sns_sgsn_del() ); execute( TC_sns_sgsn_add_change_del() ); + execute( TC_sns_sgsn_size_correct_port() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25351 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ib0fbf0cc87ff8f00fd4062b471d7a4835b45723c Gerrit-Change-Number: 25351 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:51 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add tests to test UNITDATA over a BLOCKED nsvcs In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 ) Change subject: ns: add tests to test UNITDATA over a BLOCKED nsvcs ...................................................................... ns: add tests to test UNITDATA over a BLOCKED nsvcs The UNITDATA should be rejected by a NS STATUS PDU. Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 --- M ns/NS_Tests.ttcn 1 file changed, 55 insertions(+), 2 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 8553684..105d397 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -162,6 +162,52 @@ f_sleep(1.0); } +/* 48.016 7.2.1 transmit a UNIT DATA over a BLOCKED NSVC when ttcn3 blocked it + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: block + * TTCN <- NS: block ack + * TTCN -> NS: unitdata + * TTCN <- NS: status (cause blocked) + */ +testcase TC_tx_block_unitdata_over_blocked() runs on RAW_Test_CT { + f_tx_block(); + f_sleep(1.0); + + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED)); + + setverdict(pass); + f_sleep(1.0); + f_clean_ns_codec(); +} + +/* 48.016 7.2.1 transmit a UNIT DATA over a BLOCKED NSVC when ns2 blocked it + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN <- NS: block + * TTCN -> NS: block ack + * TTCN -> NS: unitdata + * TTCN <- NS: status (cause blocked) + */ +testcase TC_rx_block_unitdata_over_blocked() runs on RAW_Test_CT { + tx_block_by_vty(); + f_sleep(1.0); + + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED)); + + setverdict(pass); + f_sleep(1.0); + f_clean_ns_codec(); +} + /* 48.016 7.2 unblock procedure * * TTCN -> NS: reset @@ -219,9 +265,9 @@ * TTCN -> NS: block * TTCN <- NS: block ack */ -testcase TC_tx_block() runs on RAW_Test_CT { +function f_tx_block(float guard_secs := 30.0) runs on RAW_Test_CT { f_init_vty(); - f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); + f_init_ns_codec(mp_nsconfig, guard_secs := guard_secs); /* do a NS Reset procedure */ f_outgoing_ns_reset(); @@ -235,6 +281,11 @@ f_sleep(1.0); } +testcase TC_tx_block() runs on RAW_Test_CT { + f_tx_block() + f_clean_ns_codec(); +} + /* 48.016 7.2 block procedure by vty * * TTCN -> NS: reset @@ -860,6 +911,8 @@ execute( TC_tx_block() ); execute( TC_tx_block_by_vty() ); execute( TC_tx_block_by_vty_reset() ); + execute( TC_tx_block_unitdata_over_blocked() ); + execute( TC_rx_block_unitdata_over_blocked() ); // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci /* 48.016 7.2 Unblock procedure */ execute( TC_tx_unblock() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25352 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I62ce93ca4953f8b0476a15479089db2f6c2fa684 Gerrit-Change-Number: 25352 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: always clean up the ns_codec In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 ) Change subject: ns: always clean up the ns_codec ...................................................................... ns: always clean up the ns_codec The f_clean_ns_codec() was introduced later to clean up the ns_codec properly. Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 --- M ns/NS_Tests.ttcn 1 file changed, 19 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 105d397..8b321ff 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -131,6 +131,7 @@ setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } testcase TC_tx_reset_tx_alive() runs on RAW_Test_CT { @@ -145,6 +146,7 @@ setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } testcase TC_tx_reset_rx_alive() runs on RAW_Test_CT { @@ -160,6 +162,7 @@ setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2.1 transmit a UNIT DATA over a BLOCKED NSVC when ttcn3 blocked it @@ -227,6 +230,7 @@ f_outgoing_ns_unblock(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2 tx unblock retries @@ -254,6 +258,7 @@ f_outgoing_ns_unblock(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2 block procedure @@ -318,6 +323,7 @@ testcase TC_tx_block_by_vty() runs on RAW_Test_CT { tx_block_by_vty(30.0); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.2 block precedure by vty and reset the NSVC. @@ -336,6 +342,7 @@ [] T.timeout { setverdict(pass); } } deactivate(d); + f_clean_ns_codec(); } /* 48.016 7.4.1 ignore unexpected NS_ALIVE ACK */ @@ -347,6 +354,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET with wrong nsei */ @@ -359,6 +367,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET with wrong nsvci */ @@ -371,6 +380,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET with wrong nsvci + nsei */ @@ -383,6 +393,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET_ACK with wrong nsei */ @@ -395,6 +406,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET_ACK with wrong nsvci */ @@ -407,6 +419,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 NS_RESET_ACK with wrong nsvci + nsei */ @@ -419,6 +432,7 @@ f_fails_except_reset(); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3.1 ignore unexpected NS_RESET_ACK after NS_RESET+ALIVE */ @@ -439,6 +453,7 @@ f_ensure_no_ns(answer_alive := true, tout := 15.0); setverdict(pass); f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.3 NS_RESET retries */ @@ -460,6 +475,7 @@ } f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 behave RESET_ACK got dropped @@ -493,6 +509,7 @@ } f_sleep(1.0); + f_clean_ns_codec(); } /* 48.016 7.4 test procedure for frame relay with a single nsvci */ @@ -526,10 +543,12 @@ testcase TC_alive_retries_single_reset() runs on RAW_Test_CT { f_alive_retries_single(reset := true); + f_clean_ns_codec(); } testcase TC_alive_retries_single_no_resp() runs on RAW_Test_CT { f_alive_retries_single(reset := false); + f_clean_ns_codec(); } /* 48.016 SNS test cases */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25353 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I7a84f75ebd1c68b3c0a6b55b8c49903c51dd6b92 Gerrit-Change-Number: 25353 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: fix missing f_ prefix for function f_tx_block_by_vty In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 ) Change subject: ns: fix missing f_ prefix for function f_tx_block_by_vty ...................................................................... ns: fix missing f_ prefix for function f_tx_block_by_vty All function should have this prefix Change-Id: Id7b692b3b76946b36dcaa3d23b32b5ccb5007702 --- M ns/NS_Tests.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 8b321ff..58aeacd 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -200,7 +200,7 @@ * TTCN <- NS: status (cause blocked) */ testcase TC_rx_block_unitdata_over_blocked() runs on RAW_Test_CT { - tx_block_by_vty(); + f_tx_block_by_vty(); f_sleep(1.0); NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); @@ -301,7 +301,7 @@ * TTCN <- NS: block * TTCN -> NS: block ack */ -function tx_block_by_vty(float guard_secs := 30.0) runs on RAW_Test_CT { +function f_tx_block_by_vty(float guard_secs := 30.0) runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig, guard_secs := guard_secs); @@ -321,7 +321,7 @@ } testcase TC_tx_block_by_vty() runs on RAW_Test_CT { - tx_block_by_vty(30.0); + f_tx_block_by_vty(30.0); f_sleep(1.0); f_clean_ns_codec(); } @@ -332,7 +332,7 @@ testcase TC_tx_block_by_vty_reset() runs on RAW_Test_CT { timer T := 10.0; - tx_block_by_vty(60.0); + f_tx_block_by_vty(60.0); f_outgoing_ns_reset(); var default d := activate(ax_rx_fail_on_any_ns()); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25354 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id7b692b3b76946b36dcaa3d23b32b5ccb5007702 Gerrit-Change-Number: 25354 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for UNITDATA transmission In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 ) Change subject: ns: add test case for UNITDATA transmission ...................................................................... ns: add test case for UNITDATA transmission Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 --- M ns/NS_Tests.ttcn 1 file changed, 28 insertions(+), 1 deletion(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 58aeacd..c3247fc 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -77,6 +77,7 @@ map(self:NSVTY, system:NSVTY); f_vty_set_prompts(NSVTY); f_vty_transceive(NSVTY, "enable"); + f_vty_config2(NSVTY, {}, "mirror-mode disable"); f_vty_transceive(NSVTY, "nsvc nsei " & int2str(mp_nsconfig.nsei) & " force-unconfigured"); if (mp_dialect == NS2_DIALECT_SNS) { f_vty_config2(NSVTY, {"ns", "nse " & int2str(mp_nsconfig.nsei)}, "ip-sns-bind local"); @@ -218,7 +219,7 @@ * TTCN -> NS: unblock * TTCN <- NS: unblock ack */ -testcase TC_tx_unblock() runs on RAW_Test_CT { +function f_tx_unblock() runs on RAW_Test_CT { f_init_vty(); f_init_ns_codec(mp_nsconfig, guard_secs := 30.0); @@ -229,6 +230,10 @@ f_outgoing_ns_unblock(); setverdict(pass); +} + +testcase TC_tx_unblock() runs on RAW_Test_CT { + f_tx_unblock(); f_sleep(1.0); f_clean_ns_codec(); } @@ -922,6 +927,27 @@ f_clean_ns_codec(); } +/* 48.016 7.2 transmit a UNITDATA over an ALIVE connection + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unitdata + * TTCN <- NS: unitdata (mirror) + */ +testcase TC_tx_unitdata() runs on RAW_Test_CT { + f_tx_unblock(); + + f_vty_config2(NSVTY, {}, "mirror-mode enable"); + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_vty_config2(NSVTY, {}, "mirror-mode disable"); + + f_sleep(1.0); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -965,6 +991,7 @@ } execute( TC_no_reset_alive_ack() ); + execute( TC_tx_unitdata() ); } if (mp_dialect == NS2_DIALECT_SNS) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25355 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5f59581d4257436eb9651c0c5ab5dd002f23d834 Gerrit-Change-Number: 25355 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:52 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case for SIZE after a successful configuration In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 ) Change subject: ns: add test case for SIZE after a successful configuration ...................................................................... ns: add test case for SIZE after a successful configuration Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d --- M ns/NS_Tests.ttcn 1 file changed, 17 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index c3247fc..3d7b31a 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -827,6 +827,22 @@ f_clean_ns_codec(); } +/* Ensure a SIZE after a success full configuration is handled */ +testcase TC_sns_sgsn_size_after_success() runs on RAW_Test_CT { + f_init_vty(); + f_init_ns_codec(mp_nsconfig); + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + NSCP[0].receive(t_NS_ALIVE); + + f_outgoing_sns_size(); + f_outgoing_sns_config(); + f_incoming_sns_config(); + setverdict(pass); + f_clean_ns_codec(); +} + /* Ensure a SNS SIZE ACK is transmitted from the correct port */ testcase TC_sns_sgsn_size_correct_port() runs on RAW_Test_CT { f_init_vty(); @@ -1014,6 +1030,7 @@ execute( TC_sns_sgsn_del() ); execute( TC_sns_sgsn_add_change_del() ); execute( TC_sns_sgsn_size_correct_port() ); + execute( TC_sns_sgsn_size_after_success() ); } } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25382 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I5a7d55e9b3d28872baa4259f33333db8c0d6081d Gerrit-Change-Number: 25382 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:42:53 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:42:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns2: add tc TC_mirror_unitdata_tx_status_blocked In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 ) Change subject: ns2: add tc TC_mirror_unitdata_tx_status_blocked ...................................................................... ns2: add tc TC_mirror_unitdata_tx_status_blocked Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 --- M ns/NS_Tests.ttcn 1 file changed, 29 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index 3d7b31a..b57d686 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -964,6 +964,34 @@ f_clean_ns_codec(); } +/* 48.016 7.2 ensure tx status (blocked) is correctly parsed + * + * TTCN -> NS: reset + * TTCN <- NS: reset ack + * TTCN -> NS: unblock + * TTCN <- NS: unblock ack + * TTCN -> NS: unitdata + * TTCN <- NS: unitdata (mirror) + * TTCN -> NS: status (blocked) + * TTCN -> NS: unitdata + * TTCN <- NS: status (blocked) + */ +testcase TC_mirror_unitdata_tx_status_blocked() runs on RAW_Test_CT { + f_tx_unblock(); + + f_vty_config2(NSVTY, {}, "mirror-mode enable"); + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + var PDU_NS pdu := f_ns_exp(tr_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + + NSCP[0].send(ts_NS_STATUS(NS_CAUSE_NSVC_BLOCKED, pdu)); + NSCP[0].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED)); + + f_vty_config2(NSVTY, {}, "mirror-mode disable"); + f_sleep(1.0); + f_clean_ns_codec(); +} + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -974,6 +1002,7 @@ execute( TC_tx_block_by_vty_reset() ); execute( TC_tx_block_unitdata_over_blocked() ); execute( TC_rx_block_unitdata_over_blocked() ); + execute( TC_mirror_unitdata_tx_status_blocked() ); // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci /* 48.016 7.2 Unblock procedure */ execute( TC_tx_unblock() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25389 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9be2037b9228d2400bd293841ae6b957cb25c501 Gerrit-Change-Number: 25389 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:43:58 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 12:43:58 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 to look at the new patch set (#4). Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... add CTRL 'rf_states' and 'bts.N.rf_states' These commands return a listing of OML state, RF policy as well as RSL connection status for each TRX in the form: ,,,,,;,,... For example, the root node 'rf_states' may return: 0,0,operational,unlocked,on,rsl-up;1,0,operational,unlocked,on,rsl-down;2,0,inoperational,locked,on,rsl-down; A 'bts.N.rf_states' returns the same form of string, but lists only the TRX for the given BTS nr. Note, there is already a CTRL command 'bts.N.rf_state' (singular 'rf_state', not plural 'rf_states'), which only reflects the overall status of all TRX combined. This new command has per-TRX resolution. The rf-policy is so far always looked up in the global gsm_network flag, as does the old 'rf_state' command; see osmo_bsc_rf_get_policy_by_bts() which does not depend on the specific BTS at all. This may be worth revisiting in the future, so I am already including the rf-policy in the rf_state string for each TRX, even though it is globally identical. Related: SYS#5542 Related: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb (osmo-ttcn3-hacks) Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e --- M include/osmocom/bsc/osmo_bsc_rf.h M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_rf_ctrl.c 3 files changed, 119 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/25387/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:47:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 12:47:01 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12:47:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:50:59 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:50:59 +0000 Subject: Change in libosmocore[master]: ns2: fix a crash when receiving a SIZE while configured In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25384 ) Change subject: ns2: fix a crash when receiving a SIZE while configured ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25384/1/src/gb/gprs_ns2_sns.c File src/gb/gprs_ns2_sns.c: https://gerrit.osmocom.org/c/libosmocore/+/25384/1/src/gb/gprs_ns2_sns.c at 3025 PS1, Line 3025: ns2_vc_force_unconfigured(gss->sns_nsvc); > * What about other calls to this function? [?] Because ns2_vc_force_unconfigured() is called by different parts. ns2_vc_force_unconfigured() is part of the NSVC. While SNS is a different part of the system (like a class). Only in this case we want to ignore event because they would trigger other actions. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 Gerrit-Change-Number: 25384 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 12:50:59 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 12:53:15 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 12:53:15 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 12: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 Tue Sep 7 12:58:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 12:58:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_ctrl_trx_rf_locked References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 ) Change subject: bsc: add TC_ctrl_trx_rf_locked ...................................................................... bsc: add TC_ctrl_trx_rf_locked Related: OS#5542 Depends: Ie46fd730797b64fb185d705c3507e36f5f23ef4b (osmo-bsc) Change-Id: I2bb5096732f75a7341c7e83951e63c5a2038b469 --- M bsc/BSC_Tests.ttcn 1 file changed, 69 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/93/25393/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index b87446d..c7f607b 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -10014,6 +10014,73 @@ f_shutdown_helper(); } +/* GET and SET the bts.N.trx.M.rf_locked CTRL variable */ +testcase TC_ctrl_trx_rf_locked() runs on test_CT { + var MSC_ConnHdlr vc_conn; + + f_init(nr_bts := 2, handler_mode := true, nr_msc := 1); + f_sleep(1.0); + + /* BTS 0, 1, 2 are OML unlocked, only BTS 0, 1 are actually connected to RSL. */ + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: lock BTS 1 TRX 0"); + f_ctrl_set(IPA_CTRL, "bts.1.trx.0.rf_locked", "1"); + /* give it a moment to settle the FSM status */ + f_sleep(1.0); + + /* Now BTS 1 TRX 0 should reflect "locked". Note the RF policy stays "on", because this is still handled + * globally in osmo-bsc. Probably after sending "rf_locked 1" for a TRX, that TRX should reflect an RF policy + * of "off"? But that's for a future patch if at all. */ + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,locked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: lock the already locked TRX, nothing should change"); + f_ctrl_set(IPA_CTRL, "bts.1.trx.0.rf_locked", "1"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,locked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: unlock BTS 1 TRX 0"); + f_ctrl_set(IPA_CTRL, "bts.1.trx.0.rf_locked", "0"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: unlock an already unlocked TRX, nothing should change"); + f_ctrl_set(IPA_CTRL, "bts.0.trx.0.rf_locked", "0"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: unlock an inoperational TRX"); + f_ctrl_set(IPA_CTRL, "bts.3.trx.0.rf_locked", "0"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_shutdown_helper(); +} + control { /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); @@ -10314,6 +10381,8 @@ execute( TC_imm_ass_pre_chan_ack() ); execute( TC_imm_ass_pre_chan_ack_dyn_ts() ); execute( TC_imm_ass_pre_ts_ack_dyn_ts() ); + + execute( TC_ctrl_trx_rf_locked() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2bb5096732f75a7341c7e83951e63c5a2038b469 Gerrit-Change-Number: 25393 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 Sep 7 12:58:28 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 12:58:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix errmsg in f_ctrl_set() which said "GET" References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25394 ) Change subject: fix errmsg in f_ctrl_set() which said "GET" ...................................................................... fix errmsg in f_ctrl_set() which said "GET" Change-Id: I56cd20c3c1b22ac0b1e5c03727c4e6d6cbfa6973 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/94/25394/1 diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index 15cb26f..8d5607b 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -61,7 +61,7 @@ [] pt.receive(tr_CtrlMsgSetRepl(id, variable, val)) { } [] pt.receive(tr_CtrlMsgTrap) { repeat; } [] pt.receive(tr_CtrlMsgError) -> value rx { - setverdict(fail, "Error in CTRL GET ", variable, ": ", rx.err.reason); + setverdict(fail, "Error in CTRL SET ", variable, ": ", rx.err.reason); mtc.stop; } [] T.timeout { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I56cd20c3c1b22ac0b1e5c03727c4e6d6cbfa6973 Gerrit-Change-Number: 25394 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 Sep 7 12:58:58 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 12:58:58 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... add CTRL bts.N.trx.M.rf_locked (RW) Add per-TRX command to lock/unlock single TRX. (Besides the global root-node rf_locked command setting the global RF policy.) Corresponds to VTY command: 'bts N' / 'trx N' / 'rf_locked (0|1)'. Related: SYS#5542 Related: I2bb5096732f75a7341c7e83951e63c5a2038b469 (osmo-ttcn3-hacks) Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b --- M src/osmo-bsc/bsc_ctrl_commands.c 1 file changed, 32 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/95/25395/1 diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index 3b8125a..c7547b0 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -536,6 +536,37 @@ } CTRL_CMD_DEFINE(net_rf_lock, "rf_locked"); +static int get_trx_rf_locked(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts_trx *trx = cmd->node; + /* Return rf_locked = 1 only if it is explicitly locked. If it is in shutdown or null state, do not "trick" the + * caller into thinking that sending "rf_locked 0" is necessary to bring the TRX up. */ + cmd->reply = (trx->mo.nm_state.administrative == NM_STATE_LOCKED) ? "1" : "0"; + return CTRL_CMD_REPLY; +} + +static int set_trx_rf_locked(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts_trx *trx = cmd->node; + int locked; + if (osmo_str_to_int(&locked, cmd->value, 10, 0, 1)) { + cmd->reply = "Invalid value"; + return CTRL_CMD_ERROR; + } + + gsm_trx_lock_rf(trx, locked, "ctrl"); + + /* Let's not assume the nm FSM has already switched its state, just return the intended rf_locked value. */ + cmd->reply = locked ? "1" : "0"; + return CTRL_CMD_REPLY; +} + +static int verify_trx_rf_locked(struct ctrl_cmd *cmd, const char *value, void *data) +{ + return osmo_str_to_int(NULL, value, 10, 0, 1); +} +CTRL_CMD_DEFINE(trx_rf_locked, "rf_locked"); + static int get_net_bts_num(struct ctrl_cmd *cmd, void *data) { struct gsm_network *net = cmd->node; @@ -661,6 +692,7 @@ rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_max_power); rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_arfcn); + rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_rf_locked); return rc; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 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 Sep 7 13:03:26 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 13:03:26 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 2: > TBH I forgot to write about it, but I found it weird that you returned positive in that case. I'd prefer returning negative on all errors. > After all, you can still check the exact error to decide what to do. You did read my reasoning of distinguishing between -ERANGE and ERANGE? If we always return negative then there is no distinction possible. Is your answer that my argument is moot? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 13:03: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 Sep 7 13:05:10 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 13:05:10 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25224 to look at the new patch set (#7). Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... CTRL: expose stat_item groups on CTRL Expose all stat items as RO variables of the form stat_item.last.group_name.N.item_name stat_item.last.group_name.by_name.idx_name.item_name For (possibly contrived) example: stat_item.last.trunk.0.endpoints:used stat_item.last.trunk.by_name.virtual-0.endpoints:used Include the 'last' token to ease future extension, like 'max'. Put this token in the beginning, similarly to rate_ctr variables, which begin with 'per_sec', 'per_hour', ... Related: SYS#5542 Related: I178dcf4516606aa561d47b06061b8a416d3c40cf (osmo-ttcn3-hacks) Related: Ic1b35b7406547f92818afe399a2383d154576409 (osmo-ttcn3-hacks) Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c --- M src/ctrl/control_if.c 1 file changed, 99 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/25224/7 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 13:14:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 13:14:27 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) 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/+/25395 to look at the new patch set (#2). Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... add CTRL bts.N.trx.M.rf_locked (RW) Add per-TRX command to lock/unlock single TRX. (Besides the global root-node rf_locked command setting the global RF policy.) Corresponds to VTY command: 'bts N' / 'trx N' / 'rf_locked (0|1)'. Related: SYS#5542 Related: I2bb5096732f75a7341c7e83951e63c5a2038b469 (osmo-ttcn3-hacks) Depends: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 (libosmocore) Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b --- M TODO-RELEASE M src/osmo-bsc/bsc_ctrl_commands.c 2 files changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/95/25395/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 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 Sep 7 13:23:22 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 13:23:22 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test: add second NSVC to allow SNS tests to work In-Reply-To: References: Message-ID: lynxis lazus has removed daniel from this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25373 ) Change subject: ttcn3-ns-test: add second NSVC to allow SNS tests to work ...................................................................... Removed reviewer daniel. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I92f2ca61af1e3d0427e6810eddab8f2d6299242d Gerrit-Change-Number: 25373 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: deleteReviewer -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 13:23:24 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 13:23:24 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns In-Reply-To: References: Message-ID: lynxis lazus has removed daniel from this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25374 ) Change subject: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns ...................................................................... Removed reviewer daniel. -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 Gerrit-Change-Number: 25374 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-MessageType: deleteReviewer -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 13:49:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 13:49:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_ctrl_trx_rf_locked In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 ) Change subject: bsc: add TC_ctrl_trx_rf_locked ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2bb5096732f75a7341c7e83951e63c5a2038b469 Gerrit-Change-Number: 25393 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 13: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 Tue Sep 7 13:49:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 13:49:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix errmsg in f_ctrl_set() which said "GET" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25394 ) Change subject: fix errmsg in f_ctrl_set() which said "GET" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I56cd20c3c1b22ac0b1e5c03727c4e6d6cbfa6973 Gerrit-Change-Number: 25394 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 13:49:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 13:52:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 13:52:34 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 2: > Patch Set 2: > You did read my reasoning of distinguishing between -ERANGE and ERANGE? > If we always return negative then there is no distinction possible. > Is your answer that my argument is moot? You could pick a different error code, like -ENOBUF if parsing failed, or -EINVAL if value is not in osmocom defined range. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 13:52:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 13:53:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 13:53:10 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25224 ) Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 13:53:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 13:59:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 13:59:52 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 13:59:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 16:41:19 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 16:41:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: make TC_stats_conn_fail less fragile References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 ) Change subject: bsc: make TC_stats_conn_fail less fragile ...................................................................... bsc: make TC_stats_conn_fail less fragile Add a delay between sending the RSL Conn Fail IND and checking the stats values, so that osmo-bsc has a good chance of receiving the message and promoting the failure into the stats values first. Even though jenkins shows no failures, when testing locally, this test fails a lot for me without that bit of delay. Change-Id: Iaf0173239528337283b23f70840d36ad25f14950 --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/96/25396/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index c7f607b..2291483 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1810,6 +1810,8 @@ ts_RSL_CONN_FAIL_IND(g_chan_nr, RSL_ERR_RADIO_LINK_FAIL), IPAC_PROTO_RSL_TRX0)); + f_sleep(1.0); + /* Expect stats to be 1 */ expect := { {name := "TTCN3.bts.0.chan.rf_fail", mtype := "c", min := 1, max := 1}, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf0173239528337283b23f70840d36ad25f14950 Gerrit-Change-Number: 25396 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 Sep 7 17:04:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 17:04:48 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... fixup for Early IMM ASS: use proper TSC Testing has shown that the Training Sequence Code in pre-chan-ack mode is inaccurate (only worked with a BSIC that incidentally yielded the same TSC value as the wrong TSC value sent in the IMM ASS msg). Move the code setting the correct TSC and TSC-Set to the first stage of channel activation (lchan_fsm_wait_ts_ready_onenter()) so that it is available for both pre-chan-ack and pre-ts-ack Early-IA modes. Have a separate function for setting the preliminary values requested in Channel Activation (lchan->activate.*) into the accepted operative places (lchan->*). Call this early for early-IA modes. Hence the TSC and TSC-Set used in the early IMM ASS message is now the correct one, and the same as sent during Channel Activation. There shouldn't be any, but if there are other values besides TSC suffering from the same problem, they are now also set to the right values before sending IMM ASS early. Related: SYS#5559 Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 40 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/25397/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index def70de..69920e6 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -672,6 +672,8 @@ return rc; } +static void post_activ_ack_accept_preliminary_settings(struct gsm_lchan *lchan); + static void lchan_fsm_wait_ts_ready_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_lchan *lchan = lchan_fi_lchan(fi); @@ -717,6 +719,17 @@ if (lchan_activate_set_ch_mode_rate_and_mr_config(lchan)) return; + /* If enabling VAMOS mode and no specific TSC Set was selected, make sure to select a sane TSC Set by + * default: Set 1 for the primary and Set 2 for the shadow lchan. For non-VAMOS lchans, TSC Set 1. */ + if (lchan->activate.info.tsc_set > 0) + lchan->activate.tsc_set = lchan->activate.info.tsc_set; + else + lchan->activate.tsc_set = lchan->vamos.is_secondary ? 2 : 1; + + /* Use the TSC provided in the modification request, if any. Otherwise use the timeslot's configured + * TSC. */ + lchan->activate.tsc = (lchan->activate.info.tsc >= 0) ? lchan->activate.info.tsc : gsm_ts_tsc(lchan->ts); + use_mgwep_ci = lchan_use_mgw_endpoint_ci_bts(lchan); LOG_LCHAN(lchan, LOGL_INFO, @@ -742,7 +755,13 @@ if (lchan->activate.info.imm_ass_time == IMM_ASS_TIME_PRE_TS_ACK) { /* Send the Immediate Assignment even before the timeslot is ready, saving a dyn TS timeslot roundtrip - * on Abis (experimental). */ + * on Abis (experimental). + * + * Until the Channel Activation ACK is received, various values still are preliminary and hence live in + * lchan->activate.*. We're doing things early here and need e.g. an accurate lchan->tsc, so already + * copy the preliminary values from lchan->activate.* into the operative places in lchan->* prematurely. + */ + post_activ_ack_accept_preliminary_settings(lchan); lchan_send_imm_ass(fi); } } @@ -801,19 +820,13 @@ break; } + /* rsl_tx_chan_activ() and build_encr_info() access lchan->encr, make sure it reflects the values requested for + * activation. + * TODO: rather leave it in lchan->activate.info.encr until the ACK is received, which means that + * rsl_tx_chan_activ() should use lchan->activate.info.encr and build_encr_info() should be passed encr as an + * explicit argument. */ lchan->encr = lchan->activate.info.encr; - /* If enabling VAMOS mode and no specific TSC Set was selected, make sure to select a sane TSC Set by - * default: Set 1 for the primary and Set 2 for the shadow lchan. For non-VAMOS lchans, TSC Set 1. */ - if (lchan->activate.info.tsc_set > 0) - lchan->activate.tsc_set = lchan->activate.info.tsc_set; - else - lchan->activate.tsc_set = lchan->vamos.is_secondary ? 2 : 1; - - /* Use the TSC provided in the modification request, if any. Otherwise use the timeslot's configured - * TSC. */ - lchan->activate.tsc = (lchan->activate.info.tsc >= 0) ? lchan->activate.info.tsc : gsm_ts_tsc(lchan->ts); - rc = rsl_tx_chan_activ(lchan, act_type, ho_ref); if (rc) { lchan_fail_to(LCHAN_ST_UNUSED, "Tx Chan Activ failed: %s (%d)", strerror(-rc), rc); @@ -825,7 +838,13 @@ if (lchan->activate.info.imm_ass_time == IMM_ASS_TIME_PRE_CHAN_ACK) { /* Send the Immediate Assignment directly after the Channel Activation request, saving one Abis - * roundtrip between ChanRqd and Imm Ass. */ + * roundtrip between ChanRqd and Imm Ass. + * + * Until the Channel Activation ACK is received, various values still are preliminary and hence live in + * lchan->activate.*. We're doing things early here and need e.g. an accurate lchan->tsc, so already + * copy the preliminary values from lchan->activate.* into the operative places in lchan->* prematurely. + */ + post_activ_ack_accept_preliminary_settings(lchan); lchan_send_imm_ass(fi); } } @@ -886,15 +905,20 @@ } } -static void lchan_fsm_post_activ_ack(struct osmo_fsm_inst *fi) +static void post_activ_ack_accept_preliminary_settings(struct gsm_lchan *lchan) { - struct gsm_lchan *lchan = lchan_fi_lchan(fi); - lchan->current_ch_mode_rate = lchan->activate.ch_mode_rate; lchan->current_mr_conf = lchan->activate.mr_conf_filtered; lchan->vamos.enabled = lchan->activate.info.vamos; lchan->tsc_set = lchan->activate.tsc_set; lchan->tsc = lchan->activate.tsc; +} + +static void lchan_fsm_post_activ_ack(struct osmo_fsm_inst *fi) +{ + struct gsm_lchan *lchan = lchan_fi_lchan(fi); + + post_activ_ack_accept_preliminary_settings(lchan); LOG_LCHAN(lchan, LOGL_INFO, "Rx Activ ACK %s\n", gsm48_chan_mode_name(lchan->current_ch_mode_rate.chan_mode)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 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 Sep 7 17:07:38 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 17:07:38 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC In-Reply-To: References: Message-ID: neels has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... fixup for Early IMM ASS: use proper TSC Testing has shown that the Training Sequence Code in pre-chan-ack mode is inaccurate (only worked with a BSIC that incidentally yielded the same TSC value as the wrong TSC value sent in the IMM ASS msg). Move the code setting the correct TSC and TSC-Set to the first stage of channel activation (lchan_fsm_wait_ts_ready_onenter()) so that it is available for both pre-chan-ack and pre-ts-ack Early-IA modes. Have a separate function for setting the preliminary values requested in Channel Activation (lchan->activate.*) into the accepted operative places (lchan->*). Call this early for early-IA modes. Hence the TSC and TSC-Set used in the early IMM ASS message is now the correct one, and the same as sent during Channel Activation. There shouldn't be any, but if there are other values besides TSC suffering from the same problem, they are now also set to the right values before sending IMM ASS early. Related: SYS#5559 Related: I4479244b0c53648e62e84e1ebf986f51d659484f (osmo-ttcn3-hacks) Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 40 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/25397/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 17:09:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 17:09:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: properly check TSC and ARFCN in early IA tests References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398 ) Change subject: bsc: properly check TSC and ARFCN in early IA tests ...................................................................... bsc: properly check TSC and ARFCN in early IA tests Tests have shown that the Training Sequence Set was not correct in early IMM ASS messages. Add validation of the TSC and ARFCN in IMM ASS messages for all early IA related tests. This makes the tests fail. Related osmo-bsc patch linked below makes the tests pass again. Related: SYS#5559 Related: I9f26074154600d854a0b3baee2f38a6666f4cb56 (osmo-bsc) Change-Id: I4479244b0c53648e62e84e1ebf986f51d659484f --- M bsc/BSC_Tests.ttcn 1 file changed, 33 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/25398/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2b90a6e..5d65a66 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9649,7 +9649,9 @@ } private function f_verify_imm_ass(RSL_Message imm_ass, template uint8_t ra := ?, template GsmFrameNumber fn := ?, - template RslChannelNr chan_nr := ?) + template RslChannelNr chan_nr := ?, + template (present) uint12_t arfcn := ?, + template (present) uint3_t tsc := ?) { var RSL_IE_Body full_imm_ass_info; if (not f_rsl_find_ie(imm_ass, RSL_IE_FULL_IMM_ASS_INFO, full_imm_ass_info)) { @@ -9660,7 +9662,7 @@ var GsmRrMessage rr_imm_ass := dec_GsmRrMessage(full_imm_ass_info.full_imm_ass_info.payload); var template GsmRrMessage expect_imm_ass := tr_IMM_ASS(ra := ra, fn := fn, - ch_desc := tr_ChanDescH0(chan_nr), + ch_desc := tr_ChanDescH0(chan_nr, arfcn, tsc), page_mode := ?); if (not match(rr_imm_ass, expect_imm_ass)) { log("Error: expected ", expect_imm_ass, " got ", rr_imm_ass); @@ -9688,12 +9690,19 @@ /* First send the Chan Act ACK */ var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr; + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } + f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn + 10)); /* Then expect the Immediate Assignment, after we ACKed the chan act */ imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Check that the lchan is working */ var octetstring l3 := '00010203040506'O; @@ -9726,10 +9735,16 @@ chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr; + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */ imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Only now send the Chan Act ACK */ f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); @@ -9792,10 +9807,16 @@ chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0)); chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */ imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Only now send the Chan Act ACK */ f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); @@ -9863,9 +9884,15 @@ chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0)); chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Check that the lchan is working */ var octetstring l3 := '00010203040506'O; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4479244b0c53648e62e84e1ebf986f51d659484f Gerrit-Change-Number: 25398 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 Sep 7 17:09:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 17:09:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_imm_ass_pre_ts_ack References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 ) Change subject: bsc: add TC_imm_ass_pre_ts_ack ...................................................................... bsc: add TC_imm_ass_pre_ts_ack Also test the early IA feature for non-dyn TS in 'pre-ts-ack' mode, for completeness' sake. Related: SYS#5559 Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 --- M bsc/BSC_Tests.ttcn 1 file changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/99/25399/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 5d65a66..74cdaeb 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9761,6 +9761,51 @@ f_shutdown_helper(); } +testcase TC_imm_ass_pre_ts_ack() runs on test_CT { + var RSL_Message chan_act; + var RSL_Message imm_ass; + + f_init(1, false); + f_sleep(1.0); + + f_vty_set_imm_ass(BSCVTY, 0, "pre-ts-ack"); + + /* RA containing reason=LU */ + var GsmFrameNumber fn := 2342; + var uint8_t ra := 2; + f_ipa_tx(0, ts_RSL_CHAN_RQD(int2oct(ra, 1), fn)); + + /* (set bts 0 cfg back to default) */ + f_vty_set_imm_ass(BSCVTY); + + chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); + var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr; + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } + + /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */ + imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); + + /* Only now send the Chan Act ACK */ + f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); + + /* Check that the lchan is working */ + var octetstring l3 := '00010203040506'O; + f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3)); + + var BSSAP_N_CONNECT_ind rx_c_ind; + BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind; + BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId)); + + f_sleep(1.0); + f_shutdown_helper(); +} + testcase TC_imm_ass_pre_chan_ack_dyn_ts() runs on test_CT { /* change Timeslot 6 before f_init() starts RSL */ f_init_vty(); @@ -10198,6 +10243,7 @@ execute( TC_imm_ass_post_chan_ack() ); execute( TC_imm_ass_pre_chan_ack() ); + execute( TC_imm_ass_pre_ts_ack() ); execute( TC_imm_ass_pre_chan_ack_dyn_ts() ); execute( TC_imm_ass_pre_ts_ack_dyn_ts() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 Gerrit-Change-Number: 25399 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 Sep 7 17:16:43 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 17:16:43 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 2: > You could pick a different error code, like -ENOBUF if parsing failed, or -EINVAL if value is not in osmocom defined range. ERANGE is the matching code for surpassing the range. strtoll() also returns EINVAL in some cases. Is it really such a problem to pass a positive errno? It guarantees that there is no overlap between strtoll() and self made rc. Most callers will just do 'if (osmo_str_to_int(..)) return ERR;' -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 17: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 Tue Sep 7 17:24:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 7 Sep 2021 17:24:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: fix errmsg in f_ctrl_set() which said "GET" In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25394 ) Change subject: fix errmsg in f_ctrl_set() which said "GET" ...................................................................... fix errmsg in f_ctrl_set() which said "GET" Change-Id: I56cd20c3c1b22ac0b1e5c03727c4e6d6cbfa6973 --- M library/Osmocom_CTRL_Functions.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/library/Osmocom_CTRL_Functions.ttcn b/library/Osmocom_CTRL_Functions.ttcn index 15cb26f..8d5607b 100644 --- a/library/Osmocom_CTRL_Functions.ttcn +++ b/library/Osmocom_CTRL_Functions.ttcn @@ -61,7 +61,7 @@ [] pt.receive(tr_CtrlMsgSetRepl(id, variable, val)) { } [] pt.receive(tr_CtrlMsgTrap) { repeat; } [] pt.receive(tr_CtrlMsgError) -> value rx { - setverdict(fail, "Error in CTRL GET ", variable, ": ", rx.err.reason); + setverdict(fail, "Error in CTRL SET ", variable, ": ", rx.err.reason); mtc.stop; } [] T.timeout { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I56cd20c3c1b22ac0b1e5c03727c4e6d6cbfa6973 Gerrit-Change-Number: 25394 Gerrit-PatchSet: 2 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 Sep 7 18:01:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:01:40 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 2: > Patch Set 2: > > > You could pick a different error code, like -ENOBUF if parsing failed, or -EINVAL if value is not in osmocom defined range. > > ERANGE is the matching code for surpassing the range. > strtoll() also returns EINVAL in some cases. > > Is it really such a problem to pass a positive errno? > It guarantees that there is no overlap between strtoll() and self made rc. > Most callers will just do 'if (osmo_str_to_int(..)) return ERR;' I'm with pau. errors are negative. We can always use different negative values to distinguish multiple different error causes. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 18:01: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 Tue Sep 7 18:02:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:02:46 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25346 ) Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:02: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 Sep 7 18:03:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:03:05 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25224 ) Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 18:03:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:05:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:05:37 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 6: Code-Review+1 Once more I'm more agreeing with pespin's point of view in favor of the unsigned varioant of the helper API functions. Not a blocker, but I am in agreement. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:05: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 Sep 7 18:06:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:06:27 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 18:06:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:07:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: make TC_stats_conn_fail less fragile In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 ) Change subject: bsc: make TC_stats_conn_fail less fragile ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf0173239528337283b23f70840d36ad25f14950 Gerrit-Change-Number: 25396 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 18: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 Tue Sep 7 18:08:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:08:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 ) Change subject: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb Gerrit-Change-Number: 25388 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 18: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 Tue Sep 7 18:08:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:08:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_ctrl_trx_rf_locked In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 ) Change subject: bsc: add TC_ctrl_trx_rf_locked ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2bb5096732f75a7341c7e83951e63c5a2038b469 Gerrit-Change-Number: 25393 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18: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 Tue Sep 7 18:09:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:09:00 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:09:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:09:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:09:07 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:09:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:09:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:09:20 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25374 ) Change subject: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 Gerrit-Change-Number: 25374 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:09: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 Sep 7 18:09:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:09:41 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test: add second NSVC to allow SNS tests to work In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25373 ) Change subject: ttcn3-ns-test: add second NSVC to allow SNS tests to work ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I92f2ca61af1e3d0427e6810eddab8f2d6299242d Gerrit-Change-Number: 25373 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 18:09: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 Sep 7 18:09:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:09:45 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test: add second NSVC to allow SNS tests to work In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25373 ) Change subject: ttcn3-ns-test: add second NSVC to allow SNS tests to work ...................................................................... ttcn3-ns-test: add second NSVC to allow SNS tests to work The SNS tests need both NSVCs. The NS_Tests.sns.cfg from the ttcn3 repository can be used as reference. Change-Id: I92f2ca61af1e3d0427e6810eddab8f2d6299242d --- M ttcn3-ns-test/sns/NS_Tests.cfg M ttcn3-ns-test/sns/osmo-ns-dummy.cfg 2 files changed, 17 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved; Verified diff --git a/ttcn3-ns-test/sns/NS_Tests.cfg b/ttcn3-ns-test/sns/NS_Tests.cfg index bc3c870..680e67e 100644 --- a/ttcn3-ns-test/sns/NS_Tests.cfg +++ b/ttcn3-ns-test/sns/NS_Tests.cfg @@ -22,6 +22,18 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.29.10", + local_udp_port := 22000, + remote_ip := "172.18.29.101", + remote_udp_port := 23001 + } + }, + nsvci := 1235 } } } diff --git a/ttcn3-ns-test/sns/osmo-ns-dummy.cfg b/ttcn3-ns-test/sns/osmo-ns-dummy.cfg index 985aff3..64ce4b1 100644 --- a/ttcn3-ns-test/sns/osmo-ns-dummy.cfg +++ b/ttcn3-ns-test/sns/osmo-ns-dummy.cfg @@ -89,8 +89,12 @@ timer tsns-config-retries 3 bind udp local listen 172.18.29.101 23000 - accept-ipaccess ip-sns signalling-weight 2 data-weight 2 + accept-ipaccess + bind udp local2 + listen 172.18.29.101 23001 + ip-sns signalling-weight 1 data-weight 1 + accept-ipaccess nse 1234 ip-sns-remote 172.18.29.10 22000 ip-sns-bind local -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25373 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I92f2ca61af1e3d0427e6810eddab8f2d6299242d Gerrit-Change-Number: 25373 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:09:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:09:45 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25374 ) Change subject: ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns ...................................................................... ttcn3-ns-test-sgsn-sns: add test run for ns sgsn role with sns Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 --- A ttcn3-ns-test-sgsn-sns/jenkins.sh A ttcn3-ns-test-sgsn-sns/sgsn-sns A ttcn3-ns-test/jenkins-sgsn-sns.sh A ttcn3-ns-test/sgsn-sns/NS_Tests.cfg A ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg 5 files changed, 187 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved; Verified diff --git a/ttcn3-ns-test-sgsn-sns/jenkins.sh b/ttcn3-ns-test-sgsn-sns/jenkins.sh new file mode 120000 index 0000000..b4143ac --- /dev/null +++ b/ttcn3-ns-test-sgsn-sns/jenkins.sh @@ -0,0 +1 @@ +../ttcn3-ns-test/jenkins-sgsn-sns.sh \ No newline at end of file diff --git a/ttcn3-ns-test-sgsn-sns/sgsn-sns b/ttcn3-ns-test-sgsn-sns/sgsn-sns new file mode 120000 index 0000000..761f95d --- /dev/null +++ b/ttcn3-ns-test-sgsn-sns/sgsn-sns @@ -0,0 +1 @@ +../ttcn3-ns-test/sgsn-sns/ \ No newline at end of file diff --git a/ttcn3-ns-test/jenkins-sgsn-sns.sh b/ttcn3-ns-test/jenkins-sgsn-sns.sh new file mode 100755 index 0000000..4460380 --- /dev/null +++ b/ttcn3-ns-test/jenkins-sgsn-sns.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "osmo-ns-$IMAGE_SUFFIX" \ + "ttcn3-ns-test" + +set_clean_up_trap +set -e + +SUBNET=32 +network_create $SUBNET + +mkdir $VOL_BASE_DIR/ns-tester +cp sgsn-sns/NS_Tests.cfg $VOL_BASE_DIR/ns-tester/ + +mkdir $VOL_BASE_DIR/ns +cp sgsn-sns/osmo-ns-dummy.cfg $VOL_BASE_DIR/ns/ + +echo Starting container with osmo-ns-dummy +docker run --rm \ + $(docker_network_params $SUBNET 101) \ + --ulimit core=-1 \ + -v $VOL_BASE_DIR/ns:/data \ + --name ${BUILD_TAG}-ns-sgsn-sns -d \ + $DOCKER_ARGS \ + $REPO_USER/osmo-ns-$IMAGE_SUFFIX \ + /bin/sh -c "/usr/local/bin/osmo-ns-dummy -c /data/osmo-ns-dummy.cfg -p 4240 >>/data/osmo-ns-dummy.log 2>&1" + +echo Starting container with NS testsuite +docker run --rm \ + $(docker_network_params $SUBNET 10) \ + --ulimit core=-1 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/ns-tester:/data \ + --name ${BUILD_TAG}-ttcn3-ns-test-sgsn-sns \ + $DOCKER_ARGS \ + $REPO_USER/ttcn3-ns-test diff --git a/ttcn3-ns-test/sgsn-sns/NS_Tests.cfg b/ttcn3-ns-test/sgsn-sns/NS_Tests.cfg new file mode 100644 index 0000000..d84f43c --- /dev/null +++ b/ttcn3-ns-test/sgsn-sns/NS_Tests.cfg @@ -0,0 +1,46 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/ns/NS_Tests.default" + +[LOGGING] + +[TESTPORT_PARAMETERS] +*.NSVTY.CTRL_HOSTNAME := "172.18.32.101" + +[MODULE_PARAMETERS] +NS_Tests.mp_nsconfig := { + nsei := 1234, + nsvc := { + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.32.10", + local_udp_port := 22000, + remote_ip := "172.18.32.101", + remote_udp_port := 23000 + } + }, + nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.32.10", + local_udp_port := 22000, + remote_ip := "172.18.32.101", + remote_udp_port := 23001 + } + }, + nsvci := 1235 + } + } +} +NS_Tests.mp_dialect := NS2_DIALECT_SNS +NS_Tests.mp_sns_role := SNS_ROLE_SGSN + +[MAIN_CONTROLLER] + +[EXECUTE] +NS_Tests.control diff --git a/ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg b/ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg new file mode 100644 index 0000000..d1c6bef --- /dev/null +++ b/ttcn3-ns-test/sgsn-sns/osmo-ns-dummy.cfg @@ -0,0 +1,100 @@ +! +! OsmoNSdummy (1.4.0.326-f57c-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category-hex 0 + logging print category 1 + logging print extended-timestamp 1 + logging print level 1 + logging print file basename + logging level force-all info + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +log gsmtap 172.18.32.10 + logging filter all 0 + logging color 1 + logging print category-hex 1 + logging print category 0 + logging timestamp 0 + logging print file 1 + logging level lglobal debug + logging level llapd debug + logging level linp debug + logging level lmux debug + logging level lmi debug + logging level lmib debug + logging level lsms debug + logging level lctrl debug + logging level lgtp debug + logging level lstats debug + logging level lgsup debug + logging level loap debug + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp debug + logging level ljibuf debug + logging level lrspro debug + logging level lns debug + logging level lbssgp debug +! +stats reporter statsd + disable + remote-ip 172.18.32.10 + remote-port 8125 + mtu 1024 + level subscriber + prefix TTCN3 + flush-period 1 + enable +stats interval 0 +! +line vty + no login + bind 172.18.32.101 +! +ns + timer tns-block 3 + timer tns-block-retries 3 + timer tns-reset 3 + timer tns-reset-retries 3 + timer tns-test 12 + timer tns-alive 3 + timer tns-alive-retries 3 + timer tsns-prov 3 + timer tsns-size-retries 3 + timer tsns-config-retries 3 + bind udp local + listen 172.18.32.101 23000 + ip-sns signalling-weight 2 data-weight 2 + accept-ipaccess + bind udp local2 + listen 172.18.32.101 23001 + ip-sns signalling-weight 1 data-weight 1 + accept-ipaccess + nse 1234 ip-sns-role-sgsn + ip-sns-bind local + ip-sns-bind local2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25374 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I1a9205885d381c04141dad752de0b39d9268ab69 Gerrit-Change-Number: 25374 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-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 Sep 7 18:10:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:10:30 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ttcn3-ns-test-fr ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/25375/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ci/+/25375/1//COMMIT_MSG at 7 PS1, Line 7: fr name doesn't match code below (sgsn-sns) -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 18:10:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:11:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:11:29 +0000 Subject: Change in libosmocore[master]: ns2: nse: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25349 ) Change subject: ns2: nse: add a uptime/downtime to track the last state change ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 Gerrit-Change-Number: 25349 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 18:11:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:11:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:11:47 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25350 ) Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18: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 Tue Sep 7 18:11:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:11:59 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25383 ) Change subject: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b Gerrit-Change-Number: 25383 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:11: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 Sep 7 18:12:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:12:12 +0000 Subject: Change in libosmocore[master]: ns2: fix a crash when receiving a SIZE while configured In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25384 ) Change subject: ns2: fix a crash when receiving a SIZE while configured ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 Gerrit-Change-Number: 25384 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 18:12: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 Sep 7 18:12:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:12:24 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix NS STATUS validation In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25390 ) Change subject: gprs_ns2: fix NS STATUS validation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I01339d93469285cc5340500717ab2b696284e12a Gerrit-Change-Number: 25390 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:12: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 Sep 7 18:12:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:12:48 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSV... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25392 ) Change subject: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 Gerrit-Change-Number: 25392 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:12:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:13:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:13:18 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25356 ) Change subject: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b76088b2d46973b477deb555214d64fcc746754 Gerrit-Change-Number: 25356 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 07 Sep 2021 18:13: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 Sep 7 18:13:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:13:21 +0000 Subject: Change in osmo-bsc[master]: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25356 ) Change subject: doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL ...................................................................... doc: power_control.adoc: Add small time graph showcasing P_CON_INTERVAL Original graph made by Vadim Yanitskiy. Change-Id: I9b76088b2d46973b477deb555214d64fcc746754 Related: SYS#5371 --- M doc/manuals/chapters/power_control.adoc 1 file changed, 16 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 30c36b1..95adbb1 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -163,7 +163,22 @@ second Uplink SACCH block is skipped; value 2 corresponds to the interval of 1920 ms, so 3/4 received SACCH blocks are skipped. -3GPP TS 45.008 briefly mentiones this parameter in table A.1 (P_Con_INTERVAL). +3GPP TS 45.008 briefly mentions this parameter in table A.1 (P_Con_INTERVAL). + +A small time graph is depicted below for better understanding of the meaning of +values for this parameter, since it is not obvious at all. + +.Example: Suspension interval accomplished by several values of P_CON_INTERVAL +---- +|<-->| - one SACCH multi-frame period +| | +|----|----|----|----|----|----|----|----|----> SACCH multi-frames +a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s, default) +b) * * * * * P_CON_INTERVAL=1 (0.96 s) +c) * * * P_CON_INTERVAL=2 (1.92 s) +d) * * P_CON_INTERVAL=3 (2.88 s) +e) * * P_CON_INTERVAL=4 (3.84 s) +---- ==== Power change step size -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25356 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9b76088b2d46973b477deb555214d64fcc746754 Gerrit-Change-Number: 25356 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 7 Sep 2021 18:24:31 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 07 Sep 2021 18:24: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 Sep 7 18:27:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:27:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: properly check TSC and ARFCN in early IA tests In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398 ) Change subject: bsc: properly check TSC and ARFCN in early IA tests ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4479244b0c53648e62e84e1ebf986f51d659484f Gerrit-Change-Number: 25398 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 18:27:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 18:27:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:27:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: properly check TSC and ARFCN in early IA tests In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398 ) Change subject: bsc: properly check TSC and ARFCN in early IA tests ...................................................................... bsc: properly check TSC and ARFCN in early IA tests Tests have shown that the Training Sequence Set was not correct in early IMM ASS messages. Add validation of the TSC and ARFCN in IMM ASS messages for all early IA related tests. This makes the tests fail. Related osmo-bsc patch linked below makes the tests pass again. Related: SYS#5559 Related: I9f26074154600d854a0b3baee2f38a6666f4cb56 (osmo-bsc) Change-Id: I4479244b0c53648e62e84e1ebf986f51d659484f --- M bsc/BSC_Tests.ttcn 1 file changed, 33 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2b90a6e..5d65a66 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9649,7 +9649,9 @@ } private function f_verify_imm_ass(RSL_Message imm_ass, template uint8_t ra := ?, template GsmFrameNumber fn := ?, - template RslChannelNr chan_nr := ?) + template RslChannelNr chan_nr := ?, + template (present) uint12_t arfcn := ?, + template (present) uint3_t tsc := ?) { var RSL_IE_Body full_imm_ass_info; if (not f_rsl_find_ie(imm_ass, RSL_IE_FULL_IMM_ASS_INFO, full_imm_ass_info)) { @@ -9660,7 +9662,7 @@ var GsmRrMessage rr_imm_ass := dec_GsmRrMessage(full_imm_ass_info.full_imm_ass_info.payload); var template GsmRrMessage expect_imm_ass := tr_IMM_ASS(ra := ra, fn := fn, - ch_desc := tr_ChanDescH0(chan_nr), + ch_desc := tr_ChanDescH0(chan_nr, arfcn, tsc), page_mode := ?); if (not match(rr_imm_ass, expect_imm_ass)) { log("Error: expected ", expect_imm_ass, " got ", rr_imm_ass); @@ -9688,12 +9690,19 @@ /* First send the Chan Act ACK */ var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr; + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } + f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn + 10)); /* Then expect the Immediate Assignment, after we ACKed the chan act */ imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Check that the lchan is working */ var octetstring l3 := '00010203040506'O; @@ -9726,10 +9735,16 @@ chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr; + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */ imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Only now send the Chan Act ACK */ f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); @@ -9792,10 +9807,16 @@ chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0)); chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */ imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Only now send the Chan Act ACK */ f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); @@ -9863,9 +9884,15 @@ chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0)); chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); - f_verify_imm_ass(imm_ass, ra, fn, chan_nr); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); /* Check that the lchan is working */ var octetstring l3 := '00010203040506'O; -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25398 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I4479244b0c53648e62e84e1ebf986f51d659484f Gerrit-Change-Number: 25398 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 Sep 7 18:27:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 7 Sep 2021 18:27:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_imm_ass_pre_ts_ack In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 ) Change subject: bsc: add TC_imm_ass_pre_ts_ack ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 Gerrit-Change-Number: 25399 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 07 Sep 2021 18:27:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 23:45:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 23:45:35 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25383 ) Change subject: ns2: nsvc: reject UNITDATA when the remote BLOCK'ed ...................................................................... ns2: nsvc: reject UNITDATA when the remote BLOCK'ed When the remote initiated the BLOCK the nsvc would still accept UNITDATA over this nsvc. Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 1fcc3ad..7649798 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -438,6 +438,7 @@ break; case GPRS_NS2_EV_RX_BLOCK: priv->initiate_block = false; + priv->accept_unitdata = false; ns2_tx_block_ack(priv->nsvc); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 2); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25383 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I3ed4aa105a84e448082d3028fe844aae7720426b Gerrit-Change-Number: 25383 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 23:45:37 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 23:45:37 +0000 Subject: Change in libosmocore[master]: ns2: fix a crash when receiving a SIZE while configured In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25384 ) Change subject: ns2: fix a crash when receiving a SIZE while configured ...................................................................... ns2: fix a crash when receiving a SIZE while configured The ns2_vc_force_unconfigured() needs to be protected otherwise it would free gss->nsvc which will be used later. It further would run into another SNS failure which is wrong too. Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 --- M src/gb/gprs_ns2_sns.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 7619b66..0afc06e 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -3021,7 +3021,9 @@ /* keep the NSVC we need for SNS, but unconfigure it */ gss->sns_nsvc->sig_weight = 0; gss->sns_nsvc->data_weight = 0; + gss->block_no_nsvc_events = true; ns2_vc_force_unconfigured(gss->sns_nsvc); + gss->block_no_nsvc_events = false; ns2_sns_compute_local_ep_from_binds(fi); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25384 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If14b9e3fcd5d139457b10d06517302168091d8d8 Gerrit-Change-Number: 25384 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 23:45:37 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 23:45:37 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix NS STATUS validation In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25390 ) Change subject: gprs_ns2: fix NS STATUS validation ...................................................................... gprs_ns2: fix NS STATUS validation The wrong TLVs were used. Change-Id: I01339d93469285cc5340500717ab2b696284e12a --- M src/gb/gprs_ns2_message.c 1 file changed, 3 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index dccf51d..5e3e025 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -95,12 +95,11 @@ return -1; } - uint8_t _cause = tlvp_val8(tp, NS_IE_VCI, 0); - + uint8_t _cause = tlvp_val8(tp, NS_IE_CAUSE, 0); switch (_cause) { case NS_CAUSE_NSVC_BLOCKED: case NS_CAUSE_NSVC_UNKNOWN: - if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { + if (!TLVP_PRES_LEN(tp, NS_IE_VCI, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } @@ -110,7 +109,7 @@ case NS_CAUSE_PROTO_ERR_UNSPEC: case NS_CAUSE_INVAL_ESSENT_IE: case NS_CAUSE_MISSING_ESSENT_IE: - if (!TLVP_PRES_LEN(tp, NS_IE_CAUSE, 1)) { + if (!TLVP_PRES_LEN(tp, NS_IE_PDU, 1)) { *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25390 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I01339d93469285cc5340500717ab2b696284e12a Gerrit-Change-Number: 25390 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 23:45:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 23:45:38 +0000 Subject: Change in libosmocore[master]: gprs_ns2: fix a white space In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25391 ) Change subject: gprs_ns2: fix a white space ...................................................................... gprs_ns2: fix a white space Change-Id: I2207d13ae451ce49482625fac43b6ab1c0f215e8 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved osmith: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 7649798..989a00c 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -853,7 +853,7 @@ } } - if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { + if (nsvc->nsvci_is_valid && TLVP_PRESENT(tp, NS_IE_VCI)) { nsvci = tlvp_val16be(tp, NS_IE_VCI); if (nsvci != nsvc->nsvci) { /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25391 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2207d13ae451ce49482625fac43b6ab1c0f215e8 Gerrit-Change-Number: 25391 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 7 23:45:39 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 7 Sep 2021 23:45:39 +0000 Subject: Change in libosmocore[master]: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSV... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25392 ) Change subject: gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED ...................................................................... gprs_ns2: nsvc: react on STATUS PDUs with cause code NSVC UNKNOWN/NSVC BLOCKED A STATUS PDU with cause code NSVC UNKNOWN/NSVC BLOCKED informs the other side about a state mismatch between the side. Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 27 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 989a00c..03a355b 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -616,7 +616,9 @@ { struct gprs_ns2_vc_priv *priv = fi->priv; struct gprs_ns2_inst *nsi = ns_inst_from_fi(fi); + struct tlv_parsed *tp; struct msgb *msg = data; + uint8_t cause; switch (event) { case GPRS_NS2_EV_REQ_OM_RESET: @@ -707,6 +709,27 @@ if (fi->state == GPRS_NS2_ST_BLOCKED) osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); break; + case GPRS_NS2_EV_RX_STATUS: + tp = data; + cause = tlvp_val8(tp, NS_IE_CAUSE, 0); + switch (cause) { + case NS_CAUSE_NSVC_BLOCKED: + if (fi->state != GPRS_NS2_ST_BLOCKED) { + LOG_NS_SIGNAL(priv->nsvc, "Rx", NS_PDUT_STATUS, LOGL_ERROR, ": remote side reported blocked state.\n"); + priv->initiate_block = false; + priv->accept_unitdata = false; + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, nsi->timeout[NS_TOUT_TNS_BLOCK], 0); + } + break; + case NS_CAUSE_NSVC_UNKNOWN: + if (fi->state != GPRS_NS2_ST_RESET && fi->state != GPRS_NS2_ST_UNCONFIGURED) { + LOG_NS_SIGNAL(priv->nsvc, "Rx", NS_PDUT_STATUS, LOGL_ERROR, ": remote side reported unknown nsvc.\n"); + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + } + break; + } + + break; } } @@ -726,6 +749,7 @@ S(GPRS_NS2_EV_RX_RESET) | S(GPRS_NS2_EV_RX_ALIVE) | S(GPRS_NS2_EV_RX_ALIVE_ACK) | + S(GPRS_NS2_EV_RX_STATUS) | S(GPRS_NS2_EV_REQ_FORCE_UNCONFIGURED) | S(GPRS_NS2_EV_REQ_OM_RESET) | S(GPRS_NS2_EV_REQ_OM_BLOCK) | @@ -894,6 +918,9 @@ /* UNITDATA have to free msg because it might send the msg layer upwards */ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); return 0; + case NS_PDUT_STATUS: + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_STATUS, tp); + break; default: LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25392 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib6a2424f3027a30f14ef0a9fc2230e6aae9a2a04 Gerrit-Change-Number: 25392 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 06:15:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 06:15:50 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 to look at the new patch set (#2). Change subject: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns ...................................................................... jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns Depends: docker-playground I1a9205885d381c04141dad752de0b39d9268ab69 Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb --- M jobs/ttcn3-testsuites.yml 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/75/25375/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 06:16:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 06:16:37 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ci/+/25375/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ci/+/25375/1//COMMIT_MSG at 7 PS1, Line 7: fr > name doesn't match code below (sgsn-sns) good catch, fixed -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 06:16:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 06:16:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 06:16:53 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns ...................................................................... Patch Set 2: Verified+1 Code-Review+2 re-applying +2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 06:16:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 06:16:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 06:16:56 +0000 Subject: Change in osmo-ci[master]: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25375 ) Change subject: jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns ...................................................................... jobs/ttcn3-testsuites.yml: add ns-test-sgsn-sns Depends: docker-playground I1a9205885d381c04141dad752de0b39d9268ab69 Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb --- M jobs/ttcn3-testsuites.yml 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: osmith: Looks good to me, approved; Verified Jenkins Builder: Verified diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index 1704327..e3e9f3e 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -126,6 +126,9 @@ blocking: "^(ttcn3|TTCN3-.*)-ns-test-fr.*" timer: 20 11 * * * node: hdlc + - ttcn3-ns-test-sgsn-sns: + blocking: "^(ttcn3|TTCN3-.*)-ns-test-sgsn-sns.*" + timer: 30 11 * * * - ttcn3-pcap-client-test: blocking: "^(ttcn3|TTCN3-.*)-pcap-client-test.*" timer: 40 11 * * * -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25375 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Ifb08fafa408b8c622998080b4ec2932b0c3fd3bb Gerrit-Change-Number: 25375 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 06:58:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 06:58:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_imm_ass_pre_ts_ack In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 ) Change subject: bsc: add TC_imm_ass_pre_ts_ack ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 Gerrit-Change-Number: 25399 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 08 Sep 2021 06:58:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 10:49:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 10:49:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: make TC_stats_conn_fail less fragile In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 ) Change subject: bsc: make TC_stats_conn_fail less fragile ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf0173239528337283b23f70840d36ad25f14950 Gerrit-Change-Number: 25396 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 10:49: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 Sep 8 11:12:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 11:12:13 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.h 5 files changed, 45 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/25400/1 diff --git a/src/bts.cpp b/src/bts.cpp index beb626d..c463606 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,7 +201,11 @@ OSMO_STAT_ITEM_NO_UNIT, 4, 0}, { "pdch.available", "PDCH available ", OSMO_STAT_ITEM_NO_UNIT, 50, 0}, - { "pdch.occupied", "PDCH occupied ", + { "pdch.occupied", "PDCH occupied (all) ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, + { "pdch.occupied.gprs", "PDCH occupied (GPRS) ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, + { "pdch.occupied.egprs","PDCH occupied (EGPRS)", OSMO_STAT_ITEM_NO_UNIT, 50, 0}, }; diff --git a/src/bts.h b/src/bts.h index a6e7150..d9a86eb 100644 --- a/src/bts.h +++ b/src/bts.h @@ -184,6 +184,8 @@ STAT_MS_PRESENT, STAT_PDCH_AVAILABLE, STAT_PDCH_OCCUPIED, + STAT_PDCH_OCCUPIED_GPRS, + STAT_PDCH_OCCUPIED_EGPRS, }; /* RACH.ind parameters (to be parsed) */ diff --git a/src/pdch.cpp b/src/pdch.cpp index e213c28..8b40d7a 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1036,6 +1036,31 @@ return tbf; } +void gprs_rlcmac_pdch::num_tbfs_update(gprs_rlcmac_tbf *tbf, bool is_attach) +{ + enum tbf_type type = tbf->is_egprs_enabled() ? TBF_TYPE_EGPRS : TBF_TYPE_GPRS; + int threshold = is_attach ? 0 : 1; + int inc = is_attach ? 1 : -1; + uint8_t ul_dl_gprs = m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_GPRS] + + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_GPRS]; + uint8_t ul_dl_egprs = m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_EGPRS] + + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_EGPRS]; + + /* Count PDCHs with at least one TBF as "occupied", as in + * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 0 (threshold) + * TBFs in this PDCH to 1, increase the counter by 1 (inc). */ + if (ul_dl_gprs + ul_dl_egprs == threshold) + bts_stat_item_add(trx->bts, STAT_PDCH_OCCUPIED, inc); + + /* Update occupied GPRS/EGPRS stats too (? B.2.1.54-55) */ + if (type == TBF_TYPE_GPRS && ul_dl_gprs == threshold) + bts_stat_item_add(trx->bts, STAT_PDCH_OCCUPIED_GPRS, inc); + else if (type == TBF_TYPE_EGPRS && ul_dl_egprs == threshold) + bts_stat_item_add(trx->bts, STAT_PDCH_OCCUPIED_EGPRS, inc); + + m_num_tbfs[tbf->direction][type] += inc; +} + void gprs_rlcmac_pdch::attach_tbf(gprs_rlcmac_tbf *tbf) { gprs_rlcmac_ul_tbf *ul_tbf; @@ -1045,13 +1070,7 @@ "%s has not been detached, overwriting it\n", m_tbfs[tbf->direction][tbf->tfi()]->name()); - /* Count PDCHs with at least one TBF as "occupied", as in - * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 0 TBFs in - * this PDCH to 1, increase the counter by 1. */ - if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 0) - bts_stat_item_inc(trx->bts, STAT_PDCH_OCCUPIED); - - m_num_tbfs[tbf->direction] += 1; + num_tbfs_update(tbf, 1); if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); m_assigned_usf |= 1 << ul_tbf->m_usf[ts_no]; @@ -1061,7 +1080,7 @@ LOGPDCH(this, DRLCMAC, LOGL_INFO, "Attaching %s, %d TBFs, " "USFs = %02x, TFIs = %08x.\n", - tbf->name(), m_num_tbfs[tbf->direction], + tbf->name(), num_tbfs(tbf->direction), m_assigned_usf, m_assigned_tfi[tbf->direction]); } @@ -1071,13 +1090,7 @@ OSMO_ASSERT(m_num_tbfs[tbf->direction] > 0); - /* Count PDCHs with at least one TBF as "occupied", as in - * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 1 TBFs in - * this PDCH to 0, decrease the counter by 1. */ - if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 1) - bts_stat_item_dec(trx->bts, STAT_PDCH_OCCUPIED); - - m_num_tbfs[tbf->direction] -= 1; + num_tbfs_update(tbf, 0); if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); m_assigned_usf &= ~(1 << ul_tbf->m_usf[ts_no]); @@ -1089,7 +1102,7 @@ LOGPDCH(this, DRLCMAC, LOGL_INFO, "Detaching %s, %d TBFs, " "USFs = %02x, TFIs = %08x.\n", - tbf->name(), m_num_tbfs[tbf->direction], + tbf->name(), num_tbfs(tbf->direction), m_assigned_usf, m_assigned_tfi[tbf->direction]); } diff --git a/src/pdch.h b/src/pdch.h index 00f0b9d..6243a61 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -145,9 +145,11 @@ enum gprs_rlcmac_tbf_direction dir); void free_resources(); + + void num_tbfs_update(gprs_rlcmac_tbf *tbf, bool is_attach); #endif - uint8_t m_num_tbfs[2]; + uint8_t m_num_tbfs[2][2]; /* by direction (UL/DL), type (GPRS/EGPRS) */ uint8_t m_num_reserved[2]; uint8_t m_assigned_usf; /* bit set */ uint32_t m_assigned_tfi[2]; /* bit set */ @@ -158,7 +160,7 @@ inline unsigned gprs_rlcmac_pdch::num_tbfs(enum gprs_rlcmac_tbf_direction dir) const { - return m_num_tbfs[dir]; + return m_num_tbfs[dir][TBF_TYPE_GPRS] + m_num_tbfs[dir][TBF_TYPE_EGPRS]; } inline unsigned gprs_rlcmac_pdch::num_reserved( diff --git a/src/tbf.h b/src/tbf.h index 0932933..ebe1d95 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -86,6 +86,11 @@ TBF_CTR_EGPRS_DL_MCS9, }; +enum tbf_type { + TBF_TYPE_GPRS, + TBF_TYPE_EGPRS, +}; + extern const struct rate_ctr_group_desc tbf_ctrg_desc; extern unsigned int next_tbf_ctr_group_id; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 11:12:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 11:12:14 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... pdch: has_gprs_only_tb_attached: use m_num_tbfs Make use of the separate EGPRS counters added in previous patch I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 to shorten has_gprs_only_tb_attached. Related: SYS#4878 Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae --- M src/pdch.cpp 1 file changed, 1 insertion(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/01/25401/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index 8b40d7a..3d386ae 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1108,18 +1108,7 @@ bool gprs_rlcmac_pdch::has_gprs_only_tbf_attached() const { - unsigned int i; - unsigned int j; - for (i = 0; i < sizeof(m_assigned_tfi[0]); i++) { - for (j = 0; j < 2; j++) { - if (m_assigned_tfi[j] & (1UL << i)) { - gprs_rlcmac_tbf *tbf = m_tbfs[j][i]; - if (!tbf->is_egprs_enabled()) - return true; - } - } - } - return false; + return m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_EGPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_EGPRS] == 0; } void gprs_rlcmac_pdch::reserve(enum gprs_rlcmac_tbf_direction dir) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 11:12:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 11:12:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Cosmetic: pcu: fix GprsMS count comment References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25402 ) Change subject: Cosmetic: pcu: fix GprsMS count comment ...................................................................... Cosmetic: pcu: fix GprsMS count comment Related: SYS#4878 Change-Id: Ic11abb330eccf8572a95ddb7e7c59c57b018a713 --- M pcu/PCU_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/02/25402/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 88893ec..c23e58c 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6004,7 +6004,7 @@ f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0); f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); - /* Allocate 17 GprsMS instances */ + /* Allocate 4 GprsMS instances */ f_init_gprs_ms(4); /* Initialize the PCU interface abstraction */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic11abb330eccf8572a95ddb7e7c59c57b018a713 Gerrit-Change-Number: 25402 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 11:12:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 11:12:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 ) Change subject: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats ...................................................................... pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats Extend the test to verify that TTCN3.bts.0.pdch.occupied.gprs and TTCN3.bts.0.pdch.occupied.egprs work as expected. These new stats are needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Related: SYS#4878 Depends: osmo-pcu I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 --- M pcu/PCU_Tests.ttcn 1 file changed, 11 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/03/25403/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index c23e58c..d784c48 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6019,18 +6019,25 @@ /* 8 PDCHs available, 0 occupied */ var StatsDExpects expect := { { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, - { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 } + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 0, max := 0 } }; f_statsd_expect(expect); - /* Establish an Uplink TBF for each GprsMS instance */ + /* Establish an Uplink TBF for each GprsMS instance (3x GPRS, 1x EGPRS) */ f_multi_ms_bssgp_register(); - f_multi_ms_establish_tbf(do_activate := false); + f_ms_establish_ul_tbf(g_ms[0]); + f_ms_establish_ul_tbf(g_ms[1]); + f_ms_establish_ul_tbf(g_ms[2]); + f_ms_establish_ul_tbf_2phase_access(g_ms[3], ts_RlcMacUlCtrl_PKT_RES_REQ(g_ms[3].tlli, ms_racap_egprs_def)); /* 4 PDCHs occupied */ expect := { { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, - { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 } + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 3, max := 3 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 1, max := 1 } }; f_statsd_expect(expect); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 Gerrit-Change-Number: 25403 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 12:02:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 12:02:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Cosmetic: pcu: fix GprsMS count comment In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25402 ) Change subject: Cosmetic: pcu: fix GprsMS count comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic11abb330eccf8572a95ddb7e7c59c57b018a713 Gerrit-Change-Number: 25402 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 12:02: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 Sep 8 12:12:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 12:12:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 ) Change subject: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403/1/pcu/PCU_Tests.ttcn at 6034 PS1, Line 6034: It would be great that you also test creation of a DL TBF for an MS which is not known by the PCU (for instance because it was forgotten due to no interaction and a quite older DL data arrives from SGSN). Test with both non-being upgraded to GPRS and being upgraded to EGPRS. See TC_mcs_max_dl() for idea on how to do it. BTW, you probably want to enable multiple TRXs with PDCHs, this way the allocator should spread the TBFs over TRXs, which should help when counting and understanding the results. To enable more TRX, see f_PCUIF_PDCHMask_set() above and check other tests enabling more of them (most of the test don't do it). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 Gerrit-Change-Number: 25403 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 12:12: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 Wed Sep 8 12:13:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 8 Sep 2021 12:13:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Cosmetic: pcu: fix GprsMS count comment In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25402 ) Change subject: Cosmetic: pcu: fix GprsMS count comment ...................................................................... Cosmetic: pcu: fix GprsMS count comment Related: SYS#4878 Change-Id: Ic11abb330eccf8572a95ddb7e7c59c57b018a713 --- M pcu/PCU_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 88893ec..c23e58c 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6004,7 +6004,7 @@ f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0); f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); - /* Allocate 17 GprsMS instances */ + /* Allocate 4 GprsMS instances */ f_init_gprs_ms(4); /* Initialize the PCU interface abstraction */ -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic11abb330eccf8572a95ddb7e7c59c57b018a713 Gerrit-Change-Number: 25402 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 12:16:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 12:16:00 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25401/1/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25401/1/src/pdch.cpp at 1111 PS1, Line 1111: return m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_EGPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_EGPRS] == 0; That's incorrect. You want to check if there's at least one GPRS TBF, not if there's no EGPRS ones. Having 0 GPRS and 0 EGPRS you'd return true, which is not the aiming of this function. Hence, it should be: return (m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_GPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_GPRS]) > 0; better wrap the sum in (), it's unclear at first sight the priority of operations imho. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 12:16:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 12:16:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 12:16:05 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 12:16: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 Sep 8 14:10:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:10:49 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25404 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initiall developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid rbeaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. TODO: value inside container must be encoded in network order!!! Related: SYS#4971 Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 --- M include/osmocom/pcu/pcuif_proto.h M src/gprs_pcu.c M src/nacc_fsm.c M src/nacc_fsm.h M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_vty.c 7 files changed, 233 insertions(+), 63 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/25404/1 diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h index 23b7a2c..8e40a27 100644 --- a/include/osmocom/pcu/pcuif_proto.h +++ b/include/osmocom/pcu/pcuif_proto.h @@ -26,6 +26,10 @@ #define PCU_IF_MSG_TXT_IND 0x70 /* Text indication for BTS */ #define PCU_IF_MSG_CONTAINER 0x80 /* Transparent container message */ +/* msg_type coming from BSC (inside PCU_IF_MSG_CONTAINER) */ +#define PCU_IF_MSG_NEIGH_ADDR_REQ 0x81 /* Neighbor Address Resolution Request */ +#define PCU_IF_MSG_NEIGH_ADDR_CNF 0x82 /* Neighbor Address Resolution Confirmation */ + /* sapi */ #define PCU_IF_SAPI_RACH 0x01 /* channel request on CCCH */ #define PCU_IF_SAPI_AGCH 0x02 /* assignment on AGCH */ @@ -228,6 +232,30 @@ uint8_t data[0]; } __attribute__ ((packed)); +/*** Used inside container: NOTE: values must be network byte order here! ***/ +/* Neighbor Address Resolution Request */ +struct gsm_pcu_if_neigh_addr_req { + uint16_t local_lac; + uint16_t local_ci; + uint16_t tgt_arfcn; + uint8_t tgt_bsic; +} __attribute__ ((packed)); + +/* Neighbor Address Resolution Confirmation */ +struct gsm_pcu_if_neigh_addr_cnf { + struct gsm_pcu_if_neigh_addr_req orig_req; + uint8_t err_code; /* 0 success, !0 failed & below unset */ + /* RAI + CI (CGI-PS): */ + struct __attribute__ ((packed)) { + uint16_t mcc; + uint16_t mnc; + uint8_t mnc_3_digits; + uint16_t lac; + uint8_t rac; + uint16_t cell_identity; + } cgi_ps; +} __attribute__ ((packed)); + struct gsm_pcu_if { /* context based information */ uint8_t msg_type; /* message type */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index a7bab8d..5ed9d7d 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -114,7 +114,7 @@ pcu->vty.ws_pdch = 0; pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; pcu->vty.llc_idle_ack_csec = 10; - pcu->vty.neigh_ctrl_addr = talloc_strdup(pcu, "127.0.0.1"); + pcu->vty.neigh_ctrl_addr = NULL; /* don't use CTRL iface for Neigh Addr Resolution */ pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; pcu->T_defs = T_defs_pcu; diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 738b2c5..19f63e4 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -361,14 +361,72 @@ } } +static int send_neigh_addr_req_ctrl_iface(struct nacc_fsm_ctx *ctx) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct ctrl_cmd *cmd = NULL; + int rc; + + /* We may have changed to this state previously (eg: we are handling + * another Pkt cell Change Notify with different target). Avoid + * re-creating the socket in that case. */ + if (ctx->neigh_ctrl_conn->write_queue.bfd.fd == -1) { + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, + AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGPFSML(ctx->fi, LOGL_ERROR, + "Failed to establish CTRL (neighbor resolution) connection to BSC r=%s:%u\n\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto err_term; + } + } + + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); + if (!cmd) { + LOGPFSML(ctx->fi, LOGL_ERROR, "CTRL msg creation failed\n"); + goto err_term; + } + + cmd->id = talloc_asprintf(cmd, "%u", arfcn_bsic_2_ctrl_id(ctx->neigh_key.tgt_arfcn, + ctx->neigh_key.tgt_bsic)); + cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", + ctx->neigh_key.local_lac, ctx->neigh_key.local_ci, + ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic); + rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); + if (rc) { + LOGPFSML(ctx->fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); + goto err_term; + } + + talloc_free(cmd); + return 0; + +err_term: + talloc_free(cmd); + return -1; +} + +static int send_neigh_addr_req(struct nacc_fsm_ctx *ctx) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + + /* If PCU was confiured tu se the old CTRL interface, use it: */ + if (ctx->neigh_ctrl_conn) + return send_neigh_addr_req_ctrl_iface(ctx); + + /* Otherwise, by default the new PCUIF over IPA Abis multiplex proto should be used: */ + return pcu_tx_neigh_addr_res_req(bts, &ctx->neigh_key); +} + static void st_wait_resolve_rac_ci_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; struct gprs_rlcmac_bts *bts = ctx->ms->bts; struct gprs_pcu *pcu = bts->pcu; const struct osmo_cell_global_id_ps *cgi_ps; - struct ctrl_cmd *cmd = NULL; - int rc; /* First try to find the value in the cache */ cgi_ps = neigh_cache_lookup_value(pcu->neigh_cache, &ctx->neigh_key); @@ -383,45 +441,8 @@ LOGPFSML(fi, LOGL_DEBUG, "No CGI-PS found in cache, resolving " NEIGH_CACHE_ENTRY_KEY_FMT "...\n", NEIGH_CACHE_ENTRY_KEY_ARGS(&ctx->neigh_key)); - /* We may have changed to this state previously (eg: we are handling - * another Pkt cell Change Notify with different target). Avoid - * re-creating the socket in that case. */ - if (ctx->neigh_ctrl_conn->write_queue.bfd.fd == -1) { - rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, - AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, - NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, - OSMO_SOCK_F_CONNECT); - if (rc < 0) { - LOGPFSML(fi, LOGL_ERROR, - "Failed to establish CTRL (neighbor resolution) connection to BSC r=%s:%u\n\n", - pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); - goto err_term; - } - } - - cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); - if (!cmd) { - LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); - goto err_term; - } - - cmd->id = talloc_asprintf(cmd, "%u", arfcn_bsic_2_ctrl_id(ctx->neigh_key.tgt_arfcn, - ctx->neigh_key.tgt_bsic)); - cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", - ctx->neigh_key.local_lac, ctx->neigh_key.local_ci, - ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic); - rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); - if (rc) { - LOGPFSML(fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); - goto err_term; - } - - talloc_free(cmd); - return; - -err_term: - talloc_free(cmd); - nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + if (send_neigh_addr_req(ctx) < 0) + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); } static void st_wait_resolve_rac_ci(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -435,8 +456,14 @@ handle_retrans_pkt_cell_chg_notif(ctx, notif); break; case NACC_EV_RX_RAC_CI: - /* Assumption: ctx->cgi_ps has been filled by caller of the event */ - nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + /* data is NULL upon failure */ + if (data) { + ctx->cgi_ps = *(struct osmo_cell_global_id_ps *)data; + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + } + else { + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + } break; default: OSMO_ASSERT(0); @@ -740,12 +767,13 @@ struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)data; char *tmp = NULL, *tok, *saveptr; unsigned int exp_id; + struct osmo_cell_global_id_ps cgi_ps; LOGPFSML(ctx->fi, LOGL_NOTICE, "Received CTRL message: type=%d %s %s: %s\n", cmd->type, cmd->variable, cmd->id, osmo_escape_str(cmd->reply, -1)); if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { - nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); return; } @@ -771,33 +799,33 @@ if (!(tok = strtok_r(tmp, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.lac.plmn.mcc = atoi(tok); + cgi_ps.rai.lac.plmn.mcc = atoi(tok); if (!(tok = strtok_r(NULL, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.lac.plmn.mnc = atoi(tok); + cgi_ps.rai.lac.plmn.mnc = atoi(tok); if (!(tok = strtok_r(NULL, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.lac.lac = atoi(tok); + cgi_ps.rai.lac.lac = atoi(tok); if (!(tok = strtok_r(NULL, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.rac = atoi(tok); + cgi_ps.rai.rac = atoi(tok); if (!(tok = strtok_r(NULL, "\0", &saveptr))) goto free_ret; - ctx->cgi_ps.cell_identity = atoi(tok); + cgi_ps.cell_identity = atoi(tok); /* Cache the cgi_ps so we can avoid requesting again same resolution for a while */ - neigh_cache_add(ctx->ms->bts->pcu->neigh_cache, &ctx->neigh_key, &ctx->cgi_ps); + neigh_cache_add(ctx->ms->bts->pcu->neigh_cache, &ctx->neigh_key, &cgi_ps); - osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, &cgi_ps); return; free_ret: talloc_free(tmp); - nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); return; } @@ -834,18 +862,29 @@ if (!ctx->fi) goto free_ret; - ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); - ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; - ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); - if (!ctx->neigh_ctrl_conn) - goto free_ret; - /* Older versions of osmo_ctrl_conn_alloc didn't properly initialize fd to -1, - * so make sure to do it here otherwise fd may be valid fd 0 and cause trouble */ - ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; - llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); + /* If CTRL ip present, use the old CTRL interface for neighbor resolution */ + if (ms->bts->pcu->vty.neigh_ctrl_addr) { + ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); + ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; + ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); + if (!ctx->neigh_ctrl_conn) + goto free_ret; + /* Older versions of osmo_ctrl_conn_alloc didn't properly initialize fd to -1, + * so make sure to do it here otherwise fd may be valid fd 0 and cause trouble */ + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; + llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); + } return ctx; free_ret: talloc_free(ctx); return NULL; } + +bool nacc_fsm_is_waiting_addr_resolution(const struct nacc_fsm_ctx *ctx, + const struct neigh_cache_entry_key *neigh_key) +{ + if (ctx->fi->state != NACC_ST_WAIT_RESOLVE_RAC_CI) + return false; + return neigh_cache_entry_key_eq(&ctx->neigh_key, neigh_key); +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h index 7b0adfd..04c9ba4 100644 --- a/src/nacc_fsm.h +++ b/src/nacc_fsm.h @@ -29,7 +29,7 @@ enum nacc_fsm_event { NACC_EV_RX_CELL_CHG_NOTIFICATION, /* data: Packet_Cell_Change_Notification_t* */ - NACC_EV_RX_RAC_CI, /* no data passed, RAC_CI became available in neigh_cache */ + NACC_EV_RX_RAC_CI, /* RAC_CI became available in neigh_cache. NULL on failure, pointer to ctx->cgi_ps on success */ NACC_EV_RX_SI, /* data: struct si_cache_entry* */ NACC_EV_CREATE_RLCMAC_MSG, /* data: struct nacc_ev_create_rlcmac_msg_ctx* */ NACC_EV_RX_CELL_CHG_CONTINUE_ACK, @@ -69,3 +69,6 @@ }; struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms); + +bool nacc_fsm_is_waiting_addr_resolution(const struct nacc_fsm_ctx *ctx, + const struct neigh_cache_entry_key *neigh_key); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 4530e1a..4fe5627 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -44,6 +44,8 @@ #include #include #include + +#include } #include @@ -95,6 +97,7 @@ * PCU messages */ +/* Can be used to allocate message with non-variable size */ struct msgb *pcu_msgb_alloc(uint8_t msg_type, uint8_t bts_nr) { struct msgb *msg; @@ -111,6 +114,21 @@ return msg; } +/* Allocate message with extra size, only reserve pcuif msg hdr */ +static struct msgb *pcu_msgb_alloc_ext_size(uint8_t msg_type, uint8_t bts_nr, size_t extra_size) +{ + struct msgb *msg; + struct gsm_pcu_if *pcu_prim; + msg = msgb_alloc(sizeof(struct gsm_pcu_if) + extra_size, "pcu_sock_tx"); + /* Only header is filled, caller is responible for reserving + filling + * message type specific contents: */ + msgb_put(msg, PCUIF_HDR_SIZE); + pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + pcu_prim->msg_type = msg_type; + pcu_prim->bts_nr = bts_nr; + return msg; +} + const struct value_string gsm_pcu_if_text_type_names[] = { OSMO_VALUE_STRING(PCU_VERSION), OSMO_VALUE_STRING(PCU_OML_ALERT), @@ -271,6 +289,33 @@ pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, PAGING_GROUP_LEN + GSM_MACBLOCK_LEN); } +int pcu_tx_neigh_addr_res_req(struct gprs_rlcmac_bts *bts, const struct neigh_cache_entry_key *neigh_key) +{ + struct msgb *msg; + struct gsm_pcu_if *pcu_prim; + struct gsm_pcu_if_neigh_addr_req *naddr_req; + + LOGP(DL1IF, LOGL_DEBUG, "(bts=%u) Tx Neighbor Address Resolution Request: " NEIGH_CACHE_ENTRY_KEY_FMT "\n", + bts->nr, NEIGH_CACHE_ENTRY_KEY_ARGS(neigh_key)); + + msg = pcu_msgb_alloc_ext_size(PCU_IF_MSG_CONTAINER, bts->nr, sizeof(struct gsm_pcu_if_neigh_addr_req)); + if (!msg) + return -ENOMEM; + pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + naddr_req = (struct gsm_pcu_if_neigh_addr_req *)&pcu_prim->u.container.data[0]; + + msgb_put(msg, sizeof(pcu_prim->u.container) + sizeof(struct gsm_pcu_if_neigh_addr_req)); + pcu_prim->u.container.msg_type = PCU_IF_MSG_NEIGH_ADDR_REQ; + osmo_store16be(sizeof(struct gsm_pcu_if_neigh_addr_req), &pcu_prim->u.container.length); + + osmo_store16be(neigh_key->local_lac, &naddr_req->local_lac); + osmo_store16be(neigh_key->local_ci, &naddr_req->local_ci); + osmo_store16be(neigh_key->tgt_arfcn, &naddr_req->tgt_arfcn); + naddr_req->tgt_bsic = neigh_key->tgt_bsic; + + return pcu_sock_send(msg); +} + void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no) { bts_set_current_block_frame_number(bts, fn); @@ -955,11 +1000,60 @@ return 0; } +static int pcu_rx_neigh_addr_cnf(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_neigh_addr_cnf *naddr_cnf) +{ + struct llist_head *tmp; + struct osmo_cell_global_id_ps cgi_ps; + struct osmo_cell_global_id_ps *cgi_ps_ptr = &cgi_ps; + + struct neigh_cache_entry_key neigh_key = { + .local_lac = osmo_load16be(&naddr_cnf->orig_req.local_lac), + .local_ci = osmo_load16be(&naddr_cnf->orig_req.local_ci), + .tgt_arfcn = osmo_load16be(&naddr_cnf->orig_req.tgt_arfcn), + .tgt_bsic = naddr_cnf->orig_req.tgt_bsic, + }; + + if (naddr_cnf->err_code == 0) { + cgi_ps.rai.lac.plmn.mcc = osmo_load16be(&naddr_cnf->cgi_ps.mcc); + cgi_ps.rai.lac.plmn.mnc = osmo_load16be(&naddr_cnf->cgi_ps.mnc); + cgi_ps.rai.lac.plmn.mnc_3_digits = cgi_ps.rai.lac.plmn.mnc > 99; + cgi_ps.rai.lac.lac = osmo_load16be(&naddr_cnf->cgi_ps.lac); + cgi_ps.rai.rac = naddr_cnf->cgi_ps.rac; + cgi_ps.cell_identity = osmo_load16be(&naddr_cnf->cgi_ps.cell_identity); + + LOGP(DL1IF, LOGL_INFO, "Rx Neighbor Address Resolution Confirmation for " NEIGH_CACHE_ENTRY_KEY_FMT ": %s\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(&neigh_key), osmo_cgi_ps_name(&cgi_ps)); + + /* Cache the cgi_ps so we can avoid requesting again same resolution for a while */ + neigh_cache_add(bts->pcu->neigh_cache, &neigh_key, &cgi_ps); + } else { + cgi_ps_ptr = NULL; + LOGP(DL1IF, LOGL_INFO, "Rx Neighbor Address Resolution Confirmation for " NEIGH_CACHE_ENTRY_KEY_FMT ": failed with err_code=%u\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(&neigh_key), naddr_cnf->err_code); + } + + llist_for_each(tmp, bts_ms_store(bts)->ms_list()) { + GprsMs *ms = llist_entry(tmp, typeof(*ms), list); + if (ms->nacc && nacc_fsm_is_waiting_addr_resolution(ms->nacc, &neigh_key)) + osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_RAC_CI, cgi_ps_ptr); + } + return 0; +} + static int pcu_rx_container(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_container *container) { int rc; + uint16_t data_length = osmo_load16be(&container->length); switch (container->msg_type) { + case PCU_IF_MSG_NEIGH_ADDR_CNF: + if (data_length < sizeof(struct gsm_pcu_if_neigh_addr_cnf)) { + LOGP(DL1IF, LOGL_ERROR, "Rx container(NEIGH_ADDR_CNF) message too short: %u vs exp %lu\n", + data_length, sizeof(struct gsm_pcu_if_neigh_addr_cnf)); + return -EINVAL; + } + rc = pcu_rx_neigh_addr_cnf(bts, (struct gsm_pcu_if_neigh_addr_cnf*)&container->data); + break; default: LOGP(DL1IF, LOGL_NOTICE, "(bts=%d) Rx unexpected msg type (%u) inside container!\n", bts->nr, container->msg_type); diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 2a4f0ea..7d48feb 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -160,6 +160,8 @@ #endif struct gprs_rlcmac_bts; +int pcu_tx_neigh_addr_res_req(struct gprs_rlcmac_bts *bts, const struct neigh_cache_entry_key *neigh_key); + int pcu_rx(struct gsm_pcu_if *pcu_prim, size_t pcu_prim_length); int pcu_l1if_open(void); void pcu_l1if_close(void); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 1ca6376..4b4310d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -1067,6 +1067,10 @@ "IPv4 address to connect to\n" "IPv6 address to connect to\n" "Port to connect to (default 4248)\n") { + vty_out(vty, "%% Warning: The CTRL interface for Neighbor Address Resolution is now deprecated." + "Upgrade osmo-bsc and drop the 'neighbor resolution " VTY_IPV46_CMD " [<0-65535>]' VTY " + "option in order to let osmo-pcu use the new resoluton method using the PCUIF over IPA " + "multiplex, which will work out of the box without required configuration.%s", VTY_NEWLINE); osmo_talloc_replace_string(the_pcu, &the_pcu->vty.neigh_ctrl_addr, argv[0]); if (argc > 1) the_pcu->vty.neigh_ctrl_port = atoi(argv[1]); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-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 Sep 8 14:10:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:10:50 +0000 Subject: Change in osmo-pcu[master]: nacc_fsm: Move logic checking if SI is being waited for to a func helper References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25405 ) Change subject: nacc_fsm: Move logic checking if SI is being waited for to a func helper ...................................................................... nacc_fsm: Move logic checking if SI is being waited for to a func helper We already have a similar function for Neighbor Address Resolution. This way we keep as much as possible internal state related logic into the nacc_fsm.c file. Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 --- M src/gprs_bssgp_rim.c M src/nacc_fsm.c M src/nacc_fsm.h 3 files changed, 13 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/05/25405/1 diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index c19ed81..f1679a6 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -158,13 +158,8 @@ llist_for_each(tmp, bts_ms_list(bts)) { struct GprsMs *ms = llist_entry(tmp, typeof(*ms), list); - if (!ms->nacc) - continue; - if (ms->nacc->fi->state != NACC_ST_WAIT_REQUEST_SI) - continue; - if (osmo_cgi_ps_cmp(&nacc->reprt_cell, &ms->nacc->cgi_ps) != 0) - continue; - osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_SI, entry); + if (ms->nacc && nacc_fsm_is_waiting_si_resolution(ms->nacc, &nacc->reprt_cell)) + osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_SI, entry); } return 0; } diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 19f63e4..5b4c2fb 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -888,3 +888,11 @@ return false; return neigh_cache_entry_key_eq(&ctx->neigh_key, neigh_key); } + +bool nacc_fsm_is_waiting_si_resolution(const struct nacc_fsm_ctx *ctx, + const struct osmo_cell_global_id_ps *cgi_ps) +{ + if (ctx->fi->state != NACC_ST_WAIT_REQUEST_SI) + return false; + return !osmo_cgi_ps_cmp(&ctx->cgi_ps, cgi_ps); +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h index 04c9ba4..68ebd52 100644 --- a/src/nacc_fsm.h +++ b/src/nacc_fsm.h @@ -72,3 +72,6 @@ bool nacc_fsm_is_waiting_addr_resolution(const struct nacc_fsm_ctx *ctx, const struct neigh_cache_entry_key *neigh_key); + +bool nacc_fsm_is_waiting_si_resolution(const struct nacc_fsm_ctx *ctx, + const struct osmo_cell_global_id_ps *cgi_ps); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 Gerrit-Change-Number: 25405 Gerrit-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 Sep 8 14:11:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:11:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... pcu: Support Neighbor Address Resolution over PCUIF New versions of osmo-pcu support Neighbor Address Resolution over this interface, and deprecated the old CTRL interface. Let's use it by default while still keeping support for the old one for a while to avoid breakage of existing deployments. Tests run to validate: * Old osmo-pcu still passes tests using CTRL interface * New osmo-pcu (with new iface support) still passes tests using CTRL interface * New osmo-pcu (with new iface support) passes tests using new iface Related: SYS#4971 Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 --- M library/Osmocom_CTRL_Adapter.ttcn M library/PCUIF_Types.ttcn M pcu/PCU_Tests.ttcn 3 files changed, 318 insertions(+), 189 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/06/25406/1 diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index 34ea300..6a9706e 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -22,6 +22,7 @@ type component CTRL_Adapter_CT { var IPA_Emulation_CT vc_CTRL_IPA; + var boolean ipa_is_up := false; /* test port for the CTRL interface of the BSC */ port IPA_CTRL_PT IPA_CTRL; } @@ -29,10 +30,13 @@ /* wait for IPA CTRL link to connect and send UP */ function f_ipa_ctrl_wait_link_up() runs on CTRL_Adapter_CT { + if (ipa_is_up == true) { + return; + } timer T := 10.0; T.start; alt { - [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { } + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { ipa_is_up := true; } [] T.timeout { setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP"); mtc.stop; @@ -40,13 +44,16 @@ } } -/* wait for IPA CTRL link to connect and send UP */ +/* wait for IPA CTRL link to connect and send DOWN */ function f_ipa_ctrl_wait_link_down() runs on CTRL_Adapter_CT { + if (ipa_is_up == false) { + return; + } timer T := 10.0; T.start; alt { - [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { } + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { ipa_is_up := false; } [] T.timeout { setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_DOWN"); mtc.stop; diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index 1e57fb2..dcae4e6 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -38,7 +38,10 @@ PCU_IF_MSG_INTERF_IND ('53'O), PCU_IF_MSG_PAG_REQ ('60'O), PCU_IF_MSG_TXT_IND ('70'O), - PCU_IF_MSG_CONTAINER ('80'O) + PCU_IF_MSG_CONTAINER ('80'O), + /* Container payload message types: */ + PCU_IF_MSG_NEIGH_ADDR_REQ ('81'O), + PCU_IF_MSG_NEIGH_ADDR_CNF ('82'O) } with { variant "FIELDLENGTH(8)" }; type enumerated PCUIF_Sapi { @@ -254,15 +257,37 @@ variant (tlli) "BYTEORDER(last)" }; +type record PCUIF_neigh_addr_req { + uint16_t local_lac, + uint16_t local_ci, + uint16_t tgt_arfcn, + uint8_t tgt_bsic +} with { variant (local_lac) "BYTEORDER(last)" + variant (local_ci) "BYTEORDER(last)" + variant (tgt_arfcn) "BYTEORDER(last)" }; + +type record PCUIF_neigh_addr_cnf { + PCUIF_neigh_addr_req orig_req, + uint8_t error_code, + uint16_t mcc, + uint16_t mnc, + uint8_t mnc_3_digits, + uint16_t lac, + uint8_t rac, + uint16_t cell_identity +} with { variant (mcc) "BYTEORDER(last)" + variant (mnc) "BYTEORDER(last)" + variant (lac) "BYTEORDER(last)" + variant (cell_identity) "BYTEORDER(last)" }; + type union PCUIF_ContainerMsgUnion { - /* This field can be removed once first container message is added, see - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=574469 */ - octetstring tmp_fixme, + PCUIF_neigh_addr_req neigh_addr_req, + PCUIF_neigh_addr_cnf neigh_addr_cnf, octetstring other } with { variant "" }; type record PCUIF_container { - uint8_t msg_type, + PCUIF_MsgType msg_type, OCT1 spare, uint16_t len, /* network byte order */ PCUIF_ContainerMsgUnion u @@ -270,7 +295,8 @@ variant (len) "BYTEORDER(last)" variant (len) "LENGTHTO(u)" variant (u) "CROSSTAG( - tmp_fixme, msg_type = 255; + neigh_addr_req, msg_type = PCU_IF_MSG_NEIGH_ADDR_REQ; + neigh_addr_cnf, msg_type = PCU_IF_MSG_NEIGH_ADDR_CNF; other, OTHERWISE)" }; @@ -1026,7 +1052,7 @@ } } -template (value) PCUIF_container ts_PCUIF_CONT_OTHER(uint8_t msg_type, template (value) octetstring payload) := { +template (value) PCUIF_container ts_PCUIF_CONT_OTHER(PCUIF_MsgType msg_type, template (value) octetstring payload) := { msg_type := msg_type, spare := '00'O, len := lengthof(payload), @@ -1034,7 +1060,7 @@ other := payload } } -template (present) PCUIF_container tr_PCUIF_CONT_OTHER(template (present) uint8_t msg_type, +template (present) PCUIF_container tr_PCUIF_CONT_OTHER(template (present) PCUIF_MsgType msg_type, template (present) octetstring payload) := { msg_type := msg_type, spare := '00'O, @@ -1044,6 +1070,77 @@ } } +template (present) PCUIF_container tr_PCUIF_CONT_NEIGH_ADDR_REQ(template (present) uint16_t local_lac := ?, + template (present) uint16_t local_ci := ?, + template (present) uint16_t tgt_arfcn := ?, + template (present) uint8_t tgt_bsic := ?) := { + msg_type := PCU_IF_MSG_NEIGH_ADDR_REQ, + spare := '00'O, + len := ?, + u := { + neigh_addr_req := { + local_lac := local_lac, + local_ci := local_ci, + tgt_arfcn := tgt_arfcn, + tgt_bsic := tgt_bsic + } + } +} +template (present) PCUIF_Message tr_PCUIF_NEIGH_ADDR_REQ(template (present) uint8_t bts_nr, + template (present) uint16_t local_lac := ?, + template (present) uint16_t local_ci := ?, + template (present) uint16_t tgt_arfcn := ?, + template (present) uint8_t tgt_bsic := ?) := { + msg_type := PCU_IF_MSG_CONTAINER, + bts_nr := bts_nr, + spare := '0000'O, + u := { + container := tr_PCUIF_CONT_NEIGH_ADDR_REQ(local_lac, local_ci, tgt_arfcn, tgt_bsic) + } +} + +template (value) PCUIF_container ts_PCUIF_CONT_NEIGH_ADDR_CNF(template (value) PCUIF_neigh_addr_req orig_req, + template (value) uint8_t error_code := 0, + template (value) uint16_t mcc := 0, + template (value) uint16_t mnc := 0, + template (value) uint8_t mnc_3_digits := 0, + template (value) uint16_t lac := 0, + template (value) uint8_t rac := 0, + template (value) uint16_t cell_identity := 0) := { + msg_type := PCU_IF_MSG_NEIGH_ADDR_CNF, + spare := '00'O, + len := 0, /* overwritten */ + u := { + neigh_addr_cnf := { + orig_req := orig_req, + error_code := error_code, + mcc := mcc, + mnc := mnc, + mnc_3_digits := mnc_3_digits, + lac := lac, + rac := rac, + cell_identity := cell_identity + } + } +} +template (value) PCUIF_Message ts_PCUIF_NEIGH_ADDR_CNF(template (value) uint8_t bts_nr, + template (value) PCUIF_neigh_addr_req orig_req, + template (value) uint8_t error_code := 0, + template (value) uint16_t mcc := 0, + template (value) uint16_t mnc := 0, + template (value) uint8_t mnc_3_digits := 0, + template (value) uint16_t lac := 0, + template (value) uint8_t rac := 0, + template (value) uint16_t cell_identity := 0) := { + msg_type := PCU_IF_MSG_CONTAINER, + bts_nr := bts_nr, + spare := '0000'O, + u := { + container := ts_PCUIF_CONT_NEIGH_ADDR_CNF(orig_req, error_code, mcc, mnc, mnc_3_digits, + lac, rac, cell_identity) + } +} + function f_PCUIF_PDCHMask_set(inout PCUIF_info_ind info, BIT8 pdch_mask, template (present) uint8_t trx_nr := ?) { diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 88893ec..76debad 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -69,7 +69,7 @@ charstring mp_pcu_statsd_ip := "127.0.0.1"; integer mp_pcu_statsd_port := 8125; - charstring mp_ctrl_neigh_ip := "127.0.0.1"; + charstring mp_ctrl_neigh_ip := ""; /* Use new PCUIF over IPA multiplex for Neigh Addr Resolution */ integer mp_ctrl_neigh_port := 4248; boolean mp_osmo_pcu_newer_than_0_9_0 := true; /* Drop after OsmoPCU > 0.9.0 was released */ @@ -4391,10 +4391,35 @@ } } +private function f_handle_nacc_rac_ci_query(PCUIF_info_ind info_ind, GsmArfcn req_arfcn, uint6_t req_bsic, + boolean answer := true, boolean use_old_ctrl_iface := false) +runs on RAW_PCU_Test_CT { + if (use_old_ctrl_iface == true) { + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + if (answer) { + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + } else { + f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + } + } else { + var PCUIF_Message pcu_msg; + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + if (answer) { + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + } + } +} + /* Start NACC from MS side */ private function f_outbound_nacc_success(inout GprsMS ms, PCUIF_info_ind info_ind, boolean exp_rac_ci_query := true, boolean exp_si_query := true, - boolean skip_final_ctrl_ack := false) + boolean skip_final_ctrl_ack := false, + boolean use_old_ctrl_iface := false) runs on RAW_PCU_Test_CT { var template (value) RlcmacUlCtrlMsg cell_chf_notif; var RlcmacDlBlock dl_block; @@ -4408,13 +4433,7 @@ if (exp_rac_ci_query == true) { /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); } if (exp_si_query == true) { @@ -4443,9 +4462,12 @@ var PollFnCtx pollctx; var GprsMS ms; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4469,7 +4491,7 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -4481,9 +4503,12 @@ var RlcmacDlBlock dl_block; var uint32_t sched_fn; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4507,7 +4532,7 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side, avoid sending final CTRL ACK */ - f_outbound_nacc_success(ms, info_ind, skip_final_ctrl_ack := true); + f_outbound_nacc_success(ms, info_ind, skip_final_ctrl_ack := true, use_old_ctrl_iface := use_old_ctrl_iface); /* Wait until we receive something non-dummy */ dl_block := f_skip_dummy(0, sched_fn); @@ -4530,9 +4555,12 @@ var GprsMS ms; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4558,10 +4586,10 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); /* First NACC procedure is done, let's try to start a new one now that previous queries are cached: */ - f_outbound_nacc_success(ms, info_ind, false, false); + f_outbound_nacc_success(ms, info_ind, false, false, use_old_ctrl_iface := use_old_ctrl_iface); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -4574,9 +4602,12 @@ var GprsMS ms; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4602,14 +4633,14 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); /* CTRL client should have disconnected from us */ f_ipa_ctrl_wait_link_down(); /* wait for cache entries to time out */ f_sleep(2.0); /* First NACC procedure is done, let's try to start a new one now that previous queries have timed out: */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -4680,9 +4711,12 @@ var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4710,14 +4744,8 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); /* we receive RAC+CI resolution request, but we never answer to it, timeout should occur */ - f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, false, use_old_ctrl_iface); /* Wait until we receive something non-dummy */ dl_block := f_skip_dummy(0, sched_fn); @@ -4780,7 +4808,7 @@ int2str(info_ind.cell_id) & "." & int2str(req_arfcn) & "." & int2str(req_bsic); - /* we receive RAC+CI resolution request and we send incorrectlt formated response */ + /* we receive RAC+CI resolution request and we send incorrectly formated response */ f_ctrl_exp_get(IPA_CTRL, ctrl_var, "foobar-error"); /* Wait until we receive something non-dummy */ @@ -4808,6 +4836,7 @@ var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ info_ind.lac), info_ind.rac), @@ -4819,8 +4848,10 @@ var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4848,13 +4879,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), @@ -4886,11 +4911,16 @@ var RlcmacDlBlock dl_block; var uint32_t sched_fn; var CtrlMessage rx_ctrl; + var charstring ctrl_var; + var PCUIF_Message pcu_msg; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4918,25 +4948,40 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + if (use_old_ctrl_iface) { + f_ipa_ctrl_wait_link_up(); + ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + } else { + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + } + /* Before receiving CTRL response, MS retransmits Pkt cell Chg Notif */ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); f_sleep(0.2); /* let some time to avoid race conditons between CTRL and RLCMAC */ - IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + + if (use_old_ctrl_iface) { + IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + } else { + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + } + timer T := 2.0; T.start; alt { [] as_outbound_nacc_rim_resolve(info_ind, do_repeat := true); - [] IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl { + [use_old_ctrl_iface] IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl { setverdict(fail, "Received unexpected CTRL resolution after duplicate Pkt Cell Change Notification:", rx_ctrl); f_shutdown(__BFILE__, __LINE__); } + [not use_old_ctrl_iface] BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg { + setverdict(fail, "Received unexpected PCUIF resolution after duplicate Pkt Cell Change Notification:", pcu_msg); + f_shutdown(__BFILE__, __LINE__); + } [] T.timeout { setverdict(pass); } @@ -4971,9 +5016,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5001,13 +5049,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); as_outbound_nacc_rim_resolve(info_ind, do_answer := false); /* Before receiving RIM response, MS retransmits Pkt cell Chg Notif */ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); @@ -5054,9 +5096,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5084,13 +5129,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5125,9 +5164,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5155,13 +5197,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5195,9 +5231,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5225,13 +5264,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5264,11 +5297,16 @@ var RlcmacDlBlock dl_block; var uint32_t sched_fn; var CtrlMessage rx_ctrl; + var charstring ctrl_var; + var PCUIF_Message pcu_msg; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5296,25 +5334,28 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + if (use_old_ctrl_iface) { + f_ipa_ctrl_wait_link_up(); + ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + } else { + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + } /* Before receiving CTRL response, MS retransmits Pkt cell Chg Notif with different tgt arfcn */ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); f_sleep(0.2); /* let some time to avoid race conditons between CTRL and RLCMAC */ - IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + if (use_old_ctrl_iface) { + IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + } else { + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + } /* We should now receive a 2nd CTRL request with the new ARFCN+BSIC */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); /* And finally everything continues as usual with RIN procedure */ as_outbound_nacc_rim_resolve(info_ind); @@ -5349,9 +5390,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5379,13 +5423,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); as_outbound_nacc_rim_resolve(info_ind, do_answer := false); /* Before receiving RIM response, MS retransmits Pkt cell Chg Notif with different tgt cell: */ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); @@ -5394,12 +5432,7 @@ f_outbound_nacc_rim_tx_resp(info_ind); /* As a result, CTRL + RIM resolution for new tgt cell should now be done: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); /* And finally everything continues as usual with RIN procedure */ as_outbound_nacc_rim_resolve(info_ind); @@ -5434,9 +5467,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5464,13 +5500,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5480,12 +5510,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* It should trigger RAC_CI resolution to start again: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); /* Transmit SI back to MS */ @@ -5515,9 +5540,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5545,13 +5573,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5562,16 +5584,12 @@ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + /* It should trigger RAC_CI resolution to start again: */ + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); + /* PCU TBF NACC state changed, so we should next receive a dummy block: */ f_rx_rlcmac_dl_block_exp_dummy(dl_block, nr := f_ms_tx_TsTrxBtsNum(ms)); - /* It should trigger RAC_CI resolution to start again: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); /* Transmit SI back to MS */ @@ -5601,9 +5619,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5631,13 +5652,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5655,21 +5670,32 @@ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + /* It should trigger RAC_CI resolution to start again: */ + /* When using new PCUIF interface for resolution, we must + * PCUIF.receive() here since that's the first message in the PCUIF + * queue that PCU will have sent. Calling other functions doing + * PCUIF.receive() (like f_ms_tx_ul_block() below) will make them fail + * due to unexpected message receive. */ + if (not use_old_ctrl_iface) { + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); + } + /* PKT CELL CHG CONTINUE ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ if (dl_block.ctrl.mac_hdr.rrbp_valid) { sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp); f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); } + + /* When using CTRL interface, we must schedule the ACK before (see + * above) blocking here waiting for the resoltion, otherwise we'll be + * too late scheduling by the time the resolution is done. */ + if (use_old_ctrl_iface) { + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); + } + /* PCU TBF NACC state changed, so we should next receive a dummy block: */ f_rx_rlcmac_dl_block_exp_dummy(dl_block); - /* It should trigger RAC_CI resolution to start again: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); /* Transmit SI back to MS */ @@ -5700,9 +5726,12 @@ var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; var octetstring data := f_rnd_octstring(10); + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5730,13 +5759,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -6122,9 +6145,7 @@ execute( TC_nacc_outbound_success_no_ctrl_ack() ); execute( TC_nacc_outbound_success_twice() ); execute( TC_nacc_outbound_success_twice_nocache() ); - execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); - execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_dup() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_dup2() ); @@ -6137,6 +6158,10 @@ execute( TC_nacc_outbound_pkt_cell_chg_notif_twice4() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_twice5() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_unassigned_dl_tbf() ); + if (mp_ctrl_neigh_ip != "") { /* PCU using old CTRL neigh addr resolution iface */ + execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() ); + execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); + } execute( TC_rim_ran_info_req_single_rep() ); execute( TC_rim_ran_info_req_single_rep_eutran() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-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 Sep 8 14:17:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:17:44 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... ttcn3-pcu: use new Neighbor Address Resolution interface in master Since current master, osmo-pcu and osmo-bsc support Address Neighbor Resolution using new PCUIF over IPA multiplex, deprecating the old CTRL interface used until now. Since the old CTRL interface is not yet removed in order to avoid breakage of old deployments (only marked as deprecated and not used by default), let's keep support to run the existing tests with the old interface to keep them being tested in latest release, while instruction both osmo-pcu and TTCN3 PCU_Tests to use the new interface in master. Once we do a new osmo-pcu release, we can drop support for the old interface in tests, and drop it completely from osmo-pcu over the following next release. Depends: osmo-ttcn3-hacks.git Change-Id I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Related: SYS#4971 Change-Id: I01d0604f294dc88dc32137c976f424655849d57e --- M ttcn3-pcu-test/jenkins.sh 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/07/25407/1 diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh index 6d6f975..91b3abd 100755 --- a/ttcn3-pcu-test/jenkins.sh +++ b/ttcn3-pcu-test/jenkins.sh @@ -21,11 +21,18 @@ cfg="$VOL_BASE_DIR/pcu-tester/PCU_Tests.cfg" sed -i "s/^PCUIF_Components.mp_send_all_data_ind.*/PCUIF_Components.mp_send_all_data_ind := false;/" "$cfg" sed -i "s/^PCU_Tests.mp_osmo_pcu_newer_than_0_9_0.*/PCU_Tests.mp_osmo_pcu_newer_than_0_9_0 := false;/" "$cfg" + sed -i "s/^PCU_Tests.mp_ctrl_neigh_ip := "";/PCU_Tests.mp_osmo_pcu_newer_than_0_9_0 := false;/" "$cfg" +else + sed "/PCU_Tests.mp_ctrl_neigh_ip/d" -i "$VOL_BASE_DIR/pcu-tester/PCU_Tests.cfg" fi mkdir $VOL_BASE_DIR/pcu mkdir $VOL_BASE_DIR/pcu/unix cp osmo-pcu.cfg $VOL_BASE_DIR/pcu/ +# Disable until osmo-pcu release > 0.9.0 +if image_suffix_is_master; then + sed "/neighbor resolution/d" -i "$VOL_BASE_DIR/pcu/osmo-pcu.cfg" +fi mkdir $VOL_BASE_DIR/unix -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-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 Sep 8 14:34:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:34:57 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex 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/+/25404 to look at the new patch set (#2). Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initiall developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid rbeaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. TODO: value inside container must be encoded in network order!!! Related: SYS#4971 Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 --- M include/osmocom/pcu/pcuif_proto.h M src/gprs_pcu.c M src/nacc_fsm.c M src/nacc_fsm.h M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_vty.c 7 files changed, 232 insertions(+), 63 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/25404/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 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 Sep 8 14:44:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:44:28 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25408 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initiall developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid rbeaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Change-Id: I9073a121564503f483c84263ac72476041e47c03 Related: SYS#4971 --- M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/pcuif_proto.h M src/osmo-bsc/abis_osmo.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c 5 files changed, 162 insertions(+), 44 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/08/25408/1 diff --git a/include/osmocom/bsc/neighbor_ident.h b/include/osmocom/bsc/neighbor_ident.h index 0565d52..58300ba 100644 --- a/include/osmocom/bsc/neighbor_ident.h +++ b/include/osmocom/bsc/neighbor_ident.h @@ -86,6 +86,10 @@ "for all BSICs / use any BSIC in this ARFCN\n" void neighbor_ident_vty_parse_arfcn_bsic(struct cell_ab *ab, const char **argv); +int neighbor_address_resolution(const struct gsm_network *net, const struct cell_ab *ab, + uint16_t lac, uint16_t cell_id, + struct osmo_cell_global_id_ps *res_cgi_ps); + struct ctrl_handle *neighbor_controlif_setup(struct gsm_network *net); int neighbor_ctrl_cmds_install(struct gsm_network *net); diff --git a/include/osmocom/bsc/pcuif_proto.h b/include/osmocom/bsc/pcuif_proto.h index 3e6f651..4921fc3 100644 --- a/include/osmocom/bsc/pcuif_proto.h +++ b/include/osmocom/bsc/pcuif_proto.h @@ -26,6 +26,10 @@ #define PCU_IF_MSG_TXT_IND 0x70 /* Text indication for BTS */ #define PCU_IF_MSG_CONTAINER 0x80 /* Transparent container message */ +/* msg_type coming from BSC (inside PCU_IF_MSG_CONTAINER) */ +#define PCU_IF_MSG_NEIGH_ADDR_REQ 0x81 /* Neighbor Address Resolution Request */ +#define PCU_IF_MSG_NEIGH_ADDR_CNF 0x82 /* Neighbor Address Resolution Confirmation */ + /* sapi */ #define PCU_IF_SAPI_RACH 0x01 /* channel request on CCCH */ #define PCU_IF_SAPI_AGCH 0x02 /* assignment on AGCH */ @@ -226,6 +230,30 @@ uint8_t data[0]; } __attribute__ ((packed)); +/*** Used inside container: NOTE: values must be network byte order here! ***/ +/* Neighbor Address Resolution Request */ +struct gsm_pcu_if_neigh_addr_req { + uint16_t local_lac; + uint16_t local_ci; + uint16_t tgt_arfcn; + uint8_t tgt_bsic; +} __attribute__ ((packed)); + +/* Neighbor Address Resolution Confirmation */ +struct gsm_pcu_if_neigh_addr_cnf { + struct gsm_pcu_if_neigh_addr_req orig_req; + uint8_t err_code; /* 0 success, !0 failed & below unset */ + /* RAI + CI (CGI-PS): */ + struct __attribute__ ((packed)) { + uint16_t mcc; + uint16_t mnc; + uint8_t mnc_3_digits; + uint16_t lac; + uint8_t rac; + uint16_t cell_identity; + } cgi_ps; +} __attribute__ ((packed)); + struct gsm_pcu_if { /* context based information */ uint8_t msg_type; /* message type */ diff --git a/src/osmo-bsc/abis_osmo.c b/src/osmo-bsc/abis_osmo.c index 39caac6..4345a6f 100644 --- a/src/osmo-bsc/abis_osmo.c +++ b/src/osmo-bsc/abis_osmo.c @@ -32,6 +32,7 @@ #include #include #include +#include #define OM_HEADROOM_SIZE 128 @@ -40,7 +41,6 @@ /////////////////////////////////////// #define PCUIF_HDR_SIZE ( sizeof(struct gsm_pcu_if) - sizeof(((struct gsm_pcu_if *)0)->u) ) -#if 0 static struct msgb *abis_osmo_pcu_msgb_alloc(uint8_t msg_type, uint8_t bts_nr, size_t extra_size) { struct msgb *msg; @@ -62,7 +62,65 @@ ipa_prepend_header_ext(msg, IPAC_PROTO_EXT_PCU); return abis_osmo_sendmsg(bts, msg); } -#endif + +static int abis_osmo_pcu_tx_neigh_addr_cnf(struct gsm_bts *bts, const struct gsm_pcu_if_neigh_addr_req *naddr_req, + uint8_t err_code, const struct osmo_cell_global_id_ps *cgi_ps) +{ + struct msgb *msg = abis_osmo_pcu_msgb_alloc(PCU_IF_MSG_CONTAINER, bts->bts_nr, sizeof(struct gsm_pcu_if_neigh_addr_cnf)); + struct gsm_pcu_if *pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + struct gsm_pcu_if_neigh_addr_cnf *naddr_cnf = (struct gsm_pcu_if_neigh_addr_cnf *)&pcu_prim->u.container.data[0]; + + msgb_put(msg, sizeof(pcu_prim->u.container) + sizeof(struct gsm_pcu_if_neigh_addr_cnf)); + pcu_prim->u.container.msg_type = PCU_IF_MSG_NEIGH_ADDR_CNF; + osmo_store16be(sizeof(struct gsm_pcu_if_neigh_addr_cnf), &pcu_prim->u.container.length); + + naddr_cnf->orig_req = *naddr_req; + naddr_cnf->err_code = err_code; + if (err_code == 0) { + osmo_store16be(cgi_ps->rai.lac.plmn.mcc, &naddr_cnf->cgi_ps.mcc); + osmo_store16be(cgi_ps->rai.lac.plmn.mnc, &naddr_cnf->cgi_ps.mnc); + naddr_cnf->cgi_ps.mnc_3_digits = cgi_ps->rai.lac.plmn.mnc_3_digits; + osmo_store16be(cgi_ps->rai.lac.lac, &naddr_cnf->cgi_ps.lac); + naddr_cnf->cgi_ps.rac = cgi_ps->rai.rac; + osmo_store16be(cgi_ps->cell_identity, &naddr_cnf->cgi_ps.cell_identity); + } + + return abis_osmo_pcu_sendmsg(bts, msg); +} + +static int rcvmsg_pcu_neigh_addr_req(struct gsm_bts *bts, const struct gsm_pcu_if_neigh_addr_req *naddr_req) +{ + + struct cell_ab ab; + uint16_t local_lac, local_ci; + struct osmo_cell_global_id_ps cgi_ps; + int rc; + + local_lac = osmo_load16be(&naddr_req->local_lac); + local_ci = osmo_load16be(&naddr_req->local_ci); + ab = (struct cell_ab){ + .arfcn = osmo_load16be(&naddr_req->tgt_arfcn), + .bsic = naddr_req->tgt_bsic, + }; + + LOGP(DNM, LOGL_INFO, "(bts=%d) Rx Neighbor Address Resolution Req (ARFCN=%u,BSIC=%u) from (LAC=%u,CI=%u)\n", + bts->nr, ab.arfcn, ab.bsic, local_lac, local_ci); + + if (!cell_ab_valid(&ab)) { + rc = 2; + goto do_fail; + } + + if (neighbor_address_resolution(bts->network, &ab, local_lac, local_ci, &cgi_ps) < 0) { + rc = 1; + goto do_fail; + } + return abis_osmo_pcu_tx_neigh_addr_cnf(bts, naddr_req, 0, &cgi_ps); + +do_fail: + return abis_osmo_pcu_tx_neigh_addr_cnf(bts, naddr_req, rc, NULL); +} + static int rcvmsg_pcu_container(struct gsm_bts *bts, struct gsm_pcu_if_container *container, size_t container_len) { @@ -79,6 +137,13 @@ bts->nr, container->msg_type); switch (container->msg_type) { + case PCU_IF_MSG_NEIGH_ADDR_REQ: + if (data_length < sizeof(struct gsm_pcu_if_neigh_addr_req)) { + LOGP(DNM, LOGL_ERROR, "ABIS_OSMO_PCU CONTAINER ANR_CNF message too short\n"); + return -EINVAL; + } + rc = rcvmsg_pcu_neigh_addr_req(bts, (struct gsm_pcu_if_neigh_addr_req*)&container->data); + break; default: LOGP(DNM, LOGL_NOTICE, "(bts=%d) Rx ABIS_OSMO_PCU unexpected msg type (%u) inside container!\n", bts->nr, container->msg_type); diff --git a/src/osmo-bsc/neighbor_ident.c b/src/osmo-bsc/neighbor_ident.c index 6e70625..23697bf 100644 --- a/src/osmo-bsc/neighbor_ident.c +++ b/src/osmo-bsc/neighbor_ident.c @@ -366,18 +366,70 @@ return 0; } -static int get_neighbor_resolve_cgi_ps_from_lac_ci(struct ctrl_cmd *cmd, void *data) +/* Attempt resolution of cgi_ps from ARFCN+BSIC of neighbor from BTS identified by LAC+CI */ +int neighbor_address_resolution(const struct gsm_network *net, const struct cell_ab *ab, + uint16_t lac, uint16_t cell_id, + struct osmo_cell_global_id_ps *res_cgi_ps) { - struct gsm_network *net = (struct gsm_network *)data; struct gsm_bts *bts_tmp, *bts_found = NULL; - char *tmp = NULL, *tok, *saveptr; - struct cell_ab ab; - unsigned lac, cell_id; struct osmo_cell_global_id_ps local_cgi_ps; const struct osmo_cell_global_id_ps *cgi_ps = NULL; struct gsm_bts *local_neighbor = NULL; struct gsm0808_cell_id_list2 remote_neighbors = { 0 }; + llist_for_each_entry(bts_tmp, &net->bts_list, list) { + if (bts_tmp->location_area_code != lac) + continue; + if (bts_tmp->cell_identity != cell_id) + continue; + bts_found = bts_tmp; + break; + } + + if (!bts_found) + goto notfound_err; + + LOG_BTS(bts_found, DLINP, LOGL_DEBUG, "Resolving neighbor BTS %u -> %s\n", bts_found->nr, + cell_ab_to_str_c(OTC_SELECT, ab)); + + if (resolve_neighbors(&local_neighbor, &remote_neighbors, bts_found, ab, true)) + goto notfound_err; + + /* resolve_neighbors() returns either a local_neighbor or remote_neighbors. + * Local-BSS neighbor? */ + if (local_neighbor) { + /* Supporting GPRS? */ + if (gsm_bts_get_cgi_ps(local_neighbor, &local_cgi_ps) >= 0) + cgi_ps = &local_cgi_ps; + } + + /* Remote-BSS neighbor? + * By spec, there can be multiple remote neighbors for a given ARFCN+BSIC, but so far osmo-bsc enforces only a + * single remote neighbor. */ + if (remote_neighbors.id_list_len + && remote_neighbors.id_discr == CELL_IDENT_WHOLE_GLOBAL_PS) { + cgi_ps = &remote_neighbors.id_list[0].global_ps; + } + + /* No neighbor found */ + if (!cgi_ps) + goto notfound_err; + + *res_cgi_ps = *cgi_ps; + return 0; + +notfound_err: + return -1; +} + +static int get_neighbor_resolve_cgi_ps_from_lac_ci(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_network *net = (struct gsm_network *)data; + char *tmp = NULL, *tok, *saveptr; + struct cell_ab ab; + unsigned lac, cell_id; + struct osmo_cell_global_id_ps cgi_ps; + if (!cmd->variable) goto fmt_err; @@ -407,48 +459,13 @@ goto fmt_err; ab.bsic = atoi(tok); - llist_for_each_entry(bts_tmp, &net->bts_list, list) { - if (bts_tmp->location_area_code != lac) - continue; - if (bts_tmp->cell_identity != cell_id) - continue; - bts_found = bts_tmp; - break; - } - - if (!bts_found) - goto notfound_err; - - LOG_BTS(bts_found, DLINP, LOGL_DEBUG, "Resolving neighbor BTS %u -> %s\n", bts_found->nr, - cell_ab_to_str_c(OTC_SELECT, &ab)); - if (!cell_ab_valid(&ab)) goto fmt_err; - if (resolve_neighbors(&local_neighbor, &remote_neighbors, bts_found, &ab, true)) + if (neighbor_address_resolution(net, &ab, lac, cell_id, &cgi_ps) < 0) goto notfound_err; - /* resolve_neighbors() returns either a local_neighbor or remote_neighbors. - * Local-BSS neighbor? */ - if (local_neighbor) { - /* Supporting GPRS? */ - if (gsm_bts_get_cgi_ps(local_neighbor, &local_cgi_ps) >= 0) - cgi_ps = &local_cgi_ps; - } - - /* Remote-BSS neighbor? - * By spec, there can be multiple remote neighbors for a given ARFCN+BSIC, but so far osmo-bsc enforces only a - * single remote neighbor. */ - if (remote_neighbors.id_list_len - && remote_neighbors.id_discr == CELL_IDENT_WHOLE_GLOBAL_PS) { - cgi_ps = &remote_neighbors.id_list[0].global_ps; - } - - /* No neighbor found */ - if (!cgi_ps) - goto notfound_err; - - ctrl_cmd_reply_printf(cmd, "%s", osmo_cgi_ps_name(cgi_ps)); + ctrl_cmd_reply_printf(cmd, "%s", osmo_cgi_ps_name(&cgi_ps)); talloc_free(tmp); return CTRL_CMD_REPLY; diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index b9160ec..b500b34 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -481,6 +481,10 @@ NEIGHBOR_DOC "Bind Neighbor Resolution Service (CTRL interface) to given ip and port\n" IP_STR IPV6_STR "Port to bind the service to [defaults to 4248 if not provided]\n") { + vty_out(vty, "%% Warning: The CTRL interface for Neighbor Address Resolution is now deprecated." + "Upgrade osmo-pcu and drop the 'neighbor-resolution bind " VTY_IPV46_CMD " [<0-65535>]' VTY " + "option in order to let osmo-pcu use the new resoluton method using the PCUIF over IPA " + "multiplex, which will work out of the box without required configuration.%s", VTY_NEWLINE); osmo_talloc_replace_string(bsc_gsmnet, &bsc_gsmnet->neigh_ctrl.addr, argv[0]); if (argc > 1) bsc_gsmnet->neigh_ctrl.port = atoi(argv[1]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-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 Sep 8 14:47:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:47:29 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 14:47:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 14:55:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:55:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 to look at the new patch set (#2). Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... pcu: Support Neighbor Address Resolution over PCUIF New versions of osmo-pcu support Neighbor Address Resolution over this interface, and deprecated the old CTRL interface. Let's use it by default while still keeping support for the old one for a while to avoid breakage of existing deployments. Tests run to validate: * Old osmo-pcu still passes tests using CTRL interface * New osmo-pcu (with new iface support) still passes tests using CTRL interface * New osmo-pcu (with new iface support) passes tests using new iface Related: SYS#4971 Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 --- M bts/BTS_Tests_OML.ttcn M library/Osmocom_CTRL_Adapter.ttcn M library/PCUIF_Types.ttcn M pcu/PCU_Tests.ttcn 4 files changed, 324 insertions(+), 195 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/06/25406/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 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 Sep 8 14:57:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 14:57:17 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... ttcn3-pcu: use new Neighbor Address Resolution interface in master Since current master, osmo-pcu and osmo-bsc support Address Neighbor Resolution using new PCUIF over IPA multiplex, deprecating the old CTRL interface used until now. Since the old CTRL interface is not yet removed in order to avoid breakage of old deployments (only marked as deprecated and not used by default), let's keep support to run the existing tests with the old interface to keep them being tested in latest release, while instruction both osmo-pcu and TTCN3 PCU_Tests to use the new interface in master. Once we do a new osmo-pcu release, we can drop support for the old interface in tests, and drop it completely from osmo-pcu over the following next release. Depends: osmo-ttcn3-hacks.git Change-Id I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Related: SYS#4971 Change-Id: I01d0604f294dc88dc32137c976f424655849d57e --- M ttcn3-pcu-test/jenkins.sh 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/07/25407/2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 15:22:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 15:22:53 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex 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/+/25408 to look at the new patch set (#2). Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initiall developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid rbeaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Change-Id: I9073a121564503f483c84263ac72476041e47c03 Related: SYS#4971 --- M doc/manuals/chapters/handover.adoc M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/pcuif_proto.h M src/osmo-bsc/abis_osmo.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c 6 files changed, 190 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/08/25408/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 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 Sep 8 15:39:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 15:39:47 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex 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/+/25404 to look at the new patch set (#3). Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initiall developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid rbeaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. TODO: value inside container must be encoded in network order!!! Related: SYS#4971 Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 --- M doc/manuals/chapters/configuration.adoc M include/osmocom/pcu/pcuif_proto.h M src/gprs_pcu.c M src/nacc_fsm.c M src/nacc_fsm.h M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_vty.c 8 files changed, 266 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/25404/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 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 Wed Sep 8 15:42:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 15:42:55 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex 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/+/25408 to look at the new patch set (#3). Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initiall developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid rbeaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Change-Id: I9073a121564503f483c84263ac72476041e47c03 Related: SYS#4971 --- M doc/manuals/chapters/handover.adoc M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/pcuif_proto.h M src/osmo-bsc/abis_osmo.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c 6 files changed, 190 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/08/25408/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 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 Wed Sep 8 16:13:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 16:13:44 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 16:13:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 17:15:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 8 Sep 2021 17:15:26 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25409 ) Change subject: lchan_fsm: Fix comment ...................................................................... lchan_fsm: Fix comment bs_power_db, as its name suggests (also check vty code and rsl_tx_chan_activ()) contains value in dB, not in 2dB steps. Change-Id: I76bd6bb1b307ab75ba1292865747419228e0687a --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/09/25409/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index def70de..c390662 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -700,7 +700,7 @@ * - bs_power_db is still zero, 0dB reduction, output power = Pn. * - TA is still zero, to be determined by RACH. */ - /* Default BS Power reduction value (in 2 dB steps) */ + /* Default BS Power reduction value (in dB) */ if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) lchan->bs_power_db = bts->bs_power_ctrl.bs_power_max_db; else -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I76bd6bb1b307ab75ba1292865747419228e0687a Gerrit-Change-Number: 25409 Gerrit-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 Sep 8 19:43:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:43:43 +0000 Subject: Change in osmo-remsim[master]: client: request card-remove and sim-local when no bankd/slot is set References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25410 ) Change subject: client: request card-remove and sim-local when no bankd/slot is set ...................................................................... client: request card-remove and sim-local when no bankd/slot is set When the client leaves the OPERATIONAL state, do the inverse of what happens when entering that state: * request "card insert" no longer to be generated towards modem * request switch back to local SIM * reset the modem to notice the change This way entering remote-sim operation due to adding a slotmap and leaving remote-sim due to removing the slotmap should be symmetrical. Change-Id: Ifaa4b60474bf8585bfbe0288062f581821bd3faa Closes: OS#5216 --- M src/client/client.h M src/client/main_fsm.c M src/client/user_ifdhandler.c M src/client/user_shell.c M src/client/user_simtrace2.c 5 files changed, 54 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/10/25410/1 diff --git a/src/client/client.h b/src/client/client.h index 0024f52..9cfdc5d 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -43,7 +43,9 @@ /* API from generic core to frontend (modem/cardem) */ int frontend_request_card_insert(struct bankd_client *bc); +int frontend_request_card_remove(struct bankd_client *bc); int frontend_request_sim_remote(struct bankd_client *bc); +int frontend_request_sim_local(struct bankd_client *bc); int frontend_request_modem_reset(struct bankd_client *bc); int frontend_handle_card2modem(struct bankd_client *bc, const uint8_t *data, size_t len); int frontend_handle_set_atr(struct bankd_client *bc, const uint8_t *data, size_t len); diff --git a/src/client/main_fsm.c b/src/client/main_fsm.c index 673b19e..4ca07e6 100644 --- a/src/client/main_fsm.c +++ b/src/client/main_fsm.c @@ -208,6 +208,23 @@ call_script(bc, "request-modem-reset"); } +static void main_st_operational_onleave(struct osmo_fsm_inst *fi, uint32_t next_state) +{ + struct bankd_client *bc = (struct bankd_client *) fi->priv; + + /* Simulate a card-remval to modem */ + frontend_request_card_remove(bc); + call_script(bc, "request-card-remove"); + + /* Select local SIM */ + frontend_request_sim_local(bc); + call_script(bc, "request-sim-local"); + + /* Reset the modem */ + frontend_request_modem_reset(bc); + call_script(bc, "request-modem-reset"); +} + static void main_st_operational(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct bankd_client *bc = (struct bankd_client *) fi->priv; @@ -232,9 +249,9 @@ bc->bankd_conn.server_port = pdu_rx->msg.choice.configClientBankReq.bankd.port; rspro2bank_slot(&bc->bankd_slot, &pdu_rx->msg.choice.configClientBankReq.bankSlot); /* bankd port 0 is a magic value to indicate "no bankd" */ - if (bc->bankd_conn.server_port == 0) + if (bc->bankd_conn.server_port == 0) { osmo_fsm_inst_state_chg(fi, MF_ST_UNCONFIGURED, 0, 0); - else { + } else { osmo_fsm_inst_state_chg(fi, MF_ST_WAIT_BANKD, 0, 0); /* TODO: do we need to disconnect before? */ osmo_fsm_inst_dispatch(bc->bankd_conn.fi, SRVC_E_ESTABLISH, NULL); @@ -353,6 +370,7 @@ .out_state_mask = S(MF_ST_INIT) | S(MF_ST_UNCONFIGURED) | S(MF_ST_WAIT_BANKD), .action = main_st_operational, .onenter = main_st_operational_onenter, + .onleave = main_st_operational_onleave, }, }; diff --git a/src/client/user_ifdhandler.c b/src/client/user_ifdhandler.c index a690503..a416e6e 100644 --- a/src/client/user_ifdhandler.c +++ b/src/client/user_ifdhandler.c @@ -156,11 +156,21 @@ return 0; } +int frontend_request_card_remove(struct bankd_client *bc) +{ + return 0; +} + int frontend_request_sim_remote(struct bankd_client *bc) { return 0; } +int frontend_request_sim_local(struct bankd_client *bc) +{ + return 0; +} + int frontend_request_modem_reset(struct bankd_client *bc) { return 0; diff --git a/src/client/user_shell.c b/src/client/user_shell.c index b22ee9a..5d37e97 100644 --- a/src/client/user_shell.c +++ b/src/client/user_shell.c @@ -20,11 +20,21 @@ return 0; } +int frontend_request_card_remove(struct bankd_client *bc) +{ + return 0; +} + int frontend_request_sim_remote(struct bankd_client *bc) { return 0; } +int frontend_request_sim_local(struct bankd_client *bc) +{ + return 0; +} + int frontend_request_modem_reset(struct bankd_client *bc) { return 0; diff --git a/src/client/user_simtrace2.c b/src/client/user_simtrace2.c index fa6c319..8d8a6c9 100644 --- a/src/client/user_simtrace2.c +++ b/src/client/user_simtrace2.c @@ -322,12 +322,24 @@ return osmo_st2_cardem_request_card_insert(ci, true); } +int frontend_request_card_remove(struct bankd_client *bc) +{ + struct osmo_st2_cardem_inst *ci = bc->cardem; + return osmo_st2_cardem_request_card_insert(ci, false); +} + int frontend_request_sim_remote(struct bankd_client *bc) { struct osmo_st2_cardem_inst *ci = bc->cardem; return osmo_st2_modem_sim_select_remote(ci->slot); } +int frontend_request_sim_local(struct bankd_client *bc) +{ + struct osmo_st2_cardem_inst *ci = bc->cardem; + return osmo_st2_modem_sim_select_local(ci->slot); +} + int frontend_request_modem_reset(struct bankd_client *bc) { struct osmo_st2_cardem_inst *ci = bc->cardem; -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ifaa4b60474bf8585bfbe0288062f581821bd3faa Gerrit-Change-Number: 25410 Gerrit-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 Sep 8 19:50:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:50:43 +0000 Subject: Change in osmo-remsim[master]: client: request card-remove and sim-local when no bankd/slot is 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-remsim/+/25410 to look at the new patch set (#2). Change subject: client: request card-remove and sim-local when no bankd/slot is set ...................................................................... client: request card-remove and sim-local when no bankd/slot is set When the client leaves the OPERATIONAL state, do the inverse of what happens when entering that state: * request "card insert" no longer to be generated towards modem * request switch back to local SIM * reset the modem to notice the change This way entering remote-sim operation due to adding a slotmap and leaving remote-sim due to removing the slotmap should be symmetrical. Change-Id: Ifaa4b60474bf8585bfbe0288062f581821bd3faa Closes: OS#5216 --- M src/client/client.h M src/client/main_fsm.c M src/client/user_ifdhandler.c M src/client/user_shell.c M src/client/user_simtrace2.c 5 files changed, 52 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/10/25410/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ifaa4b60474bf8585bfbe0288062f581821bd3faa Gerrit-Change-Number: 25410 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 19:51:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:51:22 +0000 Subject: Change in osmo-remsim[master]: client: request card-remove and sim-local when no bankd/slot is set In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-remsim/+/25410 ) Change subject: client: request card-remove and sim-local when no bankd/slot is set ...................................................................... Patch Set 2: Code-Review-1 -1 as it is still untested. Assigning to daniel. -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/25410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ifaa4b60474bf8585bfbe0288062f581821bd3faa Gerrit-Change-Number: 25410 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Wed, 08 Sep 2021 19:51:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 19:51:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:51:42 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25409 ) Change subject: lchan_fsm: Fix comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I76bd6bb1b307ab75ba1292865747419228e0687a Gerrit-Change-Number: 25409 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 19:51:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 19:51:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:51:45 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25409 ) Change subject: lchan_fsm: Fix comment ...................................................................... lchan_fsm: Fix comment bs_power_db, as its name suggests (also check vty code and rsl_tx_chan_activ()) contains value in dB, not in 2dB steps. Change-Id: I76bd6bb1b307ab75ba1292865747419228e0687a --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index def70de..c390662 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -700,7 +700,7 @@ * - bs_power_db is still zero, 0dB reduction, output power = Pn. * - TA is still zero, to be determined by RACH. */ - /* Default BS Power reduction value (in 2 dB steps) */ + /* Default BS Power reduction value (in dB) */ if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) lchan->bs_power_db = bts->bs_power_ctrl.bs_power_max_db; else -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I76bd6bb1b307ab75ba1292865747419228e0687a Gerrit-Change-Number: 25409 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 Wed Sep 8 19:53:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:53:40 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25404 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 19:53:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 8 19:53:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:53:54 +0000 Subject: Change in osmo-pcu[master]: nacc_fsm: Move logic checking if SI is being waited for to a func helper In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25405 ) Change subject: nacc_fsm: Move logic checking if SI is being waited for to a func helper ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 Gerrit-Change-Number: 25405 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 19:53: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 Sep 8 19:55:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:55:31 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25408 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 19: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 Wed Sep 8 19:56:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:56:13 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 08 Sep 2021 19: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 Sep 8 19:56:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 8 Sep 2021 19:56:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 08 Sep 2021 19:56:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 11:24:01 2021 From: gerrit-no-reply at lists.osmocom.org (iedemam) Date: Thu, 9 Sep 2021 11:24:01 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC In-Reply-To: References: Message-ID: iedemam has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... Patch Set 2: Just giving a symbolic +1 to this one. This change has tested well now in multiple environments where previously Early IA was failing. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: iedemam Gerrit-Comment-Date: Thu, 09 Sep 2021 11:24:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 11:46:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 11:46:08 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: iedemam Gerrit-Comment-Date: Thu, 09 Sep 2021 11:46:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 11:46:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 11:46:12 +0000 Subject: Change in osmo-bsc[master]: fixup for Early IMM ASS: use proper TSC In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25397 ) Change subject: fixup for Early IMM ASS: use proper TSC ...................................................................... fixup for Early IMM ASS: use proper TSC Testing has shown that the Training Sequence Code in pre-chan-ack mode is inaccurate (only worked with a BSIC that incidentally yielded the same TSC value as the wrong TSC value sent in the IMM ASS msg). Move the code setting the correct TSC and TSC-Set to the first stage of channel activation (lchan_fsm_wait_ts_ready_onenter()) so that it is available for both pre-chan-ack and pre-ts-ack Early-IA modes. Have a separate function for setting the preliminary values requested in Channel Activation (lchan->activate.*) into the accepted operative places (lchan->*). Call this early for early-IA modes. Hence the TSC and TSC-Set used in the early IMM ASS message is now the correct one, and the same as sent during Channel Activation. There shouldn't be any, but if there are other values besides TSC suffering from the same problem, they are now also set to the right values before sending IMM ASS early. Related: SYS#5559 Related: I4479244b0c53648e62e84e1ebf986f51d659484f (osmo-ttcn3-hacks) Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 40 insertions(+), 16 deletions(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index c390662..1b59b45 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -672,6 +672,8 @@ return rc; } +static void post_activ_ack_accept_preliminary_settings(struct gsm_lchan *lchan); + static void lchan_fsm_wait_ts_ready_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_lchan *lchan = lchan_fi_lchan(fi); @@ -717,6 +719,17 @@ if (lchan_activate_set_ch_mode_rate_and_mr_config(lchan)) return; + /* If enabling VAMOS mode and no specific TSC Set was selected, make sure to select a sane TSC Set by + * default: Set 1 for the primary and Set 2 for the shadow lchan. For non-VAMOS lchans, TSC Set 1. */ + if (lchan->activate.info.tsc_set > 0) + lchan->activate.tsc_set = lchan->activate.info.tsc_set; + else + lchan->activate.tsc_set = lchan->vamos.is_secondary ? 2 : 1; + + /* Use the TSC provided in the modification request, if any. Otherwise use the timeslot's configured + * TSC. */ + lchan->activate.tsc = (lchan->activate.info.tsc >= 0) ? lchan->activate.info.tsc : gsm_ts_tsc(lchan->ts); + use_mgwep_ci = lchan_use_mgw_endpoint_ci_bts(lchan); LOG_LCHAN(lchan, LOGL_INFO, @@ -742,7 +755,13 @@ if (lchan->activate.info.imm_ass_time == IMM_ASS_TIME_PRE_TS_ACK) { /* Send the Immediate Assignment even before the timeslot is ready, saving a dyn TS timeslot roundtrip - * on Abis (experimental). */ + * on Abis (experimental). + * + * Until the Channel Activation ACK is received, various values still are preliminary and hence live in + * lchan->activate.*. We're doing things early here and need e.g. an accurate lchan->tsc, so already + * copy the preliminary values from lchan->activate.* into the operative places in lchan->* prematurely. + */ + post_activ_ack_accept_preliminary_settings(lchan); lchan_send_imm_ass(fi); } } @@ -801,19 +820,13 @@ break; } + /* rsl_tx_chan_activ() and build_encr_info() access lchan->encr, make sure it reflects the values requested for + * activation. + * TODO: rather leave it in lchan->activate.info.encr until the ACK is received, which means that + * rsl_tx_chan_activ() should use lchan->activate.info.encr and build_encr_info() should be passed encr as an + * explicit argument. */ lchan->encr = lchan->activate.info.encr; - /* If enabling VAMOS mode and no specific TSC Set was selected, make sure to select a sane TSC Set by - * default: Set 1 for the primary and Set 2 for the shadow lchan. For non-VAMOS lchans, TSC Set 1. */ - if (lchan->activate.info.tsc_set > 0) - lchan->activate.tsc_set = lchan->activate.info.tsc_set; - else - lchan->activate.tsc_set = lchan->vamos.is_secondary ? 2 : 1; - - /* Use the TSC provided in the modification request, if any. Otherwise use the timeslot's configured - * TSC. */ - lchan->activate.tsc = (lchan->activate.info.tsc >= 0) ? lchan->activate.info.tsc : gsm_ts_tsc(lchan->ts); - rc = rsl_tx_chan_activ(lchan, act_type, ho_ref); if (rc) { lchan_fail_to(LCHAN_ST_UNUSED, "Tx Chan Activ failed: %s (%d)", strerror(-rc), rc); @@ -825,7 +838,13 @@ if (lchan->activate.info.imm_ass_time == IMM_ASS_TIME_PRE_CHAN_ACK) { /* Send the Immediate Assignment directly after the Channel Activation request, saving one Abis - * roundtrip between ChanRqd and Imm Ass. */ + * roundtrip between ChanRqd and Imm Ass. + * + * Until the Channel Activation ACK is received, various values still are preliminary and hence live in + * lchan->activate.*. We're doing things early here and need e.g. an accurate lchan->tsc, so already + * copy the preliminary values from lchan->activate.* into the operative places in lchan->* prematurely. + */ + post_activ_ack_accept_preliminary_settings(lchan); lchan_send_imm_ass(fi); } } @@ -886,15 +905,20 @@ } } -static void lchan_fsm_post_activ_ack(struct osmo_fsm_inst *fi) +static void post_activ_ack_accept_preliminary_settings(struct gsm_lchan *lchan) { - struct gsm_lchan *lchan = lchan_fi_lchan(fi); - lchan->current_ch_mode_rate = lchan->activate.ch_mode_rate; lchan->current_mr_conf = lchan->activate.mr_conf_filtered; lchan->vamos.enabled = lchan->activate.info.vamos; lchan->tsc_set = lchan->activate.tsc_set; lchan->tsc = lchan->activate.tsc; +} + +static void lchan_fsm_post_activ_ack(struct osmo_fsm_inst *fi) +{ + struct gsm_lchan *lchan = lchan_fi_lchan(fi); + + post_activ_ack_accept_preliminary_settings(lchan); LOG_LCHAN(lchan, LOGL_INFO, "Rx Activ ACK %s\n", gsm48_chan_mode_name(lchan->current_ch_mode_rate.chan_mode)); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25397 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9f26074154600d854a0b3baee2f38a6666f4cb56 Gerrit-Change-Number: 25397 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: iedemam Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 11:46:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 11:46:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_imm_ass_pre_ts_ack In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 ) Change subject: bsc: add TC_imm_ass_pre_ts_ack ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 Gerrit-Change-Number: 25399 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 09 Sep 2021 11:46: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 Sep 9 11:46:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 11:46:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_imm_ass_pre_ts_ack In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 ) Change subject: bsc: add TC_imm_ass_pre_ts_ack ...................................................................... bsc: add TC_imm_ass_pre_ts_ack Also test the early IA feature for non-dyn TS in 'pre-ts-ack' mode, for completeness' sake. Related: SYS#5559 Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 --- M bsc/BSC_Tests.ttcn 1 file changed, 46 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved osmith: 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 5d65a66..74cdaeb 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9761,6 +9761,51 @@ f_shutdown_helper(); } +testcase TC_imm_ass_pre_ts_ack() runs on test_CT { + var RSL_Message chan_act; + var RSL_Message imm_ass; + + f_init(1, false); + f_sleep(1.0); + + f_vty_set_imm_ass(BSCVTY, 0, "pre-ts-ack"); + + /* RA containing reason=LU */ + var GsmFrameNumber fn := 2342; + var uint8_t ra := 2; + f_ipa_tx(0, ts_RSL_CHAN_RQD(int2oct(ra, 1), fn)); + + /* (set bts 0 cfg back to default) */ + f_vty_set_imm_ass(BSCVTY); + + chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV)); + var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr; + var RSL_IE_Body chan_ident_ie; + if (not f_rsl_find_ie(chan_act, RSL_IE_CHAN_IDENT, chan_ident_ie)) { + setverdict(fail, "RSL Channel Identification IE is absent"); + mtc.stop; + } + + /* *FIRST* expect the Immediate Assignment, before we ACK the chan act */ + imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0)); + f_verify_imm_ass(imm_ass, ra, fn, chan_nr, chan_ident_ie.chan_ident.ch_desc.v.arfcn, + chan_ident_ie.chan_ident.ch_desc.v.tsc); + + /* Only now send the Chan Act ACK */ + f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10)); + + /* Check that the lchan is working */ + var octetstring l3 := '00010203040506'O; + f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3)); + + var BSSAP_N_CONNECT_ind rx_c_ind; + BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind; + BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId)); + + f_sleep(1.0); + f_shutdown_helper(); +} + testcase TC_imm_ass_pre_chan_ack_dyn_ts() runs on test_CT { /* change Timeslot 6 before f_init() starts RSL */ f_init_vty(); @@ -10198,6 +10243,7 @@ execute( TC_imm_ass_post_chan_ack() ); execute( TC_imm_ass_pre_chan_ack() ); + execute( TC_imm_ass_pre_ts_ack() ); execute( TC_imm_ass_pre_chan_ack_dyn_ts() ); execute( TC_imm_ass_pre_ts_ack_dyn_ts() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6ba84b4b618dd99ec2095aaf611209e525f2b5f4 Gerrit-Change-Number: 25399 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 12:04:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 12:04:19 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25411 ) Change subject: lchan_fsm: Fix comment ...................................................................... lchan_fsm: Fix comment A previous commit (Feb 05 2021) moved copy of TA value to some other place to fix some related issues, but forgot to update the comment. Fixes: b03e73f27b26449864296fdab84f6fb6e1978c45 Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/25411/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index c390662..83135fb 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -689,7 +689,7 @@ lchan->conn = info->for_conn; /* If there is a previous lchan, and the new lchan is on the same cell as previous one, - * take over power and TA values. Otherwise, use max power and zero TA. */ + * take over power values. Otherwise, use max power. */ if (old_lchan && old_lchan->ts->trx->bts == bts) { ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power); lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm >= 0 ? ms_power_dbm : bts->ms_max_power); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 Gerrit-Change-Number: 25411 Gerrit-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 Sep 9 12:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 12:07:48 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bsc/+/25411 ) Change subject: lchan_fsm: Fix comment ...................................................................... lchan_fsm: Fix comment A previous commit (Feb 05 2021) moved copy of TA value to some other place to fix some related issues, but forgot to update the comment. Fixes: b03e73f27b26449864296fdab84f6fb6e1978c45 Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/25411/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 Gerrit-Change-Number: 25411 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 Sep 9 12:31:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 12:31:58 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Avoid inheriting bs_power from old lchan References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25412 ) Change subject: lchan_fsm: Avoid inheriting bs_power from old lchan ...................................................................... lchan_fsm: Avoid inheriting bs_power from old lchan So far we were inherting the bs_power in used when activating an lchan for an MS for which we already had previous lchan. For instance, when an MS is first assigned an SDCCH, and later on, it is assigned a TCH to place a voice call. Doing so is, however, not correct because current and old lchans may be placed on different TS or even on different TRX, which means they will have different BS Power restrictions. In the scenario described above, for instance, an SDCCH could have been assigned on C0 and hence have a bs_power of 0, and later on, whenever the TCH lchan as created, it would have inherited the C0 bs_power despite it may have been possible to use a different (lower) max bs power. Furthermore, the lchan->bs_power_db basically stores the *maximum* bs power reduction. Hence it makes not sense at all to copy over the value, since it is anyway not updated from MS measurement reports so far anyway. Fixes: 997a257f8dabe5dd940a1271e56e676a871896d7 Related: SYS#4919 Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 9 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/12/25412/1 diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index a18cba5..d06dbac 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -681,7 +681,7 @@ struct osmo_mgcpc_ep_ci *use_mgwep_ci; struct gsm_lchan *old_lchan = lchan->activate.info.re_use_mgw_endpoint_from_lchan; struct lchan_activate_info *info = &lchan->activate.info; - int ms_power_dbm; + int ms_power_dbm = bts->ms_max_power; if (lchan->release.requested) { lchan_fail("Release requested while activating"); @@ -691,23 +691,17 @@ lchan->conn = info->for_conn; /* If there is a previous lchan, and the new lchan is on the same cell as previous one, - * take over power values. Otherwise, use max power. */ + * take over MS power values. Otherwise, use configured MS max power. */ if (old_lchan && old_lchan->ts->trx->bts == bts) { - ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power); - lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm >= 0 ? ms_power_dbm : bts->ms_max_power); - lchan->bs_power_db = old_lchan->bs_power_db; - } else { - lchan_update_ms_power_ctrl_level(lchan, bts->ms_max_power); - /* Upon last entering the UNUSED state, from lchan_reset(): - * - bs_power_db is still zero, 0dB reduction, output power = Pn. */ - - /* Default BS Power reduction value (in dB) */ - if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) - lchan->bs_power_db = bts->bs_power_ctrl.bs_power_max_db; - else - lchan->bs_power_db = bts->bs_power_ctrl.bs_power_val_db; + if ((ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power)) == 0) + ms_power_dbm = bts->ms_max_power; } + lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm); + /* Default BS Power reduction value (in dB) */ + lchan->bs_power_db = (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) ? + bts->bs_power_ctrl.bs_power_max_db : + bts->bs_power_ctrl.bs_power_val_db; /* BS Power Control is generally not allowed on the BCCH/CCCH carrier. * However, we allow it in the BCCH carrier power reduction mode of operation. */ if (lchan->ts->trx == bts->c0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 Gerrit-Change-Number: 25412 Gerrit-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 Sep 9 13:46:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 13:46:34 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Avoid inheriting bs_power from old lchan In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25412 ) Change subject: lchan_fsm: Avoid inheriting bs_power from old lchan ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 Gerrit-Change-Number: 25412 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 09 Sep 2021 13: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 Thu Sep 9 13:46:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 13:46:53 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25411 ) Change subject: lchan_fsm: Fix comment ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 Gerrit-Change-Number: 25411 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 13:46:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:19 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:19 +0000 Subject: Change in libosmocore[master]: vty: allow flushing References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... vty: allow flushing Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/25413/1 diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index 3e6178f..c13f435 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -222,6 +222,7 @@ int vty_read(struct vty *vty); //void vty_time_print (struct vty *, int); void vty_close (struct vty *); +void vty_flush(struct vty *vty); char *vty_get_cwd (void); void vty_log (const char *level, const char *proto, const char *fmt, va_list); int vty_config_lock (struct vty *); diff --git a/src/vty/vty.c b/src/vty/vty.c index a39f268..1ad84f5 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -207,6 +207,12 @@ } } +void vty_flush(struct vty *vty) +{ + if (vty->obuf) + buffer_flush_all(vty->obuf, vty->fd); +} + /*! Close a given vty interface. */ void vty_close(struct vty *vty) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:21 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:21 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... ratectr: make atomic This allows usage from different threads - (de)allocation is not threadsafe! Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 --- M include/osmocom/core/rate_ctr.h M src/rate_ctr.c 2 files changed, 15 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/25414/1 diff --git a/include/osmocom/core/rate_ctr.h b/include/osmocom/core/rate_ctr.h index d944cc0..ffaae91 100644 --- a/include/osmocom/core/rate_ctr.h +++ b/include/osmocom/core/rate_ctr.h @@ -5,7 +5,7 @@ * \file rate_ctr.h */ #include - +#include #include /*! Number of rate counter intervals */ @@ -21,14 +21,14 @@ /*! data we keep for each of the intervals */ struct rate_ctr_per_intv { - uint64_t last; /*!< counter value in last interval */ - uint64_t rate; /*!< counter rate */ + atomic_uint_fast64_t last; /*!< counter value in last interval */ + atomic_uint_fast64_t rate; /*!< counter rate */ }; /*! data we keep for each actual value */ struct rate_ctr { - uint64_t current; /*!< current value */ - uint64_t previous; /*!< previous value, used for delta */ + atomic_uint_fast64_t current; /*!< current value */ + atomic_uint_fast64_t previous; /*!< previous value, used for delta */ /*! per-interval data */ struct rate_ctr_per_intv intv[RATE_CTR_INTV_NUM]; }; diff --git a/src/rate_ctr.c b/src/rate_ctr.c index 4d99699..aa02005 100644 --- a/src/rate_ctr.c +++ b/src/rate_ctr.c @@ -68,7 +68,9 @@ #include #include -static LLIST_HEAD(rate_ctr_groups); +static __thread struct llist_head rate_ctr_groups; +static __thread struct osmo_timer_list rate_ctr_timer; +static __thread uint64_t timer_ticks; static void *tall_rate_ctr_ctx; @@ -314,9 +316,6 @@ ctr->intv[intv+1].rate += ctr->intv[intv].rate; } -static struct osmo_timer_list rate_ctr_timer; -static uint64_t timer_ticks; - /* The one-second interval has expired */ static void rate_ctr_group_intv(struct rate_ctr_group *grp) { @@ -354,6 +353,7 @@ * \returns 0 on success; negative on error */ int rate_ctr_init(void *tall_ctx) { + INIT_LLIST_HEAD(&rate_ctr_groups); tall_rate_ctr_ctx = tall_ctx; osmo_timer_setup(&rate_ctr_timer, rate_ctr_timer_cb, NULL); osmo_timer_schedule(&rate_ctr_timer, 1, 0); @@ -467,4 +467,10 @@ } } +/* ensure main thread always has pre-initialized osmo_fds */ +static __attribute__((constructor)) void on_dso_load_rate_ctr(void) +{ + INIT_LLIST_HEAD(&rate_ctr_groups); +} + /*! @} */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:21 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:21 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... vty sched: add api to force deferred applying Some applications might not yet have threads at config parsing time, so applying to threads just does not work, allow enforcing this with a new api call. This is not reflected in the config file, since this is the only way this works, so let's not confuse the user with those details by storing flags or modifying the settings. Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 --- M include/osmocom/vty/cpu_sched_vty.h M src/vty/cpu_sched_vty.c 2 files changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/25415/1 diff --git a/include/osmocom/vty/cpu_sched_vty.h b/include/osmocom/vty/cpu_sched_vty.h index 171f168..b60fbf9 100644 --- a/include/osmocom/vty/cpu_sched_vty.h +++ b/include/osmocom/vty/cpu_sched_vty.h @@ -33,5 +33,6 @@ void osmo_cpu_sched_vty_init(void *tall_ctx); int osmo_cpu_sched_vty_apply_localthread(void); +void osmo_cpu_sched_force_apply_later(bool yes); /*! @} */ diff --git a/src/vty/cpu_sched_vty.c b/src/vty/cpu_sched_vty.c index 4ccc627..92b356f 100644 --- a/src/vty/cpu_sched_vty.c +++ b/src/vty/cpu_sched_vty.c @@ -76,6 +76,7 @@ int sched_rr_prio; struct llist_head cpu_affinity_li; pthread_mutex_t cpu_affinity_li_mutex; + bool force_apply_later; }; static struct sched_vty_opts *sched_vty_opts; @@ -392,6 +393,8 @@ cpu_set_t *cpuset; size_t cpuset_size; + applynow = sched_vty_opts->force_apply_later ? false : applynow; + tid_type = procname2pid(&pid, str_who, applynow); if (tid_type == SCHED_VTY_THREAD_UNKNOWN) { vty_out(vty, "%% Failed parsing target thread %s%s", @@ -404,7 +407,7 @@ (unsigned long)pid, VTY_NEWLINE); return CMD_WARNING; } - if (tid_type == SCHED_VTY_THREAD_ALL && !applynow) { + if (tid_type == SCHED_VTY_THREAD_ALL && !applynow && !sched_vty_opts->force_apply_later) { vty_out(vty, "%% It makes no sense to delay applying cpu-affinity on all threads%s", VTY_NEWLINE); return CMD_WARNING; @@ -587,7 +590,7 @@ if (generate_cpu_hex_mask(str_mask, sizeof(str_mask), it->cpuset, it->cpuset_size) < 0) OSMO_STRLCPY_ARRAY(str_mask, "ERROR"); vty_out(vty, " cpu-affinity %s %s%s%s", it->bufname, str_mask, - it->delay ? " delay" : "", VTY_NEWLINE); + (it->delay && !sched_vty_opts->force_apply_later) ? " delay" : "", VTY_NEWLINE); } return CMD_SUCCESS; @@ -676,4 +679,13 @@ return rc; } +/*! Force deferred cpu affinty for applications that spawn their threads late + * \param[in] yes Enable/disable delayed thread priority application + */ +void osmo_cpu_sched_force_apply_later(bool yes) +{ + OSMO_ASSERT(sched_vty_opts); + sched_vty_opts->force_apply_later = yes; +} + /*! @} */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:34 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:34 +0000 Subject: Change in osmo-mgw[master]: add vscode stuff to gitignore References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25416 ) Change subject: add vscode stuff to gitignore ...................................................................... add vscode stuff to gitignore Change-Id: If3cfb71700929aa63df7f4f7f89f5392ba94c77e --- M .gitignore 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/16/25416/1 diff --git a/.gitignore b/.gitignore index 5175438..a72cd36 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,8 @@ doc/manuals/build contrib/osmo-mgw.spec + +#vs code +.cache +.vscode + -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If3cfb71700929aa63df7f4f7f89f5392ba94c77e Gerrit-Change-Number: 25416 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:34 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:34 +0000 Subject: Change in osmo-mgw[master]: configure.ac: add some flags References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25417 ) Change subject: configure.ac: add some flags ...................................................................... configure.ac: add some flags Change-Id: I6398f138764726098dbf607c2c7d993abe234d97 --- M configure.ac 1 file changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/17/25417/1 diff --git a/configure.ac b/configure.ac index 64e2c04..6c92f26 100644 --- a/configure.ac +++ b/configure.ac @@ -90,12 +90,24 @@ dnl Checks for typedefs, structures and compiler characteristics AX_CHECK_COMPILE_FLAG([-Werror=implicit], [CFLAGS="$CFLAGS -Werror=implicit"]) -AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"]) +AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Werror=sometimes-uninitialized], [CFLAGS="$CFLAGS -Werror=sometimes-uninitialized"],,[-Werror]) AX_CHECK_COMPILE_FLAG([-Werror=memset-transposed-args], [CFLAGS="$CFLAGS -Werror=memset-transposed-args"]) AX_CHECK_COMPILE_FLAG([-Wnull-dereference], [CFLAGS="$CFLAGS -Wnull-dereference"]) AX_CHECK_COMPILE_FLAG([-Werror=sizeof-array-argument], [CFLAGS="$CFLAGS -Werror=sizeof-array-argument"]) AX_CHECK_COMPILE_FLAG([-Werror=sizeof-pointer-memaccess], [CFLAGS="$CFLAGS -Werror=sizeof-pointer-memaccess"]) +AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"]) +AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS="$CFLAGS -Wextra"]) +AX_CHECK_COMPILE_FLAG([-Wshadow], [CFLAGS="$CFLAGS -Wshadow"]) +#AX_CHECK_COMPILE_FLAG([-Wundef], [CFLAGS="$CFLAGS -Wundef"]) +AX_CHECK_COMPILE_FLAG([-fno-common], [CFLAGS="$CFLAGS -fno-common"]) +AX_CHECK_COMPILE_FLAG([-Wno-unused-parameter], [CFLAGS="$CFLAGS -Wno-unused-parameter"]) +AX_CHECK_COMPILE_FLAG([-Wno-sign-compare], [CFLAGS="$CFLAGS -Wno-sign-compare"]) + +CFLAGS="$CFLAGS -pthread" +LDFLAGS="$LDFLAGS -pthread" + # Coverage build taken from WebKit's configure.in AC_MSG_CHECKING([whether to enable code coverage support]) AC_ARG_ENABLE(coverage, -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I6398f138764726098dbf607c2c7d993abe234d97 Gerrit-Change-Number: 25417 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:35 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:35 +0000 Subject: Change in osmo-mgw[master]: fix missing includes and forward declarations References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25418 ) Change subject: fix missing includes and forward declarations ...................................................................... fix missing includes and forward declarations Change-Id: I669e475f7ab74abef85f0f6194cc37db04af62e3 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_msg.h M include/osmocom/mgcp/mgcp_trunk.h 3 files changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/18/25418/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index b6bd7b3..f687bae 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -25,6 +25,7 @@ #include #include +#include struct sockaddr; struct mgcp_conn; diff --git a/include/osmocom/mgcp/mgcp_msg.h b/include/osmocom/mgcp/mgcp_msg.h index 87987d3..9572d39 100644 --- a/include/osmocom/mgcp/mgcp_msg.h +++ b/include/osmocom/mgcp/mgcp_msg.h @@ -25,10 +25,12 @@ #pragma once #include +#include struct mgcp_conn; struct mgcp_parse_data; struct mgcp_endpoint; +struct mgcp_trunk; void mgcp_disp_msg(unsigned char *message, unsigned int len, char *preamble); diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h index d960428..3f14f97 100644 --- a/include/osmocom/mgcp/mgcp_trunk.h +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -2,6 +2,8 @@ #include #include +#include + #define LOGPTRUNK(trunk, cat, level, fmt, args...) \ LOGP(cat, level, "trunk:%u " fmt, \ -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I669e475f7ab74abef85f0f6194cc37db04af62e3 Gerrit-Change-Number: 25418 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:35 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:35 +0000 Subject: Change in osmo-mgw[master]: rename do_retransmission References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25419 ) Change subject: rename do_retransmission ...................................................................... rename do_retransmission ...because it does not "do" Change-Id: I5513e0ad15db4a0629f4e0348fc3e84d9972259a --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/19/25419/1 diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 88f1bd0..ba80d7d 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -183,7 +183,7 @@ } /* Helper function for do_retransmission() and create_resp() */ -static struct msgb *do_retransmission(const struct mgcp_endpoint *endp) +static struct msgb *create_retransmission_response(const struct mgcp_endpoint *endp) { struct msgb *msg = mgcp_msgb_alloc(); if (!msg) @@ -414,7 +414,7 @@ /* Check if we have to retransmit a response from a previous transaction */ if (pdata.trans && rq.endp->last_trans && strcmp(rq.endp->last_trans, pdata.trans) == 0) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_RETRANSMITTED)); - return do_retransmission(rq.endp); + return create_retransmission_response(rq.endp); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I5513e0ad15db4a0629f4e0348fc3e84d9972259a Gerrit-Change-Number: 25419 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:35 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:35 +0000 Subject: Change in osmo-mgw[master]: mgcp_sdp: fix potential leak References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25420 ) Change subject: mgcp_sdp: fix potential leak ...................................................................... mgcp_sdp: fix potential leak Change-Id: I31527b54f602634024a0b687eef26a9b29354282 --- M src/libosmo-mgcp/mgcp_sdp.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/20/25420/1 diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 0759c96..eabaf53 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -394,8 +394,10 @@ codecs_used = rc; break; case 'c': - if (audio_ip_from_sdp(&rtp->addr, line) < 0) + if (audio_ip_from_sdp(&rtp->addr, line) < 0) { + talloc_free(tmp_ctx); return -1; + } break; default: if (endp) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31527b54f602634024a0b687eef26a9b29354282 Gerrit-Change-Number: 25420 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:36 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... libosmo-mgcp: cleanup audio codex alloc No need to complicate audio codes with pointers, our "usual" string is barely larger than a poointer, five times smaller than a talloc header, and most importantly not really optional anyway... Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 --- M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_sdp.c 3 files changed, 18 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/21/25421/1 diff --git a/include/osmocom/mgcp/mgcp_network.h b/include/osmocom/mgcp/mgcp_network.h index d6d90dd..b9cf5e3 100644 --- a/include/osmocom/mgcp/mgcp_network.h +++ b/include/osmocom/mgcp/mgcp_network.h @@ -81,8 +81,8 @@ uint32_t frame_duration_den; int payload_type; - char *audio_name; - char *subtype_name; + char audio_name[64]; + char subtype_name[64]; bool param_present; struct mgcp_codec_param param; diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index f237e38..06dcedc 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -89,15 +89,13 @@ .frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN, .rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE, .channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS, + .subtype_name = "", + .audio_name = "", }; } static void codec_free(struct mgcp_rtp_codec *codec) { - if (codec->subtype_name) - talloc_free(codec->subtype_name); - if (codec->audio_name) - talloc_free(codec->audio_name); *codec = (struct mgcp_rtp_codec){}; } @@ -124,10 +122,8 @@ { int rate; int channels; - char audio_codec[64]; struct mgcp_rtp_codec *codec; unsigned int pt_offset = conn->end.codecs_assigned; - void *ctx = conn->conn; /* The amount of codecs we can store is limited, make sure we do not * overrun this limit. */ @@ -160,16 +156,16 @@ if (!audio_name) { switch (payload_type) { case 0: - audio_name = talloc_strdup(ctx, "PCMU/8000/1"); + strcpy(codec->audio_name, "PCMU/8000/1"); break; case 3: - audio_name = talloc_strdup(ctx, "GSM/8000/1"); + strcpy(codec->audio_name, "GSM/8000/1"); break; case 8: - audio_name = talloc_strdup(ctx, "PCMA/8000/1"); + strcpy(codec->audio_name, "PCMA/8000/1"); break; case 18: - audio_name = talloc_strdup(ctx, "G729/8000/1"); + strcpy(codec->audio_name, "G729/8000/1"); break; default: /* The given payload type is not known to us, or it @@ -179,36 +175,36 @@ payload_type); goto error; } + } else { + strncpy(codec->audio_name, audio_name, sizeof(codec->audio_name)); } /* Now we extract the codec subtype name, rate and channels. The latter * two are optional. If they are not present we use the safe defaults * above. */ - if (strlen(audio_name) >= sizeof(audio_codec)) { - LOGP(DLMGCP, LOGL_ERROR, "Audio codec too long: %s\n", osmo_quote_str(audio_name, -1)); + if (strlen(codec->audio_name) >= sizeof(codec->subtype_name)) { + LOGP(DLMGCP, LOGL_ERROR, "Audio codec too long: %s\n", osmo_quote_str(codec->audio_name, -1)); goto error; } channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; - if (sscanf(audio_name, "%63[^/]/%d/%d", audio_codec, &rate, &channels) < 1) { - LOGP(DLMGCP, LOGL_ERROR, "Invalid audio codec: %s\n", osmo_quote_str(audio_name, -1)); + if (sscanf(codec->audio_name, "%63[^/]/%d/%d", codec->subtype_name, &rate, &channels) < 1) { + LOGP(DLMGCP, LOGL_ERROR, "Invalid audio codec: %s\n", osmo_quote_str(codec->audio_name, -1)); goto error; } /* Note: We only accept configurations with one audio channel! */ if (channels != 1) { LOGP(DLMGCP, LOGL_ERROR, "Cannot handle audio codec with more than one channel: %s\n", - osmo_quote_str(audio_name, -1)); + osmo_quote_str(codec->audio_name, -1)); goto error; } codec->rate = rate; codec->channels = channels; - codec->subtype_name = talloc_strdup(ctx, audio_codec); - codec->audio_name = talloc_strdup(ctx, audio_name); codec->payload_type = payload_type; - if (!strcmp(audio_codec, "G729")) { + if (!strcmp(codec->subtype_name, "G729")) { codec->frame_duration_num = 10; codec->frame_duration_den = 1000; } else { @@ -287,7 +283,7 @@ /* 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) + if (!strlen(codec->subtype_name)) return false; /* FIXME: implement meaningful checks to make sure that the given codec diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index eabaf53..d460690 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -439,7 +439,7 @@ for (i = 0; i < codecs_used; i++) { LOGPC(DLMGCP, LOGL_NOTICE, "%d=%s", rtp->codecs[i].payload_type, - rtp->codecs[i].subtype_name ? rtp-> codecs[i].subtype_name : "unknown"); + strlen(rtp->codecs[i].subtype_name) ? rtp-> codecs[i].subtype_name : "unknown"); LOGPC(DLMGCP, LOGL_NOTICE, " "); } LOGPC(DLMGCP, LOGL_NOTICE, "\n"); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:36 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... libosmo-mgcp: atomic rate counter group indexes Postfix++ on atomics is specified as rmw operation with memory_order_seq_cst. Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 --- M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_ratectr.c 2 files changed, 15 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/22/25422/1 diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 7988c48..ca12347 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -21,6 +21,7 @@ * */ +#include #include #include #include @@ -89,7 +90,7 @@ /* FIXME: Each new rate counter group requires an unique index. At the * moment we generate this index using this counter, but perhaps there * is a more concious way to assign the indexes. */ - static unsigned int rate_ctr_index = 0; + static atomic_uint rate_ctr_index = 0; conn_rtp->type = MGCP_RTP_DEFAULT; conn_rtp->osmux.cid_allocated = false; @@ -110,13 +111,12 @@ end->output_enabled = 0; end->maximum_packet_time = -1; - conn_rtp->rate_ctr_group = rate_ctr_group_alloc(conn, &rate_ctr_group_desc, rate_ctr_index); + conn_rtp->rate_ctr_group = rate_ctr_group_alloc(conn, &rate_ctr_group_desc, rate_ctr_index++); if (!conn_rtp->rate_ctr_group) return -1; conn_rtp->state.in_stream.err_ts_ctr = rate_ctr_group_get_ctr(conn_rtp->rate_ctr_group, IN_STREAM_ERR_TSTMP_CTR); conn_rtp->state.out_stream.err_ts_ctr = rate_ctr_group_get_ctr(conn_rtp->rate_ctr_group, OUT_STREAM_ERR_TSTMP_CTR); - rate_ctr_index++; /* Make sure codec table is reset */ mgcp_codec_reset_all(conn_rtp); diff --git a/src/libosmo-mgcp/mgcp_ratectr.c b/src/libosmo-mgcp/mgcp_ratectr.c index 040dbb5..6030ce2 100644 --- a/src/libosmo-mgcp/mgcp_ratectr.c +++ b/src/libosmo-mgcp/mgcp_ratectr.c @@ -22,6 +22,7 @@ * */ +#include #include #include #include @@ -152,17 +153,16 @@ int mgcp_ratectr_global_alloc(struct mgcp_config *cfg) { struct mgcp_ratectr_global *ratectr = &cfg->ratectr; - static unsigned int general_rate_ctr_index = 0; + static atomic_uint general_rate_ctr_index = 0; char ctr_name[512]; if (ratectr->mgcp_general_ctr_group == NULL) { ratectr->mgcp_general_ctr_group = - rate_ctr_group_alloc(cfg, &mgcp_general_ctr_group_desc, general_rate_ctr_index); + rate_ctr_group_alloc(cfg, &mgcp_general_ctr_group_desc, general_rate_ctr_index++); if (!ratectr->mgcp_general_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s:general", cfg->domain); rate_ctr_group_set_name(ratectr->mgcp_general_ctr_group, ctr_name); - general_rate_ctr_index++; } return 0; } @@ -187,62 +187,57 @@ int mgcp_ratectr_trunk_alloc(struct mgcp_trunk *trunk) { struct mgcp_ratectr_trunk *ratectr = &trunk->ratectr; - 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; + static atomic_uint crcx_rate_ctr_index = 0; + static atomic_uint mdcx_rate_ctr_index = 0; + static atomic_uint dlcx_rate_ctr_index = 0; + static atomic_uint all_rtp_conn_rate_ctr_index = 0; char ctr_name[256]; if (ratectr->mgcp_crcx_ctr_group == NULL) { ratectr->mgcp_crcx_ctr_group = - rate_ctr_group_alloc(trunk, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index); + rate_ctr_group_alloc(trunk, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index++); if (!ratectr->mgcp_crcx_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:crcx", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->mgcp_crcx_ctr_group, ctr_name); - crcx_rate_ctr_index++; } if (ratectr->mgcp_mdcx_ctr_group == NULL) { ratectr->mgcp_mdcx_ctr_group = - rate_ctr_group_alloc(trunk, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index); + rate_ctr_group_alloc(trunk, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index++); if (!ratectr->mgcp_mdcx_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:mdcx", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->mgcp_mdcx_ctr_group, ctr_name); - mdcx_rate_ctr_index++; } if (ratectr->mgcp_dlcx_ctr_group == NULL) { ratectr->mgcp_dlcx_ctr_group = - rate_ctr_group_alloc(trunk, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index); + rate_ctr_group_alloc(trunk, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index++); if (!ratectr->mgcp_dlcx_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:dlcx", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->mgcp_dlcx_ctr_group, ctr_name); - dlcx_rate_ctr_index++; } if (ratectr->all_rtp_conn_stats == NULL) { ratectr->all_rtp_conn_stats = rate_ctr_group_alloc(trunk, &all_rtp_conn_rate_ctr_group_desc, - all_rtp_conn_rate_ctr_index); + all_rtp_conn_rate_ctr_index++); if (!ratectr->all_rtp_conn_stats) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:rtp_conn", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->all_rtp_conn_stats, ctr_name); - all_rtp_conn_rate_ctr_index++; } /* E1 specific */ if (trunk->trunk_type == MGCP_TRUNK_E1 && ratectr->e1_stats == NULL) { - ratectr->e1_stats = rate_ctr_group_alloc(trunk, &e1_rate_ctr_group_desc, mdcx_rate_ctr_index); + ratectr->e1_stats = rate_ctr_group_alloc(trunk, &e1_rate_ctr_group_desc, mdcx_rate_ctr_index++); if (!ratectr->e1_stats) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:e1", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->e1_stats, ctr_name); - mdcx_rate_ctr_index++; } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:36 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:36 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25423 ) Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... libosmo-mgcp: do not use the default msgb talloc context Trunk is safe, since it will not disappear sooner than the endpoints or connections. osmux still missing! Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c 3 files changed, 21 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/23/25423/1 diff --git a/src/libosmo-mgcp/mgcp_e1.c b/src/libosmo-mgcp/mgcp_e1.c index effbe77..e88b8c5 100644 --- a/src/libosmo-mgcp/mgcp_e1.c +++ b/src/libosmo-mgcp/mgcp_e1.c @@ -192,7 +192,7 @@ { struct mgcp_endpoint *endp = user_data; struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.e1_stats; - struct msgb *msg = msgb_alloc(E1_TRAU_BITS_MSGB, "E1-I.460-IDLE-TX-TRAU-frame"); + struct msgb *msg = msgb_alloc_c(endp->trunk, E1_TRAU_BITS_MSGB, "E1-I.460-IDLE-TX-TRAU-frame"); uint8_t *ptr; const uint8_t *ptr_ft; enum osmo_trau_frame_type ft; @@ -238,9 +238,9 @@ * (the resulting frame will be prepended with an all-zero (12-byte) rtp header) */ static void sync_frame_out_cb(void *user_data, const ubit_t *bits, unsigned int num_bits) { - struct msgb *msg = msgb_alloc(RTP_BUF_SIZE, "RTP-rx-from-E1"); unsigned int rtp_hdr_len = sizeof(struct rtp_hdr); struct mgcp_endpoint *endp = user_data; + struct msgb *msg = msgb_alloc_c(endp->trunk, RTP_BUF_SIZE, "RTP-rx-from-E1"); struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.e1_stats; struct mgcp_conn *conn_dst; struct osmo_trau_frame fr; @@ -312,7 +312,7 @@ /* Function to handle outgoing E1 traffic */ static void e1_send(struct e1inp_ts *ts, struct mgcp_trunk *trunk) { - struct msgb *msg = msgb_alloc(E1_TS_BYTES, "E1-TX-timeslot-bytes"); + struct msgb *msg = msgb_alloc_c(trunk, E1_TS_BYTES, "E1-TX-timeslot-bytes"); uint8_t *ptr; /* Get E1 frame from I.460 multiplexer */ @@ -622,7 +622,7 @@ * \returns 0 on success, -1 on ERROR. */ int mgcp_e1_send_rtp(struct mgcp_endpoint *endp, struct mgcp_rtp_codec *codec, struct msgb *msg) { - struct msgb *msg_tf = msgb_alloc(E1_TRAU_BITS_MSGB, "E1-I.460-TX-TRAU-frame"); + struct msgb *msg_tf = msgb_alloc_c(endp->trunk, E1_TRAU_BITS_MSGB, "E1-I.460-TX-TRAU-frame"); struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.e1_stats; unsigned int rtp_hdr_len = sizeof(struct rtp_hdr); struct osmo_trau_frame tf; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index cb82137..86b0d06 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1448,13 +1448,14 @@ int ret; enum rtp_proto proto; struct osmo_rtp_msg_ctx *mc; - struct msgb *msg = msgb_alloc(RTP_BUF_SIZE, "RTP-rx"); + struct msgb *msg; int rc; conn_src = (struct mgcp_conn_rtp *)fd->data; OSMO_ASSERT(conn_src); endp = conn_src->conn->endp; OSMO_ASSERT(endp); + msg = msgb_alloc_c(endp->trunk, RTP_BUF_SIZE, "RTP-rx"); proto = (fd == &conn_src->end.rtp)? MGCP_PROTO_RTP : MGCP_PROTO_RTCP; diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index ba80d7d..a8e1813 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -172,12 +172,18 @@ } /* Helper function to allocate some memory for responses and retransmissions */ -static struct msgb *mgcp_msgb_alloc(void) +static struct msgb *mgcp_msgb_alloc(void* ctx) { struct msgb *msg; - msg = msgb_alloc_headroom(4096, 128, "MGCP msg"); - if (!msg) + msg = msgb_alloc_c(ctx, 4096, "MGCP msg"); + + if (!msg) { LOGP(DLMGCP, LOGL_ERROR, "Failed to msgb for MGCP data.\n"); + return NULL; + } + + /* headroom */ + msgb_reserve(msg, 128); return msg; } @@ -185,7 +191,7 @@ /* Helper function for do_retransmission() and create_resp() */ static struct msgb *create_retransmission_response(const struct mgcp_endpoint *endp) { - struct msgb *msg = mgcp_msgb_alloc(); + struct msgb *msg = mgcp_msgb_alloc(endp->trunk); if (!msg) return NULL; @@ -203,7 +209,7 @@ int len; struct msgb *res; - res = mgcp_msgb_alloc(); + res = mgcp_msgb_alloc(endp->trunk); if (!res) return NULL; @@ -277,10 +283,13 @@ int rc; struct msgb *result; - sdp = msgb_alloc_headroom(4096, 128, "sdp record"); + sdp = msgb_alloc_c(endp->trunk, 4096, "sdp record"); if (!sdp) return NULL; + /* headroom */ + msgb_reserve(sdp, 128); + /* Attach optional endpoint name */ if (add_epname) { rc = msgb_printf(sdp, "Z: %s\r\n", endp->name); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:38 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port, fucks perform... References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port, fucks performance ...................................................................... globally lock the portrange when trying to grab a port, fucks performance Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_protocol.c 2 files changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/25424/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index b3f2eb5..228b0b3 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -34,6 +34,7 @@ #include #include #include +#include #include "mgcp_ratectr.h" @@ -92,6 +93,7 @@ * This holds information on how to allocate ports */ struct mgcp_port_range { + pthread_mutex_t lock; /* addr or NULL to fall-back to default */ char *bind_addr_v4; char *bind_addr_v6; diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index a8e1813..1b34087 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -487,6 +488,7 @@ range = &endp->cfg->net_ports; + pthread_mutex_lock(&range->lock); /* attempt to find a port */ tries = (range->range_end - range->range_start) / 2; for (i = 0; i < tries; ++i) { @@ -499,11 +501,12 @@ range->last_port += 2; if (rc == 0) { + pthread_mutex_unlock(&range->lock); return 0; } } - + pthread_mutex_unlock(&range->lock); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Allocating a RTP/RTCP port failed %u times.\n", tries); @@ -1615,6 +1618,7 @@ osmo_strlcpy(cfg->domain, "mgw", sizeof(cfg->domain)); + cfg->net_ports.lock = PTHREAD_MUTEX_INITIALIZER; cfg->net_ports.range_start = RTP_PORT_DEFAULT_RANGE_START; cfg->net_ports.range_end = RTP_PORT_DEFAULT_RANGE_END; cfg->net_ports.last_port = cfg->net_ports.range_start; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:38 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25425 ) Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... e1: one thread per e1 trunk == e1 line There is only one thread per trunk, and one trunk can only have one line, so saving the trunk pointer is sufficient to know which line we are. Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_trunk.c 2 files changed, 7 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/25/25425/1 diff --git a/src/libosmo-mgcp/mgcp_e1.c b/src/libosmo-mgcp/mgcp_e1.c index e88b8c5..16f78f1 100644 --- a/src/libosmo-mgcp/mgcp_e1.c +++ b/src/libosmo-mgcp/mgcp_e1.c @@ -48,7 +48,7 @@ #define E1_TRAU_BITS 320 #define E1_TRAU_BITS_MSGB 2048 -static struct mgcp_config *cfg; +static __thread struct mgcp_trunk *this_trunk; static const struct e1inp_line_ops dummy_e1_line_ops = { .sign_link_up = NULL, @@ -332,33 +332,29 @@ /* Callback function to handle incoming E1 traffic */ static void e1_recv_cb(struct e1inp_ts *ts, struct msgb *msg) { - struct mgcp_trunk *trunk; - - /* Find associated trunk */ - trunk = mgcp_trunk_by_line_num(cfg, ts->line->num); - if (!trunk) { + if (!this_trunk) { LOGP(DE1, LOGL_ERROR, "E1-RX: unable to find a trunk for E1-line %u!\n", ts->line->num); return; } /* Check if the incoming data looks sane */ if (msgb_length(msg) != E1_TS_BYTES) { - LOGPTRUNK(trunk, DE1, LOGL_NOTICE, + LOGPTRUNK(this_trunk, DE1, LOGL_NOTICE, "E1-RX: (ts:%u) expected length is %u, actual length is %u!\n", ts->num, E1_TS_BYTES, msgb_length(msg)); } #if DEBUG_E1_TS == 1 - LOGPTRUNK(trunk, DE1, LOGL_DEBUG, "E1-RX: (ts:%u) receiving %u bytes: %s...\n", ts->num, + LOGPTRUNK(this_trunk, DE1, LOGL_DEBUG, "E1-RX: (ts:%u) receiving %u bytes: %s...\n", ts->num, msgb_length(msg), osmo_hexdump_nospc(msgb_data(msg), msgb_length(msg) > DEBUG_BYTES_MAX ? DEBUG_BYTES_MAX : msgb_length(msg))); #endif /* Hand data over to the I.460 demultiplexer. */ - osmo_i460_demux_in(&trunk->e1.i460_ts[ts->num - 1], msgb_data(msg), msgb_length(msg)); + osmo_i460_demux_in(&this_trunk->e1.i460_ts[ts->num - 1], msgb_data(msg), msgb_length(msg)); /* Trigger sending of pending E1 traffic */ - e1_send(ts, trunk); + e1_send(ts, this_trunk); } static int e1_init(struct mgcp_trunk *trunk, uint8_t ts_nr) @@ -373,7 +369,7 @@ int rc; OSMO_ASSERT(ts_nr > 0 || ts_nr < NUM_E1_TS); - cfg = trunk->cfg; + this_trunk = trunk; if (trunk->e1.ts_in_use[ts_nr - 1]) { LOGPTRUNK(trunk, DE1, LOGL_INFO, "E1 timeslot %u already set up, skipping...\n", ts_nr); diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index c69c242..8bdef94 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -290,19 +290,3 @@ LOGP(DLMGCP, LOGL_ERROR, "unable to find trunk for endpoint name \"%s\"!\n", epname); return NULL; } - -/*! Find a trunk (E1) by its associated E1 line number. - * \param[in] num e1 line number. - * \returns trunk or NULL if trunk was not found. */ -struct mgcp_trunk *mgcp_trunk_by_line_num(const struct mgcp_config *cfg, unsigned int num) -{ - /*! When used on trunks other than E1, the result will always be NULL. */ - struct mgcp_trunk *trunk; - - llist_for_each_entry(trunk, &cfg->trunks, entry) { - if (trunk->trunk_type == MGCP_TRUNK_E1 && trunk->e1.vty_line_nr == num) - return trunk; - } - - return NULL; -} -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:38 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:38 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... embed strings into structs They are mostly not even as large as the talloc header used to dynamically allocate them, and they are also not "shared" by anything. Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c 5 files changed, 26 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/26/25426/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 228b0b3..f1e6460 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -95,8 +95,8 @@ struct mgcp_port_range { pthread_mutex_t lock; /* addr or NULL to fall-back to default */ - char *bind_addr_v4; - char *bind_addr_v6; + char bind_addr_v4[INET6_ADDRSTRLEN]; + char bind_addr_v6[INET6_ADDRSTRLEN]; /* dynamically allocated */ int range_start; @@ -129,9 +129,9 @@ struct mgcp_config { int source_port; - char *local_ip; - char *source_addr; - char *call_agent_addr; + char local_ip[INET6_ADDRSTRLEN]; + char source_addr[INET6_ADDRSTRLEN]; + char call_agent_addr[INET6_ADDRSTRLEN]; /* RTP processing */ mgcp_processing rtp_processing_cb; @@ -151,8 +151,6 @@ mgcp_rqnt rqnt_cb; void *data; - uint32_t last_call_id; - /* list holding the trunks */ struct llist_head trunks; @@ -161,7 +159,7 @@ /* osmux translator: 0 means disabled, 1 means enabled */ int osmux; /* addr to bind the server to */ - char *osmux_addr; + char osmux_addr[INET6_ADDRSTRLEN]; /* The BSC-NAT may ask for enabling osmux on demand. This tells us if * the osmux socket is already initialized. */ diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 86b0d06..5249fef 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -135,10 +135,10 @@ } else { /* Choose any of the bind addresses, preferring v6 over v4 */ bind_addr = endp->cfg->net_ports.bind_addr_v6; - if (!bind_addr) + if (!strlen(bind_addr)) bind_addr = endp->cfg->net_ports.bind_addr_v4; } - if (bind_addr) { + if (strlen(bind_addr)) { LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "using configured rtp bind ip as local bind ip %s\n", bind_addr); diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 1b34087..909a98d 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -279,7 +279,7 @@ * us for OSMUX connections. Perhaps adding a new internal API to get it * based on conn type. */ - const char *addr = endp->cfg->local_ip ? : conn->end.local_addr; + const char *addr = strlen(endp->cfg->local_ip) ? endp->cfg->local_ip : conn->end.local_addr; struct msgb *sdp; int rc; struct msgb *result; @@ -1624,8 +1624,8 @@ cfg->net_ports.last_port = cfg->net_ports.range_start; cfg->source_port = 2427; - cfg->source_addr = talloc_strdup(cfg, "0.0.0.0"); - cfg->osmux_addr = talloc_strdup(cfg, "0.0.0.0"); + osmo_strlcpy(cfg->source_addr, "0.0.0.0", sizeof(cfg->source_addr)); + osmo_strlcpy(cfg->osmux_addr, "0.0.0.0", sizeof(cfg->osmux_addr)); cfg->rtp_processing_cb = &mgcp_rtp_processing_default; cfg->setup_rtp_processing_cb = &mgcp_setup_rtp_processing_default; diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 6bc09d0..738bfcc 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -65,17 +65,17 @@ vty_out(vty, "mgcp%s", VTY_NEWLINE); vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); - if (g_cfg->local_ip) + if (strlen(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", g_cfg->net_ports.range_start, g_cfg->net_ports.range_end, VTY_NEWLINE); - if (g_cfg->net_ports.bind_addr_v4) + if (strlen(g_cfg->net_ports.bind_addr_v4)) vty_out(vty, " rtp bind-ip %s%s", g_cfg->net_ports.bind_addr_v4, VTY_NEWLINE); - if (g_cfg->net_ports.bind_addr_v6) + if (strlen(g_cfg->net_ports.bind_addr_v6)) vty_out(vty, " rtp bind-ip-v6 %s%s", g_cfg->net_ports.bind_addr_v6, VTY_NEWLINE); if (g_cfg->net_ports.bind_addr_probe) @@ -122,7 +122,7 @@ trunk->v.vty_number_endpoints, VTY_NEWLINE); vty_out(vty, " %sallow-transcoding%s", trunk->no_audio_transcoding ? "no " : "", VTY_NEWLINE); - if (g_cfg->call_agent_addr) + if (strlen(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) @@ -443,7 +443,7 @@ "IPv4 Address to use in SDP record\n" "IPv6 Address to use in SDP record\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->local_ip, argv[0]); + osmo_strlcpy(g_cfg->local_ip, argv[0], sizeof(g_cfg->local_ip)); return CMD_SUCCESS; } @@ -455,7 +455,7 @@ "IPv4 Address to bind to\n" "IPv6 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->source_addr, argv[0]); + osmo_strlcpy(g_cfg->source_addr, argv[0], sizeof(g_cfg->source_addr)); return CMD_SUCCESS; } @@ -533,7 +533,7 @@ RTP_STR "Bind endpoints facing the Network\n" "IPv4 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->net_ports.bind_addr_v4, argv[0]); + osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, argv[0], sizeof(g_cfg->net_ports.bind_addr_v4)); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_bind_ip, @@ -548,8 +548,7 @@ NO_STR RTP_STR "Bind endpoints facing the Network\n" "Address to bind to\n") { - talloc_free(g_cfg->net_ports.bind_addr_v4); - g_cfg->net_ports.bind_addr_v4 = NULL; + osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, "", sizeof(g_cfg->net_ports.bind_addr_v4)); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_no_bind_ip, @@ -565,7 +564,7 @@ RTP_STR "Bind endpoints facing the Network\n" "IPv6 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->net_ports.bind_addr_v6, argv[0]); + osmo_strlcpy(g_cfg->net_ports.bind_addr_v6, argv[0], sizeof(g_cfg->net_ports.bind_addr_v6)); return CMD_SUCCESS; } @@ -576,8 +575,7 @@ NO_STR RTP_STR "Bind endpoints facing the Network\n" "Address to bind to\n") { - talloc_free(g_cfg->net_ports.bind_addr_v6); - g_cfg->net_ports.bind_addr_v6 = NULL; + osmo_strlcpy(g_cfg->net_ports.bind_addr_v6, "", sizeof(g_cfg->net_ports.bind_addr_v6)); return CMD_SUCCESS; } @@ -950,7 +948,7 @@ "IPv4 Address of the call agent\n" "IPv6 Address of the call agent\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->call_agent_addr, argv[0]); + osmo_strlcpy(g_cfg->call_agent_addr, argv[0], sizeof(g_cfg->call_agent_addr)); return CMD_SUCCESS; } @@ -1559,7 +1557,7 @@ "IPv4 Address to bind to\n" "IPv6 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->osmux_addr, argv[0]); + osmo_strlcpy(g_cfg->osmux_addr, argv[0], sizeof(g_cfg->osmux_addr)); return CMD_SUCCESS; } @@ -1748,7 +1746,7 @@ return rc; } - if (!g_cfg->source_addr) { + if (!strlen(g_cfg->source_addr)) { fprintf(stderr, "You need to specify a bind address.\n"); return -1; } diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 52a1622..d12011c 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -369,12 +369,12 @@ /* we need to bind a socket */ flags = OSMO_SOCK_F_BIND; - if (cfg->call_agent_addr) + if (strlen(cfg->call_agent_addr)) flags |= OSMO_SOCK_F_CONNECT; rc = osmo_sock_init2_ofd(&cfg->gw_fd.bfd, AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, cfg->source_addr, cfg->source_port, - cfg->call_agent_addr, cfg->call_agent_addr ? 2727 : 0, flags); + cfg->call_agent_addr, strlen(cfg->call_agent_addr) ? 2727 : 0, flags); if (rc < 0) { perror("Gateway failed to bind"); return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:39 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:39 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... adjust talloc context Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 --- 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/27/25427/1 diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index 8bdef94..f41e5a5 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -123,7 +123,7 @@ OSMO_ASSERT(number_endpoints < 65534); /* allocate pointer array for the endpoints */ - trunk->endpoints = talloc_zero_array(trunk->cfg, struct mgcp_endpoint*, + trunk->endpoints = talloc_zero_array(trunk, struct mgcp_endpoint*, number_endpoints); if (!trunk->endpoints) return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:39 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:39 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/28/25428/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index f687bae..b8796c1 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -97,9 +97,6 @@ /*! List of struct mgcp_conn, of the connections active on this endpoint */ struct llist_head conns; - /*! Backpointer to the MGW configuration */ - struct mgcp_config *cfg; - /*! Backpointer to the trunk this endpoint belongs to */ struct mgcp_trunk *trunk; diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index ca12347..4acf18c 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -143,7 +143,7 @@ void mgcp_conn_watchdog_kick(struct mgcp_conn *conn) { - int timeout = conn->endp->cfg->conn_timeout; + int timeout = conn->endp->trunk->cfg->conn_timeout; if (!timeout) return; diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 4fcddb8..19446ce 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -89,7 +89,6 @@ return NULL; INIT_LLIST_HEAD(&endp->conns); - endp->cfg = trunk->cfg; endp->trunk = trunk; switch (trunk->trunk_type) { diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 5249fef..be13ed9 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -112,7 +112,7 @@ char *bind_addr; /* Try probing the local IP-Address */ - if (endp->cfg->net_ports.bind_addr_probe && rem_addr_set) { + if (endp->trunk->cfg->net_ports.bind_addr_probe && rem_addr_set) { rc = osmo_sock_local_ip(addr, osmo_sockaddr_ntop(&conn->end.addr.u.sa, ipbuf)); if (rc < 0) LOGPCONN(conn->conn, DRTP, LOGL_ERROR, @@ -130,13 +130,13 @@ /* Check there is a bind IP for the RTP traffic configured, * if so, use that IP-Address */ bind_addr = conn->end.addr.u.sa.sa_family == AF_INET6 ? - endp->cfg->net_ports.bind_addr_v6 : - endp->cfg->net_ports.bind_addr_v4; + endp->trunk->cfg->net_ports.bind_addr_v6 : + endp->trunk->cfg->net_ports.bind_addr_v4; } else { /* Choose any of the bind addresses, preferring v6 over v4 */ - bind_addr = endp->cfg->net_ports.bind_addr_v6; + bind_addr = endp->trunk->cfg->net_ports.bind_addr_v6; if (!strlen(bind_addr)) - bind_addr = endp->cfg->net_ports.bind_addr_v4; + bind_addr = endp->trunk->cfg->net_ports.bind_addr_v4; } if (strlen(bind_addr)) { LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, @@ -146,7 +146,7 @@ /* No specific bind IP is configured for the RTP traffic, so * assume the IP where we listen for incoming MGCP messages * as bind IP */ - bind_addr = endp->cfg->source_addr; + bind_addr = endp->trunk->cfg->source_addr; LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "using mgcp bind ip as local rtp bind ip: %s\n", bind_addr); } @@ -1177,7 +1177,7 @@ do { /* Run transcoder */ - cont = endp->cfg->rtp_processing_cb(endp, rtp_end, + cont = endp->trunk->cfg->rtp_processing_cb(endp, rtp_end, (char *)msgb_data(msg), &buflen, RTP_BUF_SIZE); if (cont < 0) @@ -1657,7 +1657,7 @@ osmo_fd_setup(&end->rtp, -1, OSMO_FD_READ, rtp_data_net, conn, 0); osmo_fd_setup(&end->rtcp, -1, OSMO_FD_READ, rtp_data_net, conn, 0); - return bind_rtp(endp->cfg, conn->end.local_addr, end, endp); + return bind_rtp(endp->trunk->cfg, conn->end.local_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 8f0a906..de19042 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -116,7 +116,7 @@ osmux_handle_alloc(struct mgcp_conn_rtp *conn, struct in_addr *addr, int rem_port) { struct osmux_handle *h; - struct mgcp_config *cfg = conn->conn->endp->cfg; + struct mgcp_config *cfg = conn->conn->endp->trunk->cfg; h = talloc_zero(osmux, struct osmux_handle); if (!h) @@ -460,7 +460,7 @@ */ struct in6_addr addr_unset = {}; static const uint32_t rtp_ssrc_winlen = UINT32_MAX / (OSMUX_CID_MAX + 1); - uint16_t osmux_dummy = endp->cfg->osmux_dummy; + uint16_t osmux_dummy = endp->trunk->cfg->osmux_dummy; /* Check if osmux is enabled for the specified connection */ if (conn->osmux.state != OSMUX_STATE_ACTIVATING) { diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 909a98d..f9ae2ec 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -144,7 +144,7 @@ static int setup_rtp_processing(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn) { - struct mgcp_config *cfg = endp->cfg; + struct mgcp_config *cfg = endp->trunk->cfg; struct mgcp_conn_rtp *conn_src = NULL; struct mgcp_conn_rtp *conn_dst = conn; struct mgcp_conn *_conn; @@ -279,7 +279,7 @@ * us for OSMUX connections. Perhaps adding a new internal API to get it * based on conn type. */ - const char *addr = strlen(endp->cfg->local_ip) ? endp->cfg->local_ip : conn->end.local_addr; + const char *addr = strlen(endp->trunk->cfg->local_ip) ? endp->trunk->cfg->local_ip : conn->end.local_addr; struct msgb *sdp; int rc; struct msgb *result; @@ -486,7 +486,7 @@ OSMO_ASSERT(conn); - range = &endp->cfg->net_ports; + range = &endp->trunk->cfg->net_ports; pthread_mutex_lock(&range->lock); /* attempt to find a port */ @@ -750,8 +750,8 @@ */ static int mgcp_osmux_setup(struct mgcp_endpoint *endp, const char *line) { - if (!endp->cfg->osmux_init) { - if (osmux_init(OSMUX_ROLE_BSC, endp->cfg) < 0) { + if (!endp->trunk->cfg->osmux_init) { + if (osmux_init(OSMUX_ROLE_BSC, endp->trunk->cfg) < 0) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Cannot init OSMUX\n"); return -3; } @@ -896,7 +896,7 @@ case 'X': if (strncasecmp("Osmux: ", line + 2, strlen("Osmux: ")) == 0) { /* If osmux is disabled, just skip setting it up */ - if (!rq->endp->cfg->osmux) + if (!rq->endp->trunk->cfg->osmux) break; osmux_cid = mgcp_osmux_setup(endp, line); break; @@ -1010,7 +1010,7 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_NO_OSMUX)); goto error2; } - } else if (endp->cfg->osmux == OSMUX_USAGE_ONLY) { + } else if (endp->trunk->cfg->osmux == OSMUX_USAGE_ONLY) { LOGPCONN(_conn, DLMGCP, LOGL_ERROR, "CRCX: osmux only and no osmux offered\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_NO_OSMUX)); @@ -1174,7 +1174,7 @@ case 'X': if (strncasecmp("Osmux: ", line + 2, strlen("Osmux: ")) == 0) { /* If osmux is disabled, just skip setting it up */ - if (!endp->cfg->osmux) + if (!endp->trunk->cfg->osmux) break; osmux_cid = mgcp_osmux_setup(endp, line); break; @@ -1689,7 +1689,7 @@ if (len < 0) return -1; - rc = send_agent(endp->cfg, buf, len); + rc = send_agent(endp->trunk->cfg, buf, len); if (rc <= 0) return -1; diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index d460690..801ae35 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -576,7 +576,7 @@ OSMO_ASSERT(addr); /* FIXME: constify endp and conn args in get_net_donwlink_format_cb() */ - endp->cfg->get_net_downlink_format_cb((struct mgcp_endpoint *)endp, + endp->trunk->cfg->get_net_downlink_format_cb((struct mgcp_endpoint *)endp, &codec, &fmtp_extra, (struct mgcp_conn_rtp *)conn); @@ -601,7 +601,7 @@ payload_types[0] = payload_type; if (mgcp_conn_rtp_is_osmux(conn)) - local_port = endp->cfg->osmux_port; + local_port = endp->trunk->cfg->osmux_port; else local_port = conn->end.local_port; rc = add_audio(sdp, payload_types, 1, local_port); diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 89891b5..49493ce 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -28,6 +28,7 @@ #include #include #include +#include /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ void calc_loss(struct mgcp_conn_rtp *conn, uint32_t *expected, int *loss) @@ -93,7 +94,7 @@ str += nchars; str_len -= nchars; - if (conn->conn->endp->cfg->osmux != OSMUX_USAGE_OFF) { + if (conn->conn->endp->trunk->cfg->osmux != OSMUX_USAGE_OFF) { /* Error Counter */ nchars = snprintf(str, str_len, "\r\nX-Osmo-CP: EC TI=%" PRIu64 ", TO=%" PRIu64, diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 738bfcc..a05733f 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -218,7 +218,7 @@ vty_out(vty, " CONN: %s%s", mgcp_conn_dump(conn), VTY_NEWLINE); if (show_stats) { - if (endp->cfg->conn_timeout) { + if (endp->trunk->cfg->conn_timeout) { struct timeval remaining; osmo_timer_remaining(&conn->watchdog, NULL, &remaining); vty_out(vty, " Currently remaining timeout (seconds): %d.%06d%s", diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index 1c0d3cc..a8aad14 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -960,7 +960,7 @@ static int rqnt_cb(struct mgcp_endpoint *endp, char _tone) { ptrdiff_t tone = _tone; - endp->cfg->data = (void *)tone; + endp->trunk->cfg->data = (void *)tone; return 0; } @@ -1050,7 +1050,6 @@ memset(&endp, 0, sizeof(endp)); cfg = mgcp_config_alloc(); trunk = mgcp_trunk_alloc(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); - endp.cfg = cfg; endp.type = &ep_typeset.rtp; trunk->v.vty_number_endpoints = 1; trunk->endpoints = endpoints; @@ -1307,7 +1306,6 @@ state.in_stream.err_ts_ctr = &test_ctr_in; state.out_stream.err_ts_ctr = &test_ctr_out; - endp.cfg = cfg; endp.type = &ep_typeset.rtp; trunk->v.vty_number_endpoints = 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:39 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:39 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index b8796c1..91c4551 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -136,3 +136,7 @@ bool mgcp_endp_avail(struct mgcp_endpoint *endp); void mgcp_endp_add_conn(struct mgcp_endpoint *endp, struct mgcp_conn *conn); void mgcp_endp_remove_conn(struct mgcp_endpoint *endp, struct mgcp_conn *conn); +void mgcp_endp_strip_name(char *epname_stripped, const char *epname, + const struct mgcp_trunk *trunk); +struct mgcp_endpoint *mgcp_endp_find_specific(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 19446ce..9846dfe 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -192,7 +192,7 @@ * 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, +void mgcp_endp_strip_name(char *epname_stripped, const char *epname, const struct mgcp_trunk *trunk) { osmo_str_tolower_buf(epname_stripped, MGCP_ENDPOINT_MAXLEN, epname); @@ -221,7 +221,7 @@ /* 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, +struct mgcp_endpoint *mgcp_endp_find_specific(const char *epname, const struct mgcp_trunk *trunk) { char epname_stripped[MGCP_ENDPOINT_MAXLEN]; @@ -230,11 +230,11 @@ unsigned int i; /* Strip irrelevant information from the endpoint name */ - strip_epname(epname_stripped, epname, trunk); + mgcp_endp_strip_name(epname_stripped, epname, trunk); for (i = 0; i < trunk->number_endpoints; i++) { endp = trunk->endpoints[i]; - strip_epname(epname_stripped_endp, endp->name, trunk); + mgcp_endp_strip_name(epname_stripped_endp, endp->name, trunk); if (strcmp(epname_stripped_endp, epname_stripped) == 0) return endp; } @@ -289,7 +289,7 @@ /* Find an endpoint by its name (if wildcarded request is not * applicable) */ - endp = find_specific_endpoint(epname, trunk); + endp = mgcp_endp_find_specific(epname, trunk); if (endp) { LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "(trunk:%d) found endpoint: %s\n", @@ -540,7 +540,7 @@ 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); + endp_check = mgcp_endp_find_specific(epname_check, endp->trunk); if (!endp_check) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "cannot check endpoint availability, overlapping endpoint:%s not found!\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:40 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/1 diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 4acf18c..c43dfdc 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -325,14 +325,17 @@ /*! free all connections at once. * \param[in] endp associated endpoint */ -void mgcp_conn_free_all(struct mgcp_endpoint *endp) +void mgcp_conn_free_all(struct mgcp_endpoint *endpx) { struct mgcp_conn *conn; struct mgcp_conn *conn_tmp; + struct mgcp_endpoint *endp = endpx; - /* Drop all items in the list */ + /* Drop all items in the list, might be consecutive! */ +restart: llist_for_each_entry_safe(conn, conn_tmp, &endp->conns, entry) { mgcp_conn_free(endp, conn->id); + goto restart; } return; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:40 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25431 ) Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 224 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/1 diff --git a/include/osmocom/mgcp/mgcp_threads_queue.h b/include/osmocom/mgcp/mgcp_threads_queue.h new file mode 100644 index 0000000..41f02e8 --- /dev/null +++ b/include/osmocom/mgcp/mgcp_threads_queue.h @@ -0,0 +1,52 @@ +/* + * (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Eric Wild + * + * 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 + +struct spsc { + atomic_uint readptr; + atomic_uint writeptr; + + int efd_r, efd_w; + + int count; + int size_per_buf; + + void *buf; + uintptr_t data[0]; +}; + +struct qchan { + struct spsc *a; + struct spsc *b; +}; + +bool spsc_push(struct spsc *q, void *elem); +bool spsc_pop(struct spsc *q, void *elem); +ssize_t prep_pop(struct spsc *q); +int get_a_rdfd(struct qchan *q); + +struct qchan chan_init(unsigned int count, unsigned size_per_buf); +struct qchan chan_init_ex(unsigned int count, unsigned size_per_buf, bool blockr_a, bool blockw_a, bool blockr_b, + bool blockw_b); +void chan_close(struct qchan *q); diff --git a/src/libosmo-mgcp/mgcp_threads_queue.c b/src/libosmo-mgcp/mgcp_threads_queue.c new file mode 100644 index 0000000..c67bcb3 --- /dev/null +++ b/src/libosmo-mgcp/mgcp_threads_queue.c @@ -0,0 +1,172 @@ +/* + * (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Eric Wild + * + * 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 + +/* +classic lamport circular lockfree spsc queue: +every "side" only writes its own ptr, but may read the other sides ptr +-> own ptr relaxed, other one not so much... + +notify reader using eventfd as soon as element is added, reader then reads until +read fails +-> reader pops in a loop until FALSE and might get spurious events because it +read before it was notified, which is fine +-> writing pushes *the same data* in a loop until TRUE, blocks + +shutting this down requires +1) to stop reading and pushing +2) ONE side to take care of the eventfds +*/ + +static struct spsc *spsc_init(unsigned int count, unsigned int size_per_buf, bool blockr, bool blockw) +{ + struct spsc *q = calloc(1, sizeof(struct spsc) + sizeof(uintptr_t) * count); + atomic_init(&q->readptr, 0); + atomic_init(&q->writeptr, 0); + q->efd_r = eventfd(0, blockr ? 0 : EFD_NONBLOCK); + q->efd_w = eventfd(1, blockw ? 0 : EFD_NONBLOCK); + q->count = count; + q->size_per_buf = size_per_buf; + q->buf = calloc(count, size_per_buf); + + for (int i = 0; i < count; i++) + q->data[i] = (uintptr_t)q->buf + i * size_per_buf; + return q; +} + +static void spsc_deinit(struct spsc *q) +{ + free(q->buf); + close(q->efd_r); + close(q->efd_w); + free(q); +} + +static ssize_t spsc_check_r(struct spsc *q) +{ + uint64_t efdr; + return read(q->efd_r, &efdr, sizeof(uint64_t)); +} +static ssize_t spsc_check_w(struct spsc *q) +{ + uint64_t efdr; + return read(q->efd_w, &efdr, sizeof(uint64_t)); +} +static void spsc_notify_r(struct spsc *q) +{ + uint64_t efdu = 1; + write(q->efd_r, &efdu, sizeof(uint64_t)); +} +static void spsc_notify_w(struct spsc *q) +{ + uint64_t efdu = 1; + write(q->efd_w, &efdu, sizeof(uint64_t)); +} + +bool spsc_push(struct spsc *q, void *elem) +{ + size_t cur_wp, cur_rp; + cur_wp = atomic_load_explicit(&q->writeptr, memory_order_relaxed); + cur_rp = atomic_load_explicit(&q->readptr, memory_order_acquire); + if ((cur_wp + 1) % q->count == cur_rp) { + spsc_check_w(q); // blocks, ensures next (!) call succeeds + return false; + } + memcpy((void *)q->data[cur_wp], elem, q->size_per_buf); + atomic_store_explicit(&q->writeptr, (cur_wp + 1) % q->count, memory_order_release); + spsc_notify_r(q); // fine after release + return true; +} + +/* just clear it - pop is called in a loop until empty, and next notification + * can't happen until it's not empty */ +ssize_t prep_pop(struct spsc *q) +{ + return spsc_check_r(q); +} + +bool spsc_pop(struct spsc *q, void *elem) +{ + size_t cur_wp, cur_rp; + cur_wp = atomic_load_explicit(&q->writeptr, memory_order_acquire); + cur_rp = atomic_load_explicit(&q->readptr, memory_order_relaxed); + + if (cur_wp == cur_rp) /* blocks via prep_pop */ + return false; + memcpy(elem, (void *)q->data[cur_rp], q->size_per_buf); + atomic_store_explicit(&q->readptr, (cur_rp + 1) % q->count, memory_order_release); + spsc_notify_w(q); + return true; +} + +/* +master: writes a, waits for rdfd of b +slave: waits for rdfd of a, writes b +wrfd used interally to block writers +*/ +struct qchan chan_init_ex(unsigned int count, unsigned size_per_buf, bool blockr_a, bool blockw_a, bool blockr_b, + bool blockw_b) +{ + struct qchan q; // = calloc(1, sizeof(struct qchan)); + q.a = spsc_init(count, size_per_buf, blockr_a, blockw_a); + q.b = spsc_init(count, size_per_buf, blockr_b, blockw_b); + return q; +} + +struct qchan chan_init(unsigned int count, unsigned size_per_buf) +{ + return chan_init_ex(count, size_per_buf, false, true, false, true); +} + +void chan_close(struct qchan *q) +{ + spsc_deinit(q->a); + spsc_deinit(q->b); + free(q); +} + +int get_a_rdfd(struct qchan *q) +{ + return q->a->efd_r; +} +int get_b_rdfd(struct qchan *q) +{ + return q->b->efd_r; +} +int get_a_wrfd(struct qchan *q) +{ + return q->a->efd_w; +} +int get_b_wrfd(struct qchan *q) +{ + return q->b->efd_w; +} -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:06:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:06:40 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25432 ) Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,311 insertions(+), 437 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/1 diff --git a/include/osmocom/mgcp/Makefile.am b/include/osmocom/mgcp/Makefile.am index b94cdcd..9004cc8 100644 --- a/include/osmocom/mgcp/Makefile.am +++ b/include/osmocom/mgcp/Makefile.am @@ -13,4 +13,6 @@ mgcp_e1.h \ mgcp_network.h \ mgcp_protocol.h \ + mgcp_threads.h \ + mgcp_threads_queue.h \ $(NULL) diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index f1e6460..fffff96 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -151,29 +151,33 @@ mgcp_rqnt rqnt_cb; void *data; + unsigned int num_threads_for_virttrunk; /* list holding the trunks */ struct llist_head trunks; enum mgcp_role role; - /* osmux translator: 0 means disabled, 1 means enabled */ - int osmux; - /* addr to bind the server to */ - char osmux_addr[INET6_ADDRSTRLEN]; - /* The BSC-NAT may ask for enabling osmux on demand. This tells us if - * the osmux socket is already initialized. - */ - int osmux_init; - /* osmux batch factor: from 1 to 4 maximum */ - int osmux_batch; - /* osmux batch size (in bytes) */ - int osmux_batch_size; - /* osmux port */ - uint16_t osmux_port; - /* Pad circuit with dummy messages until we see the first voice - * message. - */ - uint16_t osmux_dummy; + struct global_osmux_options_t { + /* osmux translator: 0 means disabled, 1 means enabled */ + int osmux; + /* addr to bind the server to */ + char osmux_addr[INET6_ADDRSTRLEN]; + /* The BSC-NAT may ask for enabling osmux on demand. This tells us if + * the osmux socket is already initialized. + */ + int osmux_init; + /* osmux batch factor: from 1 to 4 maximum */ + int osmux_batch; + /* osmux batch size (in bytes) */ + int osmux_batch_size; + /* osmux port */ + uint16_t osmux_port; + /* Pad circuit with dummy messages until we see the first voice + * message. + */ + uint16_t osmux_dummy; + } global_osmux_options; + /* domain name of the media gateway */ char domain[255+1]; @@ -198,7 +202,11 @@ /* * format helper functions */ -struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg); +struct to_trunkthread_mgcp_msg; +struct per_thread_info; +struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct to_trunkthread_mgcp_msg* w); +struct msgb *mgcp_submit_message_to_trunkthread(struct mgcp_config *cfg, struct to_trunkthread_mgcp_msg* w); +struct msgb* thread_handle_mgcp_message(struct to_trunkthread_mgcp_msg* w, struct per_thread_info *thread_info); int mgcp_send_reset_ep(struct mgcp_endpoint *endp); diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 91c4551..47592ae 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -136,6 +136,7 @@ bool mgcp_endp_avail(struct mgcp_endpoint *endp); void mgcp_endp_add_conn(struct mgcp_endpoint *endp, struct mgcp_conn *conn); void mgcp_endp_remove_conn(struct mgcp_endpoint *endp, struct mgcp_conn *conn); +void chop_epname_prefix(char *epname, const struct mgcp_trunk *trunk); void mgcp_endp_strip_name(char *epname_stripped, const char *epname, const struct mgcp_trunk *trunk); struct mgcp_endpoint *mgcp_endp_find_specific(const char *epname, diff --git a/include/osmocom/mgcp/mgcp_threads.h b/include/osmocom/mgcp/mgcp_threads.h new file mode 100644 index 0000000..2ee44d7 --- /dev/null +++ b/include/osmocom/mgcp/mgcp_threads.h @@ -0,0 +1,127 @@ +#pragma once +/* + * (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Eric Wild + * + * 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 + +void split_trunks_into_threads(struct mgcp_config *cfg); +int get_trunk_thread_for_ep_name(const char *epname, struct mgcp_trunk *thread_parent_trunk); +void send_async_vty_trunk_update_msg(struct mgcp_trunk *t); +void send_async_vty_cfg_update_msg(struct mgcp_config *c); +void thread_dispatch_ep_dump_msg(struct mgcp_trunk *trunk, int threadnum, struct vty *vty, const char *epname, + bool show_stats, bool active_only); +enum trunkthread_cfg_msg_t; +struct to_trunkthread_cfg_msg; +void thread_dispatch_ep_msg(struct mgcp_trunk *master_trunk, int threadnum, struct vty *v, enum trunkthread_cfg_msg_t, + struct to_trunkthread_cfg_msg *m); + +/* Request data passed to the request handler */ +struct mgcp_request_data { + /* request name (e.g. "MDCX") */ + char name[4 + 1]; + + /* parsing results from the MGCP header (trans id, endpoint name ...) */ + struct mgcp_parse_data *pdatap; + + /* pointer to endpoint resource (may be NULL for wildcarded requests) */ + struct mgcp_endpoint *endp; + + /* pointer to trunk resource */ + struct mgcp_trunk *trunk; + + /* set to true when the request has been classified as wildcarded */ + bool wildcarded; + + /* contains cause code in case of problems during endp/trunk resolution */ + int mgcp_cause; +}; + +enum cfg_content_t { HAS_TRUNK = 1 << 0, HAS_CFG = 1 << 1 }; +enum trunkthread_cfg_msg_t { + IS_INVALID = 0 << 0, + IS_CFGMSG = 1 << 0, + IS_VTYMSG = 1 << 1, + IS_FREEEPMSG = 1 << 2, + IS_LOOPMSG = 1 << 3, + IS_TAPMSG = 1 << 4 +}; +struct to_trunkthread_cfg_msg { + enum trunkthread_cfg_msg_t type; + struct vty *vty; + union { + struct cfgmsg { + enum cfg_content_t content; + struct mgcp_config c; + struct mgcp_trunk t; + } c; + struct vtymsg { + char epname[MGCP_ENDPOINT_MAXLEN]; /* may be empty */ + bool show_stats; + bool active_only; + } v; + struct freepmsg { + char endp[MGCP_ENDPOINT_MAXLEN * 4]; + } f; + struct tapmsg { + char epname[MGCP_ENDPOINT_MAXLEN]; + char connid[MGCP_CONN_ID_MAXLEN]; + bool direction_is_in; + char addr[INET6_ADDRSTRLEN]; + unsigned short destport; + } t; + struct loopmsg { + char epname[MGCP_ENDPOINT_MAXLEN]; + bool enable_loop; + } l; + }; +}; +struct to_trunkthread_mgcp_msg { + struct y { + ssize_t msglen; + bool successfully_parsed; + struct osmo_sockaddr addr; + struct mgcp_parse_data pdata; + struct mgcp_request_data rq; + } x; + char msg[4096 - sizeof(struct y)]; +}; +static_assert(sizeof(struct to_trunkthread_mgcp_msg) == 4096, "interthread struct size mismatch!"); + +struct per_thread_info { + struct mgcp_trunk *parent_trunk; /* pointer to parent trunk */ + struct mgcp_trunk *this_trunk; /* talloced, used as ctx */ + struct mgcp_config *this_cfg; /* talloced, used as ctx */ + struct qchan chan_mgcp; + struct qchan chan_cfg; + int tid; /* thread number handling this subtrunk */ + pthread_t thr; + struct osmo_fd master_evfd; /* registered by dispatch thread */ + atomic_uint eps_free; +}; + +void thread_push_msg(struct mgcp_trunk *trunk, unsigned int threadnum, void *elem); diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h index 3f14f97..db98ca7 100644 --- a/include/osmocom/mgcp/mgcp_trunk.h +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -22,6 +22,16 @@ struct mgcp_trunk { struct llist_head entry; + /* master trunk struct: array of num_threads trunk info structs containing per thread data + slave thread trunk struct: single entry pointing to this threads info! + */ + union { + struct per_thread_info *thread_info; + struct per_thread_info *this_thread_info; + }; + int num_threads; + bool use_threads; /* false for e1 */ + struct mgcp_config *cfg; unsigned int trunk_nr; @@ -52,6 +62,7 @@ int rtp_accept_all; unsigned int number_endpoints; + unsigned int number_endpoints_offset; struct mgcp_endpoint **endpoints; /* rate counters and stat items to measure the trunks overall performance and health */ diff --git a/include/osmocom/mgcp/osmux.h b/include/osmocom/mgcp/osmux.h index 99b44d1..2230a71 100644 --- a/include/osmocom/mgcp/osmux.h +++ b/include/osmocom/mgcp/osmux.h @@ -12,6 +12,10 @@ OSMUX_ROLE_BSC_NAT, }; +struct global_osmux_options_t; +void osmux_set_global_opt(struct global_osmux_options_t *ptr); +struct global_osmux_options_t * osmux_get_global_opt(); + int osmux_init(int role, struct mgcp_config *cfg); int osmux_enable_conn(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn, struct osmo_sockaddr *addr, uint16_t port); diff --git a/src/libosmo-mgcp/Makefile.am b/src/libosmo-mgcp/Makefile.am index 91b2bf6..e791a94 100644 --- a/src/libosmo-mgcp/Makefile.am +++ b/src/libosmo-mgcp/Makefile.am @@ -48,4 +48,7 @@ mgcp_ctrl.c \ mgcp_ratectr.c \ mgcp_e1.c \ + mgcp_threads.c \ + mgcp_threads_queue.c \ + mgcp_threads_vty.c \ $(NULL) diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 9846dfe..49e7624 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -124,9 +125,11 @@ /* We must only decrement the stat item when the endpoint as actually * claimed. An endpoint is claimed when a call-id is set */ - if (endp->callid) + if (endp->callid) { osmo_stat_item_dec(osmo_stat_item_group_get_item(endp->trunk->stats.common, TRUNK_STAT_ENDPOINTS_USED), 1); + endp->trunk->this_thread_info->eps_free++; + } /* Reset endpoint parameters and states */ talloc_free(endp->callid); @@ -144,7 +147,7 @@ * "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) +void chop_epname_prefix(char *epname, const struct mgcp_trunk *trunk) { size_t prefix_len; switch (trunk->trunk_type) { @@ -606,6 +609,7 @@ OSMO_ASSERT(endp->callid); osmo_stat_item_inc(osmo_stat_item_group_get_item(endp->trunk->stats.common, TRUNK_STAT_ENDPOINTS_USED), 1); + endp->trunk->this_thread_info->eps_free--; /* Allocate resources */ switch (endp->trunk->trunk_type) { diff --git a/src/libosmo-mgcp/mgcp_osmux.c b/src/libosmo-mgcp/mgcp_osmux.c index de19042..03aa71a 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -44,6 +44,16 @@ static void *osmux; +static struct global_osmux_options_t *g_osmux; + +void osmux_set_global_opt(struct global_osmux_options_t *ptr) { + g_osmux = ptr; +} + +struct global_osmux_options_t * osmux_get_global_opt() { + return g_osmux; +} + /* Deliver OSMUX batch to the remote end */ static void osmux_deliver_cb(struct msgb *batch_msg, void *data) { @@ -135,10 +145,10 @@ /* sequence number to start OSMUX message from */ h->in->osmux_seq = 0; - h->in->batch_factor = cfg->osmux_batch; + h->in->batch_factor = g_osmux->osmux_batch; /* If batch size is zero, the library defaults to 1470 bytes. */ - h->in->batch_size = cfg->osmux_batch_size; + h->in->batch_size = g_osmux->osmux_batch_size; h->in->deliver = osmux_deliver_cb; osmux_xfrm_input_init(h->in); h->in->data = h; @@ -368,7 +378,7 @@ if (!msg) return -1; - if (!cfg->osmux) { + if (!g_osmux->osmux) { LOGP(DLMGCP, LOGL_ERROR, "bsc-nat wants to use Osmux but bsc did not request it\n"); goto out; @@ -418,11 +428,11 @@ osmo_fd_setup(&osmux_fd, -1, OSMO_FD_READ, osmux_read_fd_cb, cfg, 0); - ret = mgcp_create_bind(cfg->osmux_addr, &osmux_fd, cfg->osmux_port, + ret = mgcp_create_bind(g_osmux->osmux_addr, &osmux_fd, g_osmux->osmux_port, cfg->endp_dscp, cfg->endp_priority); if (ret < 0) { LOGP(DLMGCP, LOGL_ERROR, "cannot bind OSMUX socket to %s:%u\n", - cfg->osmux_addr, cfg->osmux_port); + g_osmux->osmux_addr, g_osmux->osmux_port); return ret; } @@ -432,7 +442,7 @@ osmo_sock_get_name2(osmux_fd.fd)); return ret; } - cfg->osmux_init = 1; + g_osmux->osmux_init = 1; LOGP(DLMGCP, LOGL_INFO, "OSMUX socket listening on %s\n", osmo_sock_get_name2(osmux_fd.fd)); @@ -460,7 +470,7 @@ */ struct in6_addr addr_unset = {}; static const uint32_t rtp_ssrc_winlen = UINT32_MAX / (OSMUX_CID_MAX + 1); - uint16_t osmux_dummy = endp->trunk->cfg->osmux_dummy; + uint16_t osmux_dummy = g_osmux->osmux_dummy; /* Check if osmux is enabled for the specified connection */ if (conn->osmux.state != OSMUX_STATE_ACTIVATING) { diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index f9ae2ec..1a39827 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -46,6 +47,7 @@ #include #include #include +#include /* Contains the last successfully resolved endpoint name. This variable is used * for the unit-tests to verify that the endpoint was correctly resolved. */ @@ -67,27 +69,6 @@ LOGPTRUNK(trunk, cat, level, fmt, ## args); \ } while (0) -/* Request data passed to the request handler */ -struct mgcp_request_data { - /* request name (e.g. "MDCX") */ - char name[4+1]; - - /* parsing results from the MGCP header (trans id, endpoint name ...) */ - struct mgcp_parse_data *pdata; - - /* pointer to endpoint resource (may be NULL for wildcarded requests) */ - struct mgcp_endpoint *endp; - - /* pointer to trunk resource */ - struct mgcp_trunk *trunk; - - /* set to true when the request has been classified as wildcarded */ - bool wildcarded; - - /* contains cause code in case of problems during endp/trunk resolution */ - int mgcp_cause; -}; - /* Request handler specification, here we specify an array with function * pointers to the various MGCP requests implemented below */ struct mgcp_request { @@ -202,7 +183,7 @@ return msg; } -static struct msgb *create_resp(struct mgcp_endpoint *endp, int code, +static struct msgb *create_resp(void* msgctx, struct mgcp_endpoint *endp, int code, const char *txt, const char *msg, const char *trans, const char *param, const char *sdp) @@ -210,7 +191,8 @@ int len; struct msgb *res; - res = mgcp_msgb_alloc(endp->trunk); + OSMO_ASSERT(msgctx != 0); + res = mgcp_msgb_alloc(msgctx); if (!res) return NULL; @@ -242,26 +224,26 @@ return res; } -static struct msgb *create_ok_resp_with_param(struct mgcp_endpoint *endp, +static struct msgb *create_ok_resp_with_param(void* msgctx, struct mgcp_endpoint *endp, int code, const char *msg, const char *trans, const char *param) { - return create_resp(endp, code, " OK", msg, trans, param, NULL); + return create_resp(msgctx, endp, code, " OK", msg, trans, param, NULL); } -static struct msgb *create_ok_response(struct mgcp_endpoint *endp, +static struct msgb *create_ok_response(void* msgctx, struct mgcp_endpoint *endp, int code, const char *msg, const char *trans) { - return create_ok_resp_with_param(endp, code, msg, trans, NULL); + return create_ok_resp_with_param(msgctx, endp, code, msg, trans, NULL); } -static struct msgb *create_err_response(struct mgcp_endpoint *endp, +static struct msgb *create_err_response(void* msgctx, struct mgcp_endpoint *endp, int code, const char *msg, const char *trans) { - return create_resp(endp, code, " FAIL", msg, trans, NULL, NULL); + return create_resp(msgctx, endp, code, " FAIL", msg, trans, NULL, NULL); } /* Format MGCP response string (with SDP attached) */ @@ -318,7 +300,7 @@ rc = mgcp_write_response_sdp(endp, conn, sdp, addr); if (rc < 0) goto error; - result = create_resp(endp, 200, " OK", msg, trans_id, NULL, (char*) sdp->data); + result = create_resp(endp->trunk, endp, 200, " OK", msg, trans_id, NULL, (char*) sdp->data); msgb_free(sdp); return result; error: @@ -336,89 +318,147 @@ mgcp_send_dummy(endp, conn); } -/* handle incoming messages: - * - this can be a command (four letters, space, transaction id) - * - or a response (three numbers, space, transaction id) */ -struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct msgb *msg) + +/* partially sanitize and parse incoming message + * !! only public for testing !! */ +struct msgb *mgcp_handle_message(struct mgcp_config *cfg, struct to_trunkthread_mgcp_msg* w) { struct rate_ctr_group *rate_ctrs = cfg->ratectr.mgcp_general_ctr_group; - struct mgcp_parse_data pdata; - struct mgcp_request_data rq; - int rc, i, code, handled = 0; - struct msgb *resp = NULL; - char *data; + int code; + ssize_t rc = w->x.msglen; - debug_last_endpoint_name[0] = '\0'; + #define pdata w->x.pdata + #define rq w->x.rq /* Count all messages, even incorect ones */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_TOTAL)); - if (msgb_l2len(msg) < 4) { - LOGP(DLMGCP, LOGL_ERROR, "msg too short: %d\n", msg->len); + if (rc < sizeof(rq.name)-1) { + LOGP(DLMGCP, LOGL_ERROR, "msg too short: %zd\n", rc); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_MSG_PARSE)); - return NULL; + return 0; } + memcpy(rq.name, (const char *)&w->msg[0], sizeof(rq.name)-1); - if (mgcp_msg_terminate_nul(msg)) { - rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_MSG_PARSE)); - return NULL; - } - - mgcp_disp_msg(msg->l2h, msgb_l2len(msg), "Received message"); + mgcp_disp_msg(w->msg, rc, "Received message"); /* attempt to treat it as a response */ - if (sscanf((const char *)&msg->l2h[0], "%3d %*s", &code) == 1) { + if (sscanf((const char *)&w->msg[0], "%3d %*s", &code) == 1) { LOGP(DLMGCP, LOGL_DEBUG, "Response: Code: %d\n", code); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_MSG_PARSE)); - return NULL; + return 0; } - /* Parse message, extract endpoint name and transaction identifier and request name etc. */ - memset(&pdata, 0, sizeof(pdata)); - memset(&rq, 0, sizeof(rq)); - pdata.cfg = cfg; - memcpy(rq.name, (const char *)&msg->l2h[0], sizeof(rq.name)-1); - msg->l3h = &msg->l2h[4]; - data = mgcp_strline((char *)msg->l3h, &pdata.save); - rc = mgcp_parse_header(&pdata, data); + rc = mgcp_parse_header(&pdata, mgcp_strline((char *)&w->msg[4], &pdata.save)); if (rc < 0) { LOGP(DLMGCP, LOGL_ERROR, "%s: failed to parse MCGP message\n", rq.name); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_MSG_PARSE)); - return create_err_response(NULL, -rc, rq.name, "000000"); + return create_err_response(cfg, NULL, -rc, rq.name, "000000"); } /* Locate endpoint and trunk, if no endpoint can be located try at least to identify the trunk. */ - rq.pdata = &pdata; + rq.pdatap = &pdata; rq.wildcarded = mgcp_endp_is_wildcarded(pdata.epname); - rq.endp = mgcp_endp_by_name(&rc, pdata.epname, pdata.cfg); - rq.mgcp_cause = rc; - if (!rq.endp) { - rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_NO_ENDPOINT)); - if (rq.wildcarded) { - /* If we are unable to find the endpoint we still may be able to identify the trunk. Some - * request handlers will still be able to perform a useful action if the request refers to - * the whole trunk (wildcarded request). */ - LOGP(DLMGCP, LOGL_NOTICE, - "%s: cannot find endpoint \"%s\", cause=%d -- trying to identify trunk...\n", rq.name, - pdata.epname, -rq.mgcp_cause); - rq.trunk = mgcp_trunk_by_name(pdata.cfg, pdata.epname); - if (!rq.trunk) { - LOGP(DLMGCP, LOGL_ERROR, "%s: failed to identify trunk for endpoint \"%s\" -- abort\n", - rq.name, pdata.epname); - return create_err_response(NULL, -rq.mgcp_cause, rq.name, pdata.trans); + rq.trunk = mgcp_trunk_by_name(pdata.cfg, pdata.epname); + + if (!rq.trunk) { + rq.mgcp_cause = -500; /* if we can't even find the trunk we also found no EP */ + LOGP(DLMGCP, LOGL_ERROR, "%s: failed to identify trunk for endpoint \"%s\" -- abort\n", + rq.name, pdata.epname); + return create_err_response(cfg, NULL, -rq.mgcp_cause, rq.name, pdata.trans); + } + + w->x.successfully_parsed = true; + return NULL; +} +#undef pdata +#undef rq + +/* submit partially parsed message to thunkthreads */ +struct msgb *mgcp_submit_message_to_trunkthread(struct mgcp_config *cfg, struct to_trunkthread_mgcp_msg* w) +{ + struct msgb * retmsg; + int which_thread = -1; + + + #define pdata w->x.pdata + #define rq w->x.rq + + retmsg = mgcp_handle_message(cfg, w); + if (retmsg || !w->x.successfully_parsed) + return retmsg; + + if (!rq.trunk->use_threads) + return thread_handle_mgcp_message(w, rq.trunk->thread_info); + + /* might not be wildcarded -> look up the thread according to ep name */ + which_thread = get_trunk_thread_for_ep_name(pdata.epname, rq.trunk); + + /* update pointers to offsets for interthread q */ + pdata.trans = (char *)(pdata.trans - &w->msg[0]); + pdata.epname = (char *)(pdata.epname - &w->msg[0]); + if (pdata.save >= &w->msg[0]) /* might be 0 in case of header-only messages, so be careful */ + pdata.save = (char *)(pdata.save - &w->msg[0]); + + if (rq.wildcarded) { + if (strcmp(rq.name, "CRCX") == 0){ /* crcx -> pick ONE thread that has free endpoints */ + for (int i = 0; i < rq.trunk->num_threads; i++) { + if (rq.trunk->thread_info[i].eps_free) { + thread_push_msg(rq.trunk, i, w); + return NULL; + } } - } else { + /* just bother t0 to generate a nice error response if we don't have any eps left */ + thread_push_msg(rq.trunk, 0, w); + return NULL; + } else { /* wildcarded, and not crcx -> to all threads of a trunk */ + for (int i = 0; i < rq.trunk->num_threads; i++) + thread_push_msg(rq.trunk, i, w); + return NULL; + } + } + + /* we now know the trunk and the ep, so dispatch it */ + thread_push_msg(rq.trunk, which_thread, w); + + + return NULL; +} +#undef pdata +#undef rq + +struct msgb* thread_handle_mgcp_message(struct to_trunkthread_mgcp_msg* w, struct per_thread_info *thread_info) { + int rc = -500, handled = 0; + struct msgb *resp = NULL; + struct rate_ctr_group *rate_ctrs = w->x.rq.trunk->cfg->ratectr.mgcp_general_ctr_group; + #define pdata w->x.pdata + #define rq w->x.rq + + /* finds us a free ep in case wildcarded / crcx + OR finds us a proper ep passed by name */ + if (!rq.wildcarded || !strcmp(rq.name, "CRCX")) + rq.endp = mgcp_endp_by_name_trunk(&rc, pdata.epname, rq.trunk); + rq.mgcp_cause = rc; + + if (rq.endp) { + debug_last_endpoint_name[0] = 0; + osmo_strlcpy(debug_last_endpoint_name, rq.endp->name, sizeof(debug_last_endpoint_name)); + } + + if (!rq.endp) { + if (rq.wildcarded) { + /* we know this is the trunk that handles this wildcarded message */ + } else { + rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_NO_ENDPOINT)); /* If the endpoint name suggests that the request refers to a specific endpoint, then the - * request cannot be handled and we must stop early. */ + * request cannot be handled and we must stop early. */ LOGP(DLMGCP, LOGL_NOTICE, - "%s: cannot find endpoint \"%s\", cause=%d -- abort\n", rq.name, - pdata.epname, -rq.mgcp_cause); - return create_err_response(NULL, -rq.mgcp_cause, rq.name, pdata.trans); + "%s: cannot find endpoint \"%s\", cause=%d -- abort\n", rq.name, + pdata.epname, -rq.mgcp_cause); + return create_err_response(rq.trunk, NULL, -rq.mgcp_cause, rq.name, pdata.trans); } } else { - osmo_strlcpy(debug_last_endpoint_name, rq.endp->name, sizeof(debug_last_endpoint_name)); - rq.trunk = rq.endp->trunk; rq.mgcp_cause = 0; /* Check if we have to retransmit a response from a previous transaction */ @@ -429,16 +469,19 @@ } /* Find an appropriate handler for the current request and execute it */ - for (i = 0; i < ARRAY_SIZE(mgcp_requests); i++) { + for (int i = 0; i < ARRAY_SIZE(mgcp_requests); i++) { if (strcmp(mgcp_requests[i].name, rq.name) == 0) { + + #if 0 /* Check if the request requires and endpoint, if yes, check if we have it, otherwise don't * execute the request handler. */ if (mgcp_requests[i].require_endp && !rq.endp) { LOGP(DLMGCP, LOGL_ERROR, "%s: the request handler \"%s\" requires an endpoint resource for \"%s\", which is not available -- abort\n", rq.name, mgcp_requests[i].debug_name, pdata.epname); - return create_err_response(NULL, -rq.mgcp_cause, rq.name, pdata.trans); + return create_err_response(rq.trunk, NULL, -rq.mgcp_cause, rq.name, pdata.trans); } + #endif /* Execute request handler */ if (rq.endp) @@ -455,22 +498,40 @@ } } - /* Check if the MGCP request was handled and increment rate counters accordingly. */ - if (handled) { - rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_HANDLED)); - } else { - rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_UNHANDLED)); - LOGP(DLMGCP, LOGL_ERROR, "MSG with type: '%.4s' not handled\n", &msg->l2h[0]); + /* ensure we do not send back duplicate messages due to wildcarded requests */ + if (thread_info->tid != 0 && rq.wildcarded && strcmp(rq.name, "CRCX")) { + if (resp) + msgb_free(resp); + resp = 0; + } + + /* Check if the MGCP request was handled and increment rate counters accordingly - but don't count this multiple times */ + if (!rq.wildcarded || (rq.wildcarded && !strcmp(rq.name, "CRCX"))) { + if (handled) { + rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_HANDLED)); + } else { + rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_UNHANDLED)); + LOGP(DLMGCP, LOGL_ERROR, "MSG with type: '%.4s' not handled\n", rq.name); + } } return resp; } +#undef pdata +#undef rq /* AUEP command handler, processes the received command */ static struct msgb *handle_audit_endpoint(struct mgcp_request_data *rq) { LOGPENDP(rq->endp, DLMGCP, LOGL_NOTICE, "AUEP: auditing endpoint ...\n"); - return create_ok_response(rq->endp, 200, "AUEP", rq->pdata->trans); + + if (!rq->endp || !mgcp_endp_avail(rq->endp)) { + LOGPENDP(rq->endp, DLMGCP, LOGL_ERROR, + "AUEP: selected endpoint not available!\n"); + return create_err_response(rq->trunk, NULL, 501, "AUEP", rq->pdatap->trans); + } + + return create_ok_response(rq->trunk, rq->endp, 200, "AUEP", rq->pdatap->trans); } /* Try to find a free port by attempting to bind on it. Also handle the @@ -750,7 +811,7 @@ */ static int mgcp_osmux_setup(struct mgcp_endpoint *endp, const char *line) { - if (!endp->trunk->cfg->osmux_init) { + if (! osmux_get_global_opt()->osmux_init) { if (osmux_init(OSMUX_ROLE_BSC, endp->trunk->cfg) < 0) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Cannot init OSMUX\n"); return -3; @@ -779,7 +840,7 @@ /* If we have SDP, we ignore the local connection options and * use only the SDP information. */ mgcp_codec_reset_all(conn); - rc = mgcp_parse_sdp_data(endp, conn, rq->pdata); + rc = mgcp_parse_sdp_data(endp, conn, rq->pdatap); if (rc != 0) { LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR, "%s: sdp not parseable\n", cmd); @@ -847,7 +908,7 @@ /* CRCX command handler, processes the received command */ static struct msgb *handle_create_con(struct mgcp_request_data *rq) { - struct mgcp_parse_data *pdata = rq->pdata; + struct mgcp_parse_data *pdata = rq->pdatap; struct mgcp_trunk *trunk = rq->trunk; struct mgcp_endpoint *endp = rq->endp; struct rate_ctr_group *rate_ctrs = trunk->ratectr.mgcp_crcx_ctr_group; @@ -864,11 +925,19 @@ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: creating new connection ...\n"); + /* we must have a free ep */ + if (!endp) { + rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_AVAIL)); + LOGPENDP(endp, DLMGCP, LOGL_ERROR, + "CRCX: no free endpoints available!\n"); + return create_err_response(rq->trunk, NULL, 403, "CRCX", pdata->trans); + } + if (!mgcp_endp_avail(endp)) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_AVAIL)); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: selected endpoint not available!\n"); - return create_err_response(NULL, 501, "CRCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 501, "CRCX", pdata->trans); } /* parse CallID C: and LocalParameters L: */ @@ -888,7 +957,7 @@ * together with a CRCX, the MGW will assign the * connection identifier by itself on CRCX */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_BAD_ACTION)); - return create_err_response(NULL, 523, "CRCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 523, "CRCX", pdata->trans); break; case 'M': mode = (const char *)line + 3; @@ -896,7 +965,7 @@ case 'X': if (strncasecmp("Osmux: ", line + 2, strlen("Osmux: ")) == 0) { /* If osmux is disabled, just skip setting it up */ - if (!rq->endp->trunk->cfg->osmux) + if (! trunk->cfg->global_osmux_options.osmux) break; osmux_cid = mgcp_osmux_setup(endp, line); break; @@ -914,7 +983,7 @@ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: unhandled option: '%c'/%d\n", *line, *line); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "CRCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "CRCX", pdata->trans); break; } } @@ -925,14 +994,14 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: insufficient parameters, missing callid\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_MISSING_CALLID)); - return create_err_response(endp, 516, "CRCX", pdata->trans); + return create_err_response(endp, endp, 516, "CRCX", pdata->trans); } if (!mode) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: insufficient parameters, missing mode\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_INVALID_MODE)); - return create_err_response(endp, 517, "CRCX", pdata->trans); + return create_err_response(endp, endp, 517, "CRCX", pdata->trans); } /* Check if we are able to accept the creation of another connection */ @@ -949,7 +1018,7 @@ /* There is no more room for a connection, leave * everything as it is and return with an error */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_LIMIT_EXCEEDED)); - return create_err_response(endp, 540, "CRCX", pdata->trans); + return create_err_response(endp, endp, 540, "CRCX", pdata->trans); } } @@ -967,7 +1036,7 @@ /* This is not our call, leave everything as it is and * return with an error. */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_UNKNOWN_CALLID)); - return create_err_response(endp, 400, "CRCX", pdata->trans); + return create_err_response(endp, endp, 400, "CRCX", pdata->trans); } } @@ -978,7 +1047,7 @@ rc = mgcp_endp_claim(endp, callid); if (rc != 0) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_CLAIM)); - return create_err_response(endp, 502, "CRCX", pdata->trans); + return create_err_response(endp, endp, 502, "CRCX", pdata->trans); } } @@ -1010,7 +1079,7 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_NO_OSMUX)); goto error2; } - } else if (endp->trunk->cfg->osmux == OSMUX_USAGE_ONLY) { + } else if (osmux_get_global_opt()->osmux == OSMUX_USAGE_ONLY) { LOGPCONN(_conn, DLMGCP, LOGL_ERROR, "CRCX: osmux only and no osmux offered\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_NO_OSMUX)); @@ -1097,13 +1166,13 @@ mgcp_endp_release(endp); LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: unable to create connection\n"); - return create_err_response(endp, error_code, "CRCX", pdata->trans); + return create_err_response(endp, endp, error_code, "CRCX", pdata->trans); } /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_request_data *rq) { - struct mgcp_parse_data *pdata = rq->pdata; + struct mgcp_parse_data *pdata = rq->pdatap; struct mgcp_trunk *trunk = rq->trunk; struct mgcp_endpoint *endp = rq->endp; struct rate_ctr_group *rate_ctrs = trunk->ratectr.mgcp_mdcx_ctr_group; @@ -1121,26 +1190,26 @@ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "MDCX: modifying existing connection ...\n"); - if (!mgcp_endp_avail(endp)) { - rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_AVAIL)); - LOGPENDP(endp, DLMGCP, LOGL_ERROR, - "MDCX: selected endpoint not available!\n"); - return create_err_response(NULL, 501, "MDCX", pdata->trans); - } - /* Prohibit wildcarded requests */ if (rq->wildcarded) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: wildcarded endpoint names not supported.\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_WILDCARD)); - return create_err_response(endp, 507, "MDCX", pdata->trans); + return create_err_response(rq->trunk, endp, 507, "MDCX", pdata->trans); + } + + if (!endp || !mgcp_endp_avail(endp)) { + rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_AVAIL)); + LOGPENDP(endp, DLMGCP, LOGL_ERROR, + "MDCX: selected endpoint not available!\n"); + return create_err_response(rq->trunk, NULL, 501, "MDCX", pdata->trans); } if (llist_count(&endp->conns) <= 0) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: endpoint is not holding a connection.\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_NO_CONN)); - return create_err_response(endp, 400, "MDCX", pdata->trans); + return create_err_response(endp, endp, 400, "MDCX", pdata->trans); } for_each_line(line, pdata->save) { @@ -1174,7 +1243,7 @@ case 'X': if (strncasecmp("Osmux: ", line + 2, strlen("Osmux: ")) == 0) { /* If osmux is disabled, just skip setting it up */ - if (!endp->trunk->cfg->osmux) + if (!osmux_get_global_opt()->osmux) break; osmux_cid = mgcp_osmux_setup(endp, line); break; @@ -1190,7 +1259,7 @@ "MDCX: Unhandled MGCP option: '%c'/%d\n", line[0], line[0]); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "MDCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "MDCX", pdata->trans); break; } } @@ -1200,13 +1269,13 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: insufficient parameters, missing ci (connectionIdentifier)\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_NO_CONNID)); - return create_err_response(endp, 515, "MDCX", pdata->trans); + return create_err_response(endp, endp, 515, "MDCX", pdata->trans); } conn = mgcp_conn_get_rtp(endp, conn_id); if (!conn) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_CONN_NOT_FOUND)); - return create_err_response(endp, 400, "MDCX", pdata->trans); + return create_err_response(endp, endp, 400, "MDCX", pdata->trans); } mgcp_conn_watchdog_kick(conn->conn); @@ -1313,7 +1382,7 @@ mgcp_endp_update(endp); return create_response_with_sdp(endp, conn, "MDCX", pdata->trans, false, false); error3: - return create_err_response(endp, error_code, "MDCX", pdata->trans); + return create_err_response(endp, endp, error_code, "MDCX", pdata->trans); out_silent: LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "MDCX: silent exit\n"); @@ -1323,7 +1392,7 @@ /* DLCX command handler, processes the received command */ static struct msgb *handle_delete_con(struct mgcp_request_data *rq) { - struct mgcp_parse_data *pdata = rq->pdata; + struct mgcp_parse_data *pdata = rq->pdatap; struct mgcp_trunk *trunk = rq->trunk; struct mgcp_endpoint *endp = rq->endp; struct rate_ctr_group *rate_ctrs = trunk->ratectr.mgcp_dlcx_ctr_group; @@ -1344,14 +1413,27 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_AVAIL)); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "DLCX: selected endpoint not available!\n"); - return create_err_response(NULL, 501, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 501, "DLCX", pdata->trans); } if (endp && !rq->wildcarded && llist_empty(&endp->conns)) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "DLCX: endpoint is not holding a connection.\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_NO_CONN)); - return create_err_response(endp, 515, "DLCX", pdata->trans); + return create_err_response(endp, endp, 515, "DLCX", pdata->trans); + } + + /* Handle wildcarded DLCX that refers to the whole trunk. This means + * that we walk over all endpoints on the trunk in order to drop all + * connections on the trunk. (see also RFC3435 Annex F.7) */ + if (rq->wildcarded) { + int num_conns = 0; + for (i = 0; i < trunk->number_endpoints; i++) { + num_conns += llist_count(&trunk->endpoints[i]->conns); + mgcp_endp_release(trunk->endpoints[i]); + } + rate_ctr_add(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_SUCCESS), num_conns); + return create_ok_response(trunk, NULL, 200, "DLCX", pdata->trans); } for_each_line(line, pdata->save) { @@ -1364,9 +1446,9 @@ then this request cannot be handled */ if (!endp) { LOGPTRUNK(trunk, DLMGCP, LOGL_NOTICE, - "cannot handle requests with call-id (C) without endpoint -- abort!"); + "cannot handle requests with call-id (C) without endpoint -- abort!"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "DLCX", pdata->trans); } if (mgcp_verify_call_id(endp, line + 3) != 0) { @@ -1380,9 +1462,9 @@ then this request cannot be handled */ if (!endp) { LOGPTRUNK(trunk, DLMGCP, LOGL_NOTICE, - "cannot handle requests with conn-id (I) without endpoint -- abort!"); + "cannot handle requests with conn-id (I) without endpoint -- abort!"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "DLCX", pdata->trans); } conn_id = (const char *)line + 3; @@ -1398,24 +1480,11 @@ LOGPEPTR(endp, trunk, DLMGCP, LOGL_NOTICE, "DLCX: Unhandled MGCP option: '%c'/%d\n", line[0], line[0]); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "DLCX", pdata->trans); break; } } - /* Handle wildcarded DLCX that refers to the whole trunk. This means - * that we walk over all endpoints on the trunk in order to drop all - * connections on the trunk. (see also RFC3435 Annex F.7) */ - if (rq->wildcarded) { - int num_conns = 0; - for (i = 0; i < trunk->number_endpoints; i++) { - num_conns += llist_count(&trunk->endpoints[i]->conns); - mgcp_endp_release(trunk->endpoints[i]); - } - rate_ctr_add(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_SUCCESS), num_conns); - return create_ok_response(NULL, 200, "DLCX", pdata->trans); - } - /* The logic does not permit to go past this point without having the * the endp pointer populated. */ OSMO_ASSERT(endp); @@ -1438,7 +1507,7 @@ /* Note: In this case we do not return any statistics, * as we assume that the client is not interested in * this case. */ - return create_ok_response(endp, 200, "DLCX", pdata->trans); + return create_ok_response(endp, endp, 200, "DLCX", pdata->trans); } /* Find the connection */ @@ -1467,10 +1536,10 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_SUCCESS)); if (silent) goto out_silent; - return create_ok_resp_with_param(endp, 250, "DLCX", pdata->trans, stats); + return create_ok_resp_with_param(endp, endp, 250, "DLCX", pdata->trans, stats); error3: - return create_err_response(endp, error_code, "DLCX", pdata->trans); + return create_err_response(endp, endp, error_code, "DLCX", pdata->trans); out_silent: LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "DLCX: silent exit\n"); @@ -1488,10 +1557,15 @@ * mechanism to distinguish which endpoint shall be resetted * is needed */ + LOGP(DLMGCP, LOGL_NOTICE, "Asked to reset endpoints: %u/%d\n", + rq->trunk->trunk_nr, rq->trunk->trunk_type); LOGP(DLMGCP, LOGL_NOTICE, "RSIP: resetting all endpoints ...\n"); - if (rq->pdata->cfg->reset_cb) - rq->pdata->cfg->reset_cb(rq->endp->trunk); + /* Walk over all endpoints and trigger a release, this will release all + * endpoints, possible open connections are forcefully dropped */ + for (int i = 0; i < rq->trunk->number_endpoints; ++i) + mgcp_endp_release(rq->trunk->endpoints[i]); + return NULL; } @@ -1515,7 +1589,7 @@ LOGP(DLMGCP, LOGL_NOTICE, "RQNT: processing request for notification ...\n"); - for_each_line(line, rq->pdata->save) { + for_each_line(line, rq->pdatap->save) { switch (toupper(line[0])) { case 'S': tone = extract_tone(line); @@ -1525,14 +1599,14 @@ /* we didn't see a signal request with a tone */ if (tone == CHAR_MAX) - return create_ok_response(rq->endp, 200, "RQNT", rq->pdata->trans); + return create_ok_response(rq->endp, rq->endp, 200, "RQNT", rq->pdatap->trans); - if (rq->pdata->cfg->rqnt_cb) - res = rq->pdata->cfg->rqnt_cb(rq->endp, tone); + if (rq->pdatap->cfg->rqnt_cb) + res = rq->pdatap->cfg->rqnt_cb(rq->endp, tone); return res == 0 ? - create_ok_response(rq->endp, 200, "RQNT", rq->pdata->trans) : - create_err_response(rq->endp, res, "RQNT", rq->pdata->trans); + create_ok_response(rq->endp, rq->endp, 200, "RQNT", rq->pdatap->trans) : + create_err_response(rq->endp, rq->endp, res, "RQNT", rq->pdatap->trans); } /* Connection keepalive timer, will take care that dummy packets are send @@ -1618,14 +1692,14 @@ osmo_strlcpy(cfg->domain, "mgw", sizeof(cfg->domain)); - cfg->net_ports.lock = PTHREAD_MUTEX_INITIALIZER; + cfg->net_ports.lock = (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER; cfg->net_ports.range_start = RTP_PORT_DEFAULT_RANGE_START; cfg->net_ports.range_end = RTP_PORT_DEFAULT_RANGE_END; cfg->net_ports.last_port = cfg->net_ports.range_start; cfg->source_port = 2427; osmo_strlcpy(cfg->source_addr, "0.0.0.0", sizeof(cfg->source_addr)); - osmo_strlcpy(cfg->osmux_addr, "0.0.0.0", sizeof(cfg->osmux_addr)); + osmo_strlcpy(cfg->global_osmux_options.osmux_addr, "0.0.0.0", sizeof(cfg->global_osmux_options.osmux_addr)); cfg->rtp_processing_cb = &mgcp_rtp_processing_default; cfg->setup_rtp_processing_cb = &mgcp_setup_rtp_processing_default; diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 801ae35..27d24fe 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -601,7 +601,7 @@ payload_types[0] = payload_type; if (mgcp_conn_rtp_is_osmux(conn)) - local_port = endp->trunk->cfg->osmux_port; + local_port = osmux_get_global_opt()->osmux_port; else local_port = conn->end.local_port; rc = add_audio(sdp, payload_types, 1, local_port); diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 49493ce..bd5df51 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -31,6 +31,7 @@ #include /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ +__attribute__((no_sanitize("integer"))) void calc_loss(struct mgcp_conn_rtp *conn, uint32_t *expected, int *loss) { struct mgcp_rtp_state *state = &conn->state; @@ -94,7 +95,7 @@ str += nchars; str_len -= nchars; - if (conn->conn->endp->trunk->cfg->osmux != OSMUX_USAGE_OFF) { + if (osmux_get_global_opt()->osmux != OSMUX_USAGE_OFF) { /* Error Counter */ nchars = snprintf(str, str_len, "\r\nX-Osmo-CP: EC TI=%" PRIu64 ", TO=%" PRIu64, diff --git a/src/libosmo-mgcp/mgcp_threads.c b/src/libosmo-mgcp/mgcp_threads.c new file mode 100644 index 0000000..fe939b4 --- /dev/null +++ b/src/libosmo-mgcp/mgcp_threads.c @@ -0,0 +1,457 @@ +/* + * (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Eric Wild + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +static struct log_info log_info = {}; +void __thread *top_ctx; + +static void thread_handle_vty_msg(struct to_trunkthread_cfg_msg *w, struct per_thread_info *thread_info); +static ssize_t thread_wait_vty_cmd_response(struct mgcp_trunk *master_trunk, int i); + +#define GETF(yy, zz) \ + static struct spsc *get_spsc_##yy##_##zz##_for_thread(struct mgcp_trunk *trunk, unsigned int threadnum) \ + { \ + return trunk->thread_info[threadnum].chan_##yy.zz; \ + } + +GETF(cfg, a) +GETF(cfg, b) +GETF(mgcp, a) +GETF(mgcp, b) + +#undef GETFUN + +void thread_push_msg(struct mgcp_trunk *trunk, unsigned int threadnum, void *elem) +{ + while (!spsc_push(get_spsc_mgcp_a_for_thread(trunk, threadnum), elem)) + ; +} + +static void _thread_dispatch_ep_msg(struct mgcp_trunk *master_trunk, int threadnum, struct to_trunkthread_cfg_msg *m) +{ + /* this trunk does not have threads yet - we're parsing the config file */ + if (!master_trunk->thread_info) + return; + + if (!master_trunk->use_threads) { + thread_handle_vty_msg(m, master_trunk->thread_info); + return; + } + + while (!spsc_push(get_spsc_cfg_a_for_thread(master_trunk, threadnum), m)) + ; + + thread_wait_vty_cmd_response(master_trunk, threadnum); +} + +void thread_dispatch_ep_msg(struct mgcp_trunk *master_trunk, int threadnum, struct vty *v, + enum trunkthread_cfg_msg_t ty, struct to_trunkthread_cfg_msg *m) +{ + OSMO_ASSERT(m->type != IS_INVALID); + m->type = ty; + m->vty = v; + + _thread_dispatch_ep_msg(master_trunk, threadnum, m); +} + +/*! send vty message to a trunks thread. + * \param[in] trunk master trunk. + * \param[in] threadnum thread number. + * \param[in] vty vty struct. + * \param[in] epname epname or NULL for all endpoints. + * \param[in] show_stats show stats as well. + * \param[in] active_only only show active endpoint(s). */ +void thread_dispatch_ep_dump_msg(struct mgcp_trunk *master_trunk, int threadnum, struct vty *vty, const char *epname, + bool show_stats, bool active_only) +{ + struct to_trunkthread_cfg_msg m = { .type = IS_VTYMSG, + .vty = vty, + .v.epname = { 0 }, + .v.show_stats = show_stats, + .v.active_only = active_only }; + + if (epname) + osmo_strlcpy(m.v.epname, epname, sizeof(m.v.epname)); + + _thread_dispatch_ep_msg(master_trunk, threadnum, &m); +} + +/*! wait for a trunks thread to respond to a previous cfg message. */ +static ssize_t thread_wait_vty_cmd_response(struct mgcp_trunk *master_trunk, int i) +{ + struct to_trunkthread_cfg_msg w; + if (!master_trunk->use_threads) + return 0; + + ssize_t rv = prep_pop(get_spsc_cfg_b_for_thread(master_trunk, i)); + while (spsc_pop(get_spsc_cfg_b_for_thread(master_trunk, i), &w)) + ; + return rv; +} + +static int map_ep_num_to_thread(struct mgcp_trunk *thread_parent_trunk, unsigned int which_epnum) +{ + int epnum_total = thread_parent_trunk->v.vty_number_endpoints; + int num_threads_total = thread_parent_trunk->num_threads; + + which_epnum = which_epnum >= epnum_total ? epnum_total - 1 : which_epnum; + int a = epnum_total / num_threads_total; + int b = epnum_total % num_threads_total; + + int rv = (a + 1) * b > which_epnum ? which_epnum / (a + 1) : (which_epnum - (b * (a + 1))) / a + b; + return rv; +} + +int get_trunk_thread_for_ep_name(const char *epname, struct mgcp_trunk *thread_parent_trunk) +{ + char epname_stripped[MGCP_ENDPOINT_MAXLEN]; + if (thread_parent_trunk->trunk_type == MGCP_TRUNK_E1) + return 0; + + mgcp_endp_strip_name(epname_stripped, epname, thread_parent_trunk); + + int epnum = strtol(epname_stripped, NULL, 16); + + /* virtual trunk ep nums start with 1, split begins at index 0*/ + epnum = epnum > 0 ? epnum - 1 : 0; + return map_ep_num_to_thread(thread_parent_trunk, epnum); +} + +void get_ep_num_per_thread(struct mgcp_trunk *parent_trunk, int which_threadnum, unsigned int *ep_per_thread, + unsigned int *ep_start_offset) +{ + int epnum_total = parent_trunk->v.vty_number_endpoints; + int num_threads_total = parent_trunk->num_threads; + + int a = epnum_total / num_threads_total; + int b = epnum_total % num_threads_total; + + *ep_per_thread = which_threadnum < b ? a + 1 : a; + + if (which_threadnum <= b) + *ep_start_offset = which_threadnum * (a + 1); + else + *ep_start_offset = (b) * (a + 1) + (which_threadnum - b) * a; +} + +/* it's fine to call this during cfg file parsing: num_threads is 0 */ +static void send_async_vty_update_msg_to_trunk_threads(struct mgcp_config *c, struct mgcp_trunk *t) +{ + struct to_trunkthread_cfg_msg m = { 0 }; + m.type = IS_CFGMSG; + if (t) { + m.c.content |= HAS_TRUNK; + m.c.t = *t; + } + if (c) { + m.c.content |= HAS_CFG; + m.c.c = *c; + } + OSMO_ASSERT(m.c.content != 0); + + /* if we don't have a trunk then this is a cfg change affecting all trunks */ + if (t) { + if (!t->thread_info) /* we're parsing the config file */ + return; + + if (!t->use_threads) { + thread_handle_vty_msg(&m, t->thread_info); + return; + } + for (int i = 0; i < t->num_threads; i++) + while (!spsc_push(get_spsc_cfg_a_for_thread(t, i), &m)) + ; + } else { + llist_for_each_entry (t, &c->trunks, entry) { + if (!t->thread_info) /* we're parsing the config file */ + continue; + + if (!t->use_threads) { + thread_handle_vty_msg(&m, t->thread_info); + } else { + for (int i = 0; i < t->num_threads; i++) + while (!spsc_push(get_spsc_cfg_a_for_thread(t, i), &m)) + ; + } + } + } +} + +void send_async_vty_trunk_update_msg(struct mgcp_trunk *t) +{ + send_async_vty_update_msg_to_trunk_threads(NULL, t); +} + +void send_async_vty_cfg_update_msg(struct mgcp_config *c) +{ + send_async_vty_update_msg_to_trunk_threads(c, NULL); +} + +/* just copy all settings, then sanitize them */ +static void update_local_trunk(struct per_thread_info *tinfo, struct mgcp_trunk *source_trunk) +{ + struct mgcp_trunk t, *dest_trunk = tinfo->this_trunk; + + t = *source_trunk; + t.cfg = tinfo->this_trunk->cfg; + + /* keep this: own data! */ + t.this_thread_info = dest_trunk->this_thread_info; + + t.keepalive_timer = dest_trunk->keepalive_timer; + t.number_endpoints = dest_trunk->number_endpoints; + t.number_endpoints_offset = dest_trunk->number_endpoints_offset; + t.endpoints = dest_trunk->endpoints; + t.ratectr = dest_trunk->ratectr; + t.stats = dest_trunk->stats; + t.num_threads = dest_trunk->num_threads; + + if (dest_trunk->trunk_type == MGCP_TRUNK_VIRTUAL) + t.v = dest_trunk->v; + else + t.e1 = dest_trunk->e1; + + *dest_trunk = t; + + if (dest_trunk->keepalive_interval != source_trunk->keepalive_interval) + mgcp_trunk_set_keepalive(dest_trunk, dest_trunk->keepalive_interval); +} + +/* just copy all settings, then sanitize them */ +static void update_local_cfg(struct per_thread_info *tinfo, struct mgcp_config *source_cfg) +{ + struct mgcp_config c; + c = *source_cfg; + + /* no dynamic updates due to possible active threading! */ + c.global_osmux_options.osmux = tinfo->this_trunk->cfg->global_osmux_options.osmux; + + /* ensure our per-thread config copy only contains our own trunk + this is mostly to ensure the osmux trunk lookup works as-is */ + INIT_LLIST_HEAD(&c.trunks); + llist_add_tail(&tinfo->this_trunk->entry, &c.trunks); + + //FIXME: whole config? + *tinfo->this_trunk->cfg = c; +} + +void handle_vty_cmd(struct per_thread_info *thread_info, struct to_trunkthread_cfg_msg *m); + +static void thread_handle_vty_msg(struct to_trunkthread_cfg_msg *w, struct per_thread_info *thread_info) +{ + switch (w->type) { + case IS_CFGMSG: + if (w->c.content & HAS_TRUNK) + update_local_trunk(thread_info, &w->c.t); + if (w->c.content & HAS_CFG) + update_local_cfg(thread_info, &w->c.c); + break; + case IS_VTYMSG: + case IS_FREEEPMSG: + case IS_TAPMSG: + case IS_LOOPMSG: + handle_vty_cmd(thread_info, w); + break; + default: + break; + } +} + +static int thread_cfg_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint64_t ev_cnt; + struct per_thread_info *thread_info = (struct per_thread_info *)ofd->data; + int rc = read(ofd->fd, &ev_cnt, sizeof(ev_cnt)); + assert(rc == sizeof(ev_cnt)); + + struct to_trunkthread_cfg_msg w; + while (spsc_pop(thread_info->chan_cfg.a, &w)) { + thread_handle_vty_msg(&w, thread_info); + } + + return 0; +} + +static int thread_cb(struct osmo_fd *ofd, unsigned int what) +{ + uint64_t ev_cnt; + struct per_thread_info *thread_info = (struct per_thread_info *)ofd->data; + int returnfd = thread_info->parent_trunk->cfg->gw_fd.bfd.fd; + + int rc = read(ofd->fd, &ev_cnt, sizeof(ev_cnt)); + assert(rc == sizeof(ev_cnt)); + + struct to_trunkthread_mgcp_msg w; + while (spsc_pop(thread_info->chan_mgcp.a, &w)) { + /* update offsets to pointers for interthread q */ + w.x.rq.pdatap = &w.x.pdata; + w.x.pdata.trans = (char *)((uintptr_t)w.x.pdata.trans + &w.msg[0]); + w.x.pdata.epname = (char *)((uintptr_t)w.x.pdata.epname + &w.msg[0]); + if (w.x.pdata.save) + w.x.pdata.save = (char *)((uintptr_t)w.x.pdata.save + &w.msg[0]); + + /* update data to this threads sub-trunk */ + w.x.rq.trunk = thread_info->this_trunk; + w.x.rq.pdatap->cfg = thread_info->this_cfg; + + struct msgb *ret = thread_handle_mgcp_message(&w, thread_info); + if (!ret) + return 0; + + ssize_t srv = sendto(returnfd, ret->l2h, msgb_l2len(ret), 0, &w.x.addr.u.sa, sizeof(w.x.addr)); + + msgb_free(ret); + memset(&w, 0, sizeof(w)); + } + return 0; +} + +void *split_per_thead(void *info) +{ + char thrdname[16]; + struct per_thread_info *thread_info = (struct per_thread_info *)info; + struct mgcp_trunk *parent_trunk = thread_info->parent_trunk; + int this_thread_number = thread_info->tid; + + //top_ctx = talloc_named_const(NULL, 0, "top_thread_ctx"); + /* NO msgb_alloc with default context allowed! TLS is slow! */ + + thread_info->this_cfg = talloc_zero(top_ctx, struct mgcp_config); + thread_info->this_trunk = talloc_zero(top_ctx, struct mgcp_trunk); + + /* just copy everything */ + *thread_info->this_trunk = *parent_trunk; + *thread_info->this_cfg = *parent_trunk->cfg; + thread_info->this_trunk->cfg = thread_info->this_cfg; + + struct mgcp_trunk *t = thread_info->this_trunk; + + get_ep_num_per_thread(parent_trunk, this_thread_number, &t->v.vty_number_endpoints, + &t->number_endpoints_offset); + thread_info->eps_free = t->v.vty_number_endpoints; + + /* illegal copied members: */ + t->keepalive_timer = (struct osmo_timer_list){ 0 }; + t->endpoints = 0; + t->number_endpoints = 0; + t->this_thread_info = info; + /* keep our rate & stats counters + t->ratectr = (struct mgcp_ratectr_trunk){ 0 }; + t->stats = (struct mgcp_stat_trunk){ 0 }; + */ + + if (parent_trunk->use_threads) { + /* give this thread a useful name */ + snprintf(thrdname, 16, "%s_%d_%d", parent_trunk->trunk_type == MGCP_TRUNK_VIRTUAL ? "v" : "e1", + t->trunk_nr, this_thread_number); + prctl(PR_SET_NAME, thrdname, NULL, NULL, NULL); + osmo_cpu_sched_vty_apply_localthread(); + + osmo_ctx_init(thrdname); + osmo_init_logging2(OTC_GLOBAL, &log_info); + log_enable_multithread(); + //msgb_talloc_ctx_init(OTC_GLOBAL,0); nooo is global! + osmo_select_init(); + //osmo_stats_init(OTC_GLOBAL); + + /* this trunks rate ctrs are actually the parent trunks counters and not part of this ratectr! + this is only used for dynamically allocated per-conn ratecounters */ + rate_ctr_init(OTC_GLOBAL); + } + + mgcp_trunk_set_keepalive(t, t->keepalive_interval); + //mgcp_ratectr_trunk_alloc(t); + //mgcp_stat_trunk_alloc(t); + mgcp_trunk_equip(t); + + if (!parent_trunk->use_threads) + return 0; + + /* fix wrong total count due to mgcp_trunk_equip */ + osmo_stat_item_set(osmo_stat_item_group_get_item(t->stats.common, TRUNK_STAT_ENDPOINTS_TOTAL), + parent_trunk->number_endpoints); + + struct osmo_fd chan_mgcp_fd; + osmo_fd_setup(&chan_mgcp_fd, get_a_rdfd(&thread_info->chan_mgcp), OSMO_FD_READ, &thread_cb, info, 0); + osmo_fd_register(&chan_mgcp_fd); + + struct osmo_fd chan_cfg_fd; + osmo_fd_setup(&chan_cfg_fd, get_a_rdfd(&thread_info->chan_cfg), OSMO_FD_READ, &thread_cfg_cb, info, 0); + osmo_fd_register(&chan_cfg_fd); + + /* main loop */ + while (1) { + osmo_select_main_ctx(0); + } + + //FIXME: shutdown +} + +void split_trunks_into_threads(struct mgcp_config *cfg) +{ + struct mgcp_trunk *trunk; + + prctl(PR_SET_NAME, "main", NULL, NULL, NULL); + + llist_for_each_entry (trunk, &cfg->trunks, entry) { + int num_threads = cfg->num_threads_for_virttrunk; + + /* e1 has no threads! */ + if (trunk->trunk_type == MGCP_TRUNK_E1) { + num_threads = 1; + trunk->use_threads = false; + } + + trunk->num_threads = num_threads; + trunk->thread_info = talloc_zero_array(cfg, struct per_thread_info, num_threads); + + for (int i = 0; i < num_threads; i++) { + trunk->thread_info[i].parent_trunk = trunk; + trunk->thread_info[i].tid = i; + trunk->thread_info[i].chan_mgcp = chan_init(10, sizeof(struct to_trunkthread_mgcp_msg)); + trunk->thread_info[i].chan_cfg = + chan_init_ex(2, sizeof(struct to_trunkthread_cfg_msg), false, true, true, true); + /* currently unused + osmo_fd_setup(&trunk->thread_info[i].master_evfd, get_b_rdfd(&trunk->thread_info[i].qc), OSMO_FD_READ, &master_cb, &trunk->thread_info[i], 0); + osmo_fd_register(&trunk->thread_info[i].master_evfd); +*/ + if (trunk->use_threads) + pthread_create(&trunk->thread_info[i].thr, 0, split_per_thead, &trunk->thread_info[i]); + else + split_per_thead(&trunk->thread_info[i]); + } + } +} diff --git a/src/libosmo-mgcp/mgcp_threads_vty.c b/src/libosmo-mgcp/mgcp_threads_vty.c new file mode 100644 index 0000000..59bce2f --- /dev/null +++ b/src/libosmo-mgcp/mgcp_threads_vty.c @@ -0,0 +1,189 @@ +/* + * (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Eric Wild + * + * 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 + +void dump_rtp_end(struct vty *vty, struct mgcp_conn_rtp *conn) +{ + struct mgcp_rtp_state *state = &conn->state; + struct mgcp_rtp_end *end = &conn->end; + struct mgcp_rtp_codec *codec = end->codec; + struct rate_ctr *tx_packets, *tx_bytes; + struct rate_ctr *rx_packets, *rx_bytes; + struct rate_ctr *dropped_packets; + + tx_packets = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_PACKETS_TX_CTR); + tx_bytes = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_OCTETS_TX_CTR); + rx_packets = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_PACKETS_RX_CTR); + rx_bytes = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_OCTETS_RX_CTR); + dropped_packets = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_DROPPED_PACKETS_CTR); + + vty_out(vty, + " Packets Sent: %" PRIu64 " (%" PRIu64 " bytes total)%s" + " Packets Received: %" PRIu64 " (%" PRIu64 " bytes total)%s" + " Timestamp Errs: %" PRIu64 "->%" PRIu64 "%s" + " Dropped Packets: %" PRIu64 "%s" + " Payload Type: %d Rate: %u Channels: %d %s" + " Frame Duration: %u Frame Denominator: %u%s" + " FPP: %d Packet Duration: %u%s" + " FMTP-Extra: %s Audio-Name: %s Sub-Type: %s%s" + " Output-Enabled: %d Force-PTIME: %d%s", + tx_packets->current, tx_bytes->current, VTY_NEWLINE, rx_packets->current, rx_bytes->current, + VTY_NEWLINE, state->in_stream.err_ts_ctr->current, state->out_stream.err_ts_ctr->current, VTY_NEWLINE, + dropped_packets->current, VTY_NEWLINE, codec->payload_type, codec->rate, codec->channels, VTY_NEWLINE, + codec->frame_duration_num, codec->frame_duration_den, VTY_NEWLINE, end->frames_per_packet, + end->packet_duration_ms, VTY_NEWLINE, end->fmtp_extra, codec->audio_name, codec->subtype_name, + VTY_NEWLINE, end->output_enabled, end->force_output_ptime, VTY_NEWLINE); +} + +void dump_endpoint(struct vty *vty, struct mgcp_endpoint *endp, unsigned int trunk_nr, enum mgcp_trunk_type trunk_type, + int show_stats) +{ + struct mgcp_conn *conn; + + vty_out(vty, "%s trunk %u 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); + return; + } + + llist_for_each_entry (conn, &endp->conns, entry) { + vty_out(vty, " CONN: %s%s", mgcp_conn_dump(conn), VTY_NEWLINE); + + if (show_stats) { + if (endp->trunk->cfg->conn_timeout) { + struct timeval remaining; + osmo_timer_remaining(&conn->watchdog, NULL, &remaining); + vty_out(vty, " Currently remaining timeout (seconds): %d.%06d%s", + (int)remaining.tv_sec, (int)remaining.tv_usec, VTY_NEWLINE); + } + + /* FIXME: Also add verbosity for other + * connection types (E1) as soon as + * the implementation is available */ + if (conn->type == MGCP_CONN_TYPE_RTP) { + dump_rtp_end(vty, &conn->u.rtp); + } + } + } +} + +void handle_vty_cmd(struct per_thread_info *thread_info, struct to_trunkthread_cfg_msg *m) +{ + struct mgcp_trunk *t = thread_info->this_trunk; + struct vty *vty = m->vty; + + switch (m->type) { + case IS_VTYMSG: { + struct vtymsg *w = &m->v; + /* all our eps */ + if (!strlen(w->epname)) { + for (int i = 0; i < t->number_endpoints; i++) { + struct mgcp_endpoint *ep = t->endpoints[i]; + if (!w->active_only || !llist_empty(&ep->conns)) + dump_endpoint(m->vty, ep, t->trunk_nr, t->trunk_type, w->show_stats); + } + } else { + struct mgcp_endpoint *ep = mgcp_endp_find_specific(w->epname, t); + if (ep && (!w->active_only || !llist_empty(&ep->conns))) + dump_endpoint(m->vty, ep, t->trunk_nr, t->trunk_type, w->show_stats); + } + break; + } + case IS_FREEEPMSG: { + mgcp_endp_release(mgcp_endp_find_specific(m->f.endp, t)); + break; + } + case IS_TAPMSG: { + struct tapmsg *w = &m->t; + struct mgcp_endpoint *endp = mgcp_endp_find_specific(w->epname, t); + struct mgcp_conn_rtp *conn = mgcp_conn_get_rtp(endp, w->connid); + + if (!conn) { + vty_out(vty, "Conn ID %s is invalid.%s", w->connid, VTY_NEWLINE); + goto out; + } + + struct mgcp_rtp_tap *tap = w->direction_is_in ? &conn->tap_in : &conn->tap_out; + + memset(&tap->forward, 0, sizeof(tap->forward)); + + tap->forward.u.sa.sa_family = osmo_ip_str_type(w->addr); + switch (tap->forward.u.sa.sa_family) { + case AF_INET: + if (inet_pton(AF_INET, w->addr, &tap->forward.u.sin.sin_addr) != 1) + goto out; + tap->forward.u.sin.sin_port = w->destport; + break; + case AF_INET6: + if (inet_pton(AF_INET6, w->addr, &tap->forward.u.sin6.sin6_addr) != 1) + goto out; + tap->forward.u.sin6.sin6_port = w->destport; + break; + default: + goto out; + } + tap->enabled = 1; + break; + } + case IS_LOOPMSG: { + struct loopmsg *w = &m->l; + struct mgcp_conn *conn; + struct mgcp_endpoint *endp = mgcp_endp_find_specific(w->epname, t); + + llist_for_each_entry (conn, &endp->conns, entry) { + if (conn->type == MGCP_CONN_TYPE_RTP) + /* Handle it like a MDCX, switch on SSRC patching if enabled */ + mgcp_rtp_end_config(endp, 1, &conn->u.rtp.end); + else { + /* FIXME: Introduce support for other connection (E1) + * types when implementation is available */ + vty_out(vty, + "%%Can't enable SSRC patching," + "connection %s is not an RTP connection.%s", + mgcp_conn_dump(conn), VTY_NEWLINE); + } + + if (w->enable_loop) + conn->mode = MGCP_CONN_LOOPBACK; + else + conn->mode = conn->mode_orig; + } + break; + } + default: + break; + } + +out: + + vty_flush(vty); + /* lazily ack by sending back the message */ + while (!spsc_push(thread_info->chan_cfg.b, m)) + ; +} diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index f41e5a5..4ac0454 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -69,6 +69,7 @@ trunk->audio_send_name = 1; trunk->v.vty_number_endpoints = 512; trunk->omit_rtcp = 0; + trunk->number_endpoints_offset = 0; mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); @@ -102,13 +103,13 @@ case MGCP_TRUNK_VIRTUAL: /* Due to historical reasons the endpoints on the virtual * trunk start counting at 1. */ - first_endpoint_nr = 1; + first_endpoint_nr = trunk->number_endpoints_offset + 1; number_endpoints = trunk->v.vty_number_endpoints; break; case MGCP_TRUNK_E1: /* The first timeslot on an E1 line is reserved for framing * and alignment and can not be used for audio transport */ - first_endpoint_nr = 1 * MGCP_ENDP_E1_SUBSLOTS; + first_endpoint_nr = trunk->number_endpoints_offset + 1 * MGCP_ENDP_E1_SUBSLOTS; number_endpoints = (NUM_E1_TS-1) * MGCP_ENDP_E1_SUBSLOTS; break; default: diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index a05733f..062442c 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -32,7 +32,9 @@ #include #include #include +#include +#include #include #include #include @@ -120,6 +122,8 @@ trunk->audio_send_name ? "" : "no ", VTY_NEWLINE); vty_out(vty, " number endpoints %u%s", trunk->v.vty_number_endpoints, VTY_NEWLINE); + vty_out(vty, " number threads %u%s", + g_cfg->num_threads_for_virttrunk, VTY_NEWLINE); vty_out(vty, " %sallow-transcoding%s", trunk->no_audio_transcoding ? "no " : "", VTY_NEWLINE); if (strlen(g_cfg->call_agent_addr)) @@ -129,7 +133,7 @@ vty_out(vty, " rtp force-ptime %d%s", g_cfg->force_ptime, VTY_NEWLINE); - switch (g_cfg->osmux) { + switch (g_cfg->global_osmux_options.osmux) { case OSMUX_USAGE_ON: vty_out(vty, " osmux on%s", VTY_NEWLINE); break; @@ -141,17 +145,17 @@ vty_out(vty, " osmux off%s", VTY_NEWLINE); break; } - if (g_cfg->osmux) { + if (g_cfg->global_osmux_options.osmux) { vty_out(vty, " osmux bind-ip %s%s", - g_cfg->osmux_addr, VTY_NEWLINE); + g_cfg->global_osmux_options.osmux_addr, VTY_NEWLINE); vty_out(vty, " osmux batch-factor %d%s", - g_cfg->osmux_batch, VTY_NEWLINE); + g_cfg->global_osmux_options.osmux_batch, VTY_NEWLINE); vty_out(vty, " osmux batch-size %u%s", - g_cfg->osmux_batch_size, VTY_NEWLINE); + g_cfg->global_osmux_options.osmux_batch_size, VTY_NEWLINE); vty_out(vty, " osmux port %u%s", - g_cfg->osmux_port, VTY_NEWLINE); + g_cfg->global_osmux_options.osmux_port, VTY_NEWLINE); vty_out(vty, " osmux dummy %s%s", - g_cfg->osmux_dummy ? "on" : "off", VTY_NEWLINE); + g_cfg->global_osmux_options.osmux_dummy ? "on" : "off", VTY_NEWLINE); } if (g_cfg->conn_timeout) @@ -160,81 +164,6 @@ return CMD_SUCCESS; } -static void dump_rtp_end(struct vty *vty, struct mgcp_conn_rtp *conn) -{ - struct mgcp_rtp_state *state = &conn->state; - struct mgcp_rtp_end *end = &conn->end; - struct mgcp_rtp_codec *codec = end->codec; - struct rate_ctr *tx_packets, *tx_bytes; - struct rate_ctr *rx_packets, *rx_bytes; - struct rate_ctr *dropped_packets; - - tx_packets = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_PACKETS_TX_CTR); - tx_bytes = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_OCTETS_TX_CTR); - rx_packets = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_PACKETS_RX_CTR); - rx_bytes = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_OCTETS_RX_CTR); - dropped_packets = rate_ctr_group_get_ctr(conn->rate_ctr_group, RTP_DROPPED_PACKETS_CTR); - - vty_out(vty, - " Packets Sent: %" PRIu64 " (%" PRIu64 " bytes total)%s" - " Packets Received: %" PRIu64 " (%" PRIu64 " bytes total)%s" - " Timestamp Errs: %" PRIu64 "->%" PRIu64 "%s" - " Dropped Packets: %" PRIu64 "%s" - " Payload Type: %d Rate: %u Channels: %d %s" - " Frame Duration: %u Frame Denominator: %u%s" - " FPP: %d Packet Duration: %u%s" - " FMTP-Extra: %s Audio-Name: %s Sub-Type: %s%s" - " Output-Enabled: %d Force-PTIME: %d%s", - tx_packets->current, tx_bytes->current, VTY_NEWLINE, - rx_packets->current, rx_bytes->current, VTY_NEWLINE, - state->in_stream.err_ts_ctr->current, - state->out_stream.err_ts_ctr->current, - VTY_NEWLINE, - dropped_packets->current, VTY_NEWLINE, - codec->payload_type, codec->rate, codec->channels, VTY_NEWLINE, - codec->frame_duration_num, codec->frame_duration_den, - VTY_NEWLINE, end->frames_per_packet, end->packet_duration_ms, - VTY_NEWLINE, end->fmtp_extra, codec->audio_name, - codec->subtype_name, VTY_NEWLINE, end->output_enabled, - end->force_output_ptime, VTY_NEWLINE); -} - -static void dump_endpoint(struct vty *vty, struct mgcp_endpoint *endp, - unsigned int trunk_nr, enum mgcp_trunk_type trunk_type, int show_stats) -{ - struct mgcp_conn *conn; - - vty_out(vty, "%s trunk %u 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); - return; - } - - llist_for_each_entry(conn, &endp->conns, entry) { - vty_out(vty, " CONN: %s%s", mgcp_conn_dump(conn), VTY_NEWLINE); - - if (show_stats) { - if (endp->trunk->cfg->conn_timeout) { - struct timeval remaining; - osmo_timer_remaining(&conn->watchdog, NULL, &remaining); - vty_out(vty, " Currently remaining timeout (seconds): %d.%06d%s", - (int)remaining.tv_sec, (int)remaining.tv_usec, VTY_NEWLINE); - } - - /* FIXME: Also add verbosity for other - * connection types (E1) as soon as - * the implementation is available */ - if (conn->type == MGCP_CONN_TYPE_RTP) { - dump_rtp_end(vty, &conn->u.rtp); - } - } - } -} - static void dump_ratectr_global(struct vty *vty, struct mgcp_ratectr_global *ratectr) { vty_out(vty, "%s", VTY_NEWLINE); @@ -303,9 +232,6 @@ static void dump_trunk(struct vty *vty, struct mgcp_trunk *trunk, int show_stats, int active_only) { - int i; - int active_count = 0; - vty_out(vty, "%s trunk %d with %d endpoints:%s", trunk->trunk_type == MGCP_TRUNK_VIRTUAL ? "Virtual" : "E1", trunk->trunk_nr, trunk->number_endpoints, VTY_NEWLINE); @@ -315,21 +241,13 @@ return; } - for (i = 0; i < trunk->number_endpoints; ++i) { - struct mgcp_endpoint *endp = trunk->endpoints[i]; - if (!active_only || !llist_empty(&endp->conns)) { - 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 (!llist_empty(&endp->conns)) - active_count++; + vty_out(vty, "%s endpoints: %s", active_only ? "ACTIVE" : "ALL", VTY_NEWLINE); + for (int i = 0; i < trunk->num_threads; i++) { + thread_dispatch_ep_dump_msg(trunk, i, vty, 0, show_stats, active_only); + vty_out(vty, "%s", VTY_NEWLINE); + vty_flush(vty); } - if (active_count == 0) - vty_out(vty, "No endpoints in use.%s", VTY_NEWLINE); - if (show_stats) dump_ratectr_trunk(vty, trunk); } @@ -342,7 +260,7 @@ llist_for_each_entry(trunk, &g_cfg->trunks, entry) dump_trunk(vty, trunk, show_stats, active_only); - if (g_cfg->osmux) + if (g_cfg->global_osmux_options.osmux) vty_out(vty, "Osmux used CID: %d%s", osmux_cid_pool_count_used(), VTY_NEWLINE); @@ -377,25 +295,28 @@ dump_mgcp_endpoint(struct vty *vty, struct mgcp_trunk *trunk, const char *epname) { struct mgcp_endpoint *endp; + int threadnum; - 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 %u%s", epname, trunk->trunk_nr, VTY_NEWLINE); - return; - } - } else { + if (!trunk) { /* 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; + } else { + /* 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 %u%s", epname, + trunk->trunk_nr, VTY_NEWLINE); + return; + } } - trunk = endp->trunk; - dump_endpoint(vty, endp, trunk->trunk_nr, trunk->trunk_type, true); + threadnum = get_trunk_thread_for_ep_name(epname, trunk); + thread_dispatch_ep_dump_msg(trunk, threadnum, vty, epname, true, false); } DEFUN(show_mcgp_endpoint, show_mgcp_endpoint_cmd, @@ -424,6 +345,8 @@ return CMD_WARNING; } + /* single e1 thread trunk */ + trunk = trunk->thread_info[0].this_trunk; dump_mgcp_endpoint(vty, trunk, argv[1]); return CMD_SUCCESS; } @@ -444,6 +367,7 @@ "IPv6 Address to use in SDP record\n") { osmo_strlcpy(g_cfg->local_ip, argv[0], sizeof(g_cfg->local_ip)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -456,6 +380,7 @@ "IPv6 Address to bind to\n") { osmo_strlcpy(g_cfg->source_addr, argv[0], sizeof(g_cfg->source_addr)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -466,6 +391,7 @@ { unsigned int port = atoi(argv[0]); g_cfg->source_port = port; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -517,7 +443,7 @@ g_cfg->net_ports.range_start = start; g_cfg->net_ports.range_end = end; g_cfg->net_ports.last_port = g_cfg->net_ports.range_start; - + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_port_range, @@ -534,6 +460,7 @@ "IPv4 Address to bind to\n") { osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, argv[0], sizeof(g_cfg->net_ports.bind_addr_v4)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_bind_ip, @@ -549,6 +476,7 @@ "Address to bind to\n") { osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, "", sizeof(g_cfg->net_ports.bind_addr_v4)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_no_bind_ip, @@ -565,6 +493,7 @@ "IPv6 Address to bind to\n") { osmo_strlcpy(g_cfg->net_ports.bind_addr_v6, argv[0], sizeof(g_cfg->net_ports.bind_addr_v6)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -576,6 +505,7 @@ "Address to bind to\n") { osmo_strlcpy(g_cfg->net_ports.bind_addr_v6, "", sizeof(g_cfg->net_ports.bind_addr_v6)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -586,6 +516,7 @@ RTP_STR "automatic rtp bind ip selection\n") { g_cfg->net_ports.bind_addr_probe = true; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -596,6 +527,7 @@ NO_STR RTP_STR "no automatic rtp bind ip selection\n") { g_cfg->net_ports.bind_addr_probe = false; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -608,6 +540,7 @@ { int dscp = atoi(argv[0]); g_cfg->endp_dscp = dscp; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -620,6 +553,7 @@ { int prio = atoi(argv[0]); g_cfg->endp_priority = prio; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -632,6 +566,7 @@ "The required ptime (packet duration) in ms\n" "10 ms\n20 ms\n40 ms\n") { g_cfg->force_ptime = atoi(argv[0]); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -641,6 +576,7 @@ "no rtp force-ptime", NO_STR RTP_STR FORCE_PTIME_STR) { g_cfg->force_ptime = 0; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -659,6 +595,7 @@ osmo_talloc_replace_string(g_cfg, &trunk->audio_fmtp_extra, txt); talloc_free(txt); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -670,6 +607,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->no_audio_transcoding = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -681,6 +619,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->no_audio_transcoding = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -720,6 +659,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->audio_send_ptime = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -732,6 +672,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->audio_send_ptime = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -744,6 +685,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->audio_send_name = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -756,6 +698,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->audio_send_name = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -777,6 +720,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->force_realloc = atoi(argv[0]); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -790,6 +734,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->rtp_accept_all = atoi(argv[0]); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -811,6 +756,7 @@ { struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); trunk->omit_rtcp = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -823,6 +769,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->omit_rtcp = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -834,6 +781,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->force_constant_ssrc = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -845,6 +793,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->force_constant_ssrc = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -856,6 +805,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->force_aligned_timing = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -867,6 +817,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->force_aligned_timing = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -878,6 +829,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->rfc5993_hr_convert = true; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -889,6 +841,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); trunk->rfc5993_hr_convert = false; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -902,6 +855,7 @@ trunk->force_constant_ssrc = 0; trunk->force_aligned_timing = 0; trunk->rfc5993_hr_convert = false; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -914,6 +868,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); mgcp_trunk_set_keepalive(trunk, atoi(argv[0])); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -926,6 +881,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -937,6 +893,7 @@ struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); OSMO_ASSERT(trunk); mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_NEVER); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -949,6 +906,7 @@ "IPv6 Address of the call agent\n") { osmo_strlcpy(g_cfg->call_agent_addr, argv[0], sizeof(g_cfg->call_agent_addr)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1052,6 +1010,7 @@ osmo_talloc_replace_string(g_cfg, &trunk->audio_fmtp_extra, txt); talloc_free(txt); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1097,6 +1056,7 @@ struct mgcp_trunk *trunk = vty->index; OSMO_ASSERT(trunk); trunk->force_realloc = atoi(argv[0]); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1110,6 +1070,7 @@ struct mgcp_trunk *trunk = vty->index; OSMO_ASSERT(trunk); trunk->rtp_accept_all = atoi(argv[0]); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1121,6 +1082,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->audio_send_ptime = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1132,6 +1094,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->audio_send_ptime = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1143,6 +1106,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->audio_send_name = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1154,6 +1118,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->audio_send_name = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1164,6 +1129,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->omit_rtcp = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1174,6 +1140,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->omit_rtcp = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1184,6 +1151,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1194,6 +1162,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->force_constant_ssrc = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1204,6 +1173,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->force_aligned_timing = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1214,6 +1184,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->force_aligned_timing = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1224,6 +1195,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->rfc5993_hr_convert = true; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1234,6 +1206,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->rfc5993_hr_convert = false; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1246,6 +1219,7 @@ trunk->force_constant_ssrc = 0; trunk->force_aligned_timing = 0; trunk->rfc5993_hr_convert = false; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1257,6 +1231,7 @@ { struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, atoi(argv[0])); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1268,6 +1243,7 @@ { struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, MGCP_KEEPALIVE_ONCE); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1278,6 +1254,7 @@ { struct mgcp_trunk *trunk = vty->index; mgcp_trunk_set_keepalive(trunk, 0); + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1288,6 +1265,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->no_audio_transcoding = 0; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1298,6 +1276,7 @@ { struct mgcp_trunk *trunk = vty->index; trunk->no_audio_transcoding = 1; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1311,6 +1290,7 @@ struct mgcp_trunk *trunk = vty->index; int line_nr = atoi(argv[0]); trunk->e1.vty_line_nr = line_nr; + send_async_vty_trunk_update_msg(trunk); return CMD_SUCCESS; } @@ -1323,7 +1303,8 @@ { struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; - struct mgcp_conn *conn; + int threadnum; + struct to_trunkthread_cfg_msg m = {0}; trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0])); if (!trunk) { @@ -1346,24 +1327,13 @@ } 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) - /* Handle it like a MDCX, switch on SSRC patching if enabled */ - mgcp_rtp_end_config(endp, 1, &conn->u.rtp.end); - else { - /* FIXME: Introduce support for other connection (E1) - * types when implementation is available */ - vty_out(vty, "%%Can't enable SSRC patching," - "connection %s is not an RTP connection.%s", - mgcp_conn_dump(conn), VTY_NEWLINE); - } - if (loop) - conn->mode = MGCP_CONN_LOOPBACK; - else - conn->mode = conn->mode_orig; - } + + + threadnum = get_trunk_thread_for_ep_name(endp->name, trunk); + m.l.enable_loop = atoi(argv[2]);; + osmo_strlcpy(m.l.epname, endp->name, sizeof(m.t.epname)); + thread_dispatch_ep_msg(trunk, threadnum, vty, IS_LOOPMSG, &m); return CMD_SUCCESS; } @@ -1380,11 +1350,10 @@ "Destination IPv6 of the data\n" "Destination port\n") { - struct mgcp_rtp_tap *tap; struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; - struct mgcp_conn_rtp *conn; - const char *conn_id = NULL; + int threadnum; + struct to_trunkthread_cfg_msg m = {0}; trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0])); if (!trunk) { @@ -1408,41 +1377,26 @@ endp = trunk->endpoints[endp_no]; - conn_id = argv[2]; - conn = mgcp_conn_get_rtp(endp, conn_id); - if (!conn) { - vty_out(vty, "Conn ID %s is invalid.%s", - conn_id, VTY_NEWLINE); - return CMD_WARNING; - } +/// v--- + bool direction_is_in = false; if (strcmp(argv[3], "in") == 0) - tap = &conn->tap_in; + direction_is_in = true; else if (strcmp(argv[3], "out") == 0) - tap = &conn->tap_out; + {} else { vty_out(vty, "Unknown mode... tricked vty?%s", VTY_NEWLINE); return CMD_WARNING; } - memset(&tap->forward, 0, sizeof(tap->forward)); + threadnum = get_trunk_thread_for_ep_name(endp->name, trunk); + m.t.direction_is_in = direction_is_in; + osmo_strlcpy(m.t.epname, endp->name, sizeof(m.t.epname)); + osmo_strlcpy(m.t.connid, argv[2], sizeof(m.t.connid)); + osmo_strlcpy(m.t.addr, argv[4], sizeof(m.t.addr)); + m.t.destport = htons(atoi(argv[5])); + thread_dispatch_ep_msg(trunk, threadnum, vty, IS_TAPMSG, &m); - tap->forward.u.sa.sa_family = osmo_ip_str_type(argv[4]); - switch (tap->forward.u.sa.sa_family) { - case AF_INET: - if (inet_pton(AF_INET, argv[4], &tap->forward.u.sin.sin_addr) != 1) - return CMD_WARNING; - tap->forward.u.sin.sin_port = htons(atoi(argv[5])); - break; - case AF_INET6: - if (inet_pton(AF_INET6, argv[4], &tap->forward.u.sin6.sin6_addr) != 1) - return CMD_WARNING; - tap->forward.u.sin6.sin6_port = htons(atoi(argv[5])); - break; - default: - return CMD_WARNING; - } - tap->enabled = 1; return CMD_SUCCESS; } @@ -1452,6 +1406,8 @@ { struct mgcp_trunk *trunk; struct mgcp_endpoint *endp; + int threadnum; + struct to_trunkthread_cfg_msg m = {0}; trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_E1, atoi(argv[0])); if (!trunk) { @@ -1474,7 +1430,11 @@ } endp = trunk->endpoints[endp_no]; - mgcp_endp_release(endp); + + threadnum = get_trunk_thread_for_ep_name(endp->name, trunk); + osmo_strlcpy(m.f.endp, endp->name, sizeof(m.f.endp)); + thread_dispatch_ep_msg(trunk, threadnum, vty, IS_FREEEPMSG, &m); + return CMD_SUCCESS; } @@ -1539,13 +1499,14 @@ OSMO_ASSERT(trunk); if (strcmp(argv[0], "off") == 0) { - g_cfg->osmux = OSMUX_USAGE_OFF; + g_cfg->global_osmux_options.osmux = OSMUX_USAGE_OFF; return CMD_SUCCESS; } else if (strcmp(argv[0], "on") == 0) - g_cfg->osmux = OSMUX_USAGE_ON; + g_cfg->global_osmux_options.osmux = OSMUX_USAGE_ON; else if (strcmp(argv[0], "only") == 0) - g_cfg->osmux = OSMUX_USAGE_ONLY; + g_cfg->global_osmux_options.osmux = OSMUX_USAGE_ONLY; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1557,7 +1518,8 @@ "IPv4 Address to bind to\n" "IPv6 Address to bind to\n") { - osmo_strlcpy(g_cfg->osmux_addr, argv[0], sizeof(g_cfg->osmux_addr)); + osmo_strlcpy(g_cfg->global_osmux_options.osmux_addr, argv[0], sizeof(g_cfg->global_osmux_options.osmux_addr)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1566,7 +1528,8 @@ "osmux batch-factor <1-8>", OSMUX_STR "Batching factor\n" "Number of messages in the batch\n") { - g_cfg->osmux_batch = atoi(argv[0]); + g_cfg->global_osmux_options.osmux_batch = atoi(argv[0]); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1575,7 +1538,8 @@ "osmux batch-size <1-65535>", OSMUX_STR "batch size\n" "Batch size in bytes\n") { - g_cfg->osmux_batch_size = atoi(argv[0]); + g_cfg->global_osmux_options.osmux_batch_size = atoi(argv[0]); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1583,7 +1547,8 @@ cfg_mgcp_osmux_port_cmd, "osmux port <1-65535>", OSMUX_STR "port\n" "UDP port\n") { - g_cfg->osmux_port = atoi(argv[0]); + g_cfg->global_osmux_options.osmux_port = atoi(argv[0]); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1594,10 +1559,10 @@ "Disable dummy padding\n") { if (strcmp(argv[0], "on") == 0) - g_cfg->osmux_dummy = 1; + g_cfg->global_osmux_options.osmux_dummy = 1; else if (strcmp(argv[0], "off") == 0) - g_cfg->osmux_dummy = 0; - + g_cfg->global_osmux_options.osmux_dummy = 0; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1608,6 +1573,7 @@ "Qualified domain name expected in MGCP endpoint names, or '*' to accept any domain\n") { osmo_strlcpy(g_cfg->domain, argv[0], sizeof(g_cfg->domain)); + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1621,6 +1587,23 @@ "Timeout value (sec.)\n") { g_cfg->conn_timeout = strtoul(argv[0], NULL, 10); + send_async_vty_cfg_update_msg(g_cfg); + return CMD_SUCCESS; +} + +DEFUN(cfg_mgcp_num_threads_for_virttrunk, + cfg_mgcp_num_threads_for_virttrunk_cmd, + "number threads <1-65534>", + "Sets the number of threads that will handle the configured endpoints," + " the thread name is automatially set to __ starting with thread 0\n" + "Number of threads\n") +{ + struct mgcp_trunk *trunk = mgcp_trunk_by_num(g_cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); + OSMO_ASSERT(trunk); + int v = strtoul(argv[0], NULL, 10); + g_cfg->num_threads_for_virttrunk = v; + trunk->use_threads = v ? true : false; + send_async_vty_cfg_update_msg(g_cfg); return CMD_SUCCESS; } @@ -1694,6 +1677,7 @@ install_element(MGCP_NODE, &cfg_mgcp_no_allow_transcoding_cmd); install_element(MGCP_NODE, &cfg_mgcp_domain_cmd); install_element(MGCP_NODE, &cfg_mgcp_conn_timeout_cmd); + install_element(MGCP_NODE, &cfg_mgcp_num_threads_for_virttrunk_cmd); install_element(MGCP_NODE, &cfg_mgcp_trunk_cmd); install_node(&trunk_node, config_write_trunk); @@ -1734,9 +1718,10 @@ int rc; struct mgcp_trunk *trunk; - cfg->osmux_port = OSMUX_PORT; - cfg->osmux_batch = 4; - cfg->osmux_batch_size = OSMUX_BATCH_DEFAULT_MAX; + cfg->global_osmux_options.osmux_port = OSMUX_PORT; + cfg->global_osmux_options.osmux_batch = 4; + cfg->global_osmux_options.osmux_batch_size = OSMUX_BATCH_DEFAULT_MAX; + cfg->num_threads_for_virttrunk = 1; g_cfg = cfg; rc = vty_read_config_file(config_file, NULL); @@ -1761,5 +1746,6 @@ } cfg->role = role; + osmux_set_global_opt(&g_cfg->global_osmux_options); return 0; } diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index d12011c..cf7fad5 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -77,8 +78,6 @@ /* FIXME: Make use of the rtp proxy code */ static struct mgcp_config *cfg; -static struct mgcp_trunk *reset_trunk; -static int reset_endpoints = 0; static int daemonize = 0; const char *osmomgw_copyright = @@ -187,66 +186,35 @@ } } -/* Callback function to be called when the RSIP ("Reset in Progress") mgcp - * command is received */ -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 = trunk; - - return 0; -} - static int read_call_agent(struct osmo_fd *fd, unsigned int what) { - struct osmo_sockaddr addr; - socklen_t slen = sizeof(addr); - struct msgb *msg; struct msgb *resp; int i; - - msg = (struct msgb *) fd->data; + struct to_trunkthread_mgcp_msg w = {0}; + socklen_t slen = sizeof(w.x.addr); /* read one less so we can use it as a \0 */ - int rc = recvfrom(cfg->gw_fd.bfd.fd, msg->data, msg->data_len - 1, 0, - (struct sockaddr *) &addr, &slen); + ssize_t rc = recvfrom(cfg->gw_fd.bfd.fd, w.msg, sizeof(w.msg)-1, 0, + (struct sockaddr *) &w.x.addr, &slen); if (rc < 0) { perror("Gateway failed to read"); return -1; - } else if (slen > sizeof(addr)) { + } else if (slen > sizeof(w.x.addr)) { fprintf(stderr, "Gateway received message from outerspace: %zu %zu\n", - (size_t) slen, sizeof(addr)); + (size_t) slen, sizeof(w.x.addr)); return -1; } - /* handle message now */ - msg->l2h = msgb_put(msg, rc); - resp = mgcp_handle_message(cfg, msg); - msgb_reset(msg); + w.x.pdata.cfg = cfg; + w.x.msglen = rc; + + resp = mgcp_submit_message_to_trunkthread(cfg, &w); if (resp) { - sendto(cfg->gw_fd.bfd.fd, resp->l2h, msgb_l2len(resp), 0, &addr.u.sa, sizeof(addr)); + sendto(cfg->gw_fd.bfd.fd, resp->l2h, msgb_l2len(resp), 0, &w.x.addr.u.sa, sizeof(w.x.addr)); msgb_free(resp); } - /* reset endpoints */ - if (reset_endpoints) { - LOGP(DLMGCP, LOGL_NOTICE, - "Asked to reset endpoints: %u/%d\n", - reset_trunk->trunk_nr, reset_trunk->trunk_type); - - /* reset flag */ - reset_endpoints = 0; - - /* Walk over all endpoints and trigger a release, this will release all - * endpoints, possible open connections are forcefully dropped */ - for (i = 0; i < reset_trunk->number_endpoints; ++i) - mgcp_endp_release(reset_trunk->endpoints[i]); - } - return 0; } @@ -324,6 +292,10 @@ osmo_init_logging2(tall_mgw_ctx, &log_info); libosmo_abis_init(tall_mgw_ctx); + + rate_ctr_init(tall_mgw_ctx); + osmo_stats_init(tall_mgw_ctx); + cfg = mgcp_config_alloc(); if (!cfg) return -1; @@ -334,23 +306,33 @@ vty_info.usr_attr_letters[MGW_CMD_ATTR_NEWCONN] = 'n'; vty_init(&vty_info); + osmo_cpu_sched_vty_init(tall_mgw_ctx); + osmo_cpu_sched_force_apply_later(true); logging_vty_add_cmds(); osmo_talloc_vty_add_cmds(); osmo_stats_vty_add_cmds(); mgcp_vty_init(); ctrl_vty_init(cfg); e1inp_vty_init(); - osmo_cpu_sched_vty_init(tall_mgw_ctx); handle_options(argc, argv); - rate_ctr_init(tall_mgw_ctx); - osmo_stats_init(tall_mgw_ctx); + talloc_disable_null_tracking(); + log_enable_multithread(); rc = mgcp_parse_config(config_file, cfg, MGCP_BSC); if (rc < 0) return rc; + if (cfg->global_osmux_options.osmux) { + struct mgcp_trunk *trunk; + fprintf(stderr, "Osmux usage impossible with threads! Disabling threads..\n"); + llist_for_each_entry(trunk, &cfg->trunks, entry) { + trunk->use_threads = false; + trunk->num_threads = 1; + } + } + /* start telnet after reading config for vty_get_bind_addr() */ rc = telnet_init_dynif(tall_mgw_ctx, NULL, vty_get_bind_addr(), OSMO_VTY_PORT_MGW); @@ -363,9 +345,7 @@ ctrl_vty_get_bind_addr(), OSMO_CTRL_PORT_MGW); } - /* Set the reset callback function. This functions is called when the - * mgcp-command "RSIP" (Reset in Progress) is received */ - cfg->reset_cb = mgcp_rsip_cb; + split_trunks_into_threads(cfg); /* we need to bind a socket */ flags = OSMO_SOCK_F_BIND; @@ -381,11 +361,7 @@ } cfg->gw_fd.bfd.cb = read_call_agent; - cfg->gw_fd.bfd.data = msgb_alloc(4096, "mgcp-msg"); - if (!cfg->gw_fd.bfd.data) { - fprintf(stderr, "Gateway memory error.\n"); - return -1; - } + cfg->gw_fd.bfd.data = 0; LOGP(DLMGCP, LOGL_NOTICE, "Configured for MGCP, listen on %s:%u\n", cfg->source_addr, cfg->source_port); diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index a8aad14..0eccc63 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -761,6 +762,24 @@ return 0; } + +static struct msgb * handle_message_threadwrapper(struct mgcp_config *cfg, struct mgcp_trunk *trunk, struct msgb *inp, const char* testname) { + struct msgb * msg; + struct to_trunkthread_mgcp_msg w = {0}; + struct per_thread_info inf = {0}; + + trunk->thread_info = &inf; + w.x.pdata.cfg = cfg; + w.x.msglen = msgb_l2len(inp); + memcpy(w.msg, inp->data, msgb_l2len(inp) ); + + msg = mgcp_handle_message(cfg, &w); + if (msg || !w.x.successfully_parsed) + return msg; + msg = thread_handle_mgcp_message(&w, &inf); + return msg; +} + static void test_messages(void) { struct mgcp_config *cfg; @@ -770,7 +789,7 @@ struct mgcp_conn_rtp *conn = NULL; char last_conn_id[256]; int rc; - char *last_endpoint = mgcp_debug_get_last_endpoint_name(); + char *last_endpoint; cfg = mgcp_config_alloc(); trunk = mgcp_trunk_by_num(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); @@ -794,7 +813,8 @@ t->extra_fmtp); inp = create_msg(t->req, last_conn_id); - msg = mgcp_handle_message(cfg, inp); + msg = handle_message_threadwrapper(cfg, trunk, inp, t->name); + last_endpoint = mgcp_debug_get_last_endpoint_name(); msgb_free(inp); if (!t->exp_resp) { if (msg) { @@ -924,7 +944,7 @@ printf("Testing %s\n", t->name); inp = create_msg(t->req, last_conn_id); - msg = mgcp_handle_message(cfg, inp); + msg = handle_message_threadwrapper(cfg, trunk, inp, t->name); msgb_free(inp); if (msg && check_response(msg->data, t->exp_resp) != 0) { @@ -944,7 +964,7 @@ /* Retransmit... */ printf("Re-transmitting %s\n", t->name); inp = create_msg(t->req, last_conn_id); - msg = mgcp_handle_message(cfg, inp); + msg = handle_message_threadwrapper(cfg, trunk, inp, t->name); msgb_free(inp); if (check_response(msg->data, t->exp_resp) != 0) { printf("%s failed '%s'\n", t->name, (char *)msg->data); @@ -979,7 +999,7 @@ mgcp_trunk_equip(trunk); inp = create_msg(CRCX, NULL); - msg = mgcp_handle_message(cfg, inp); + msg = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); OSMO_ASSERT(msg); OSMO_ASSERT(get_conn_id_from_response(msg->data, conn_id, sizeof(conn_id)) == 0); @@ -988,7 +1008,7 @@ /* send the RQNT and check for the CB */ inp = create_msg(RQNT, conn_id); - msg = mgcp_handle_message(cfg, inp); + msg = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); if (strncmp((const char *)msg->l2h, "200", 3) != 0) { printf("FAILED: message is not 200. '%s'\n", msg->l2h); abort(); @@ -1003,7 +1023,7 @@ msgb_free(inp); inp = create_msg(DLCX, conn_id); - msgb_free(mgcp_handle_message(cfg, inp)); + msg = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); msgb_free(inp); mgcp_endpoints_release(trunk); talloc_free(cfg); @@ -1386,7 +1406,7 @@ struct in_addr addr; struct mgcp_conn_rtp *conn = NULL; char conn_id[256]; - char *last_endpoint = mgcp_debug_get_last_endpoint_name(); + char* last_endpoint; printf("Testing multiple payload types\n"); @@ -1396,9 +1416,9 @@ mgcp_trunk_equip(trunk); /* Allocate endpoint 1 at mgw with two codecs */ - last_endpoint[0] = '\0'; inp = create_msg(CRCX_MULT_1, NULL); - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); msgb_free(inp); @@ -1412,9 +1432,9 @@ OSMO_ASSERT(conn->end.codec->payload_type == 18); /* Allocate 2 at mgw with three codecs, last one ignored */ - last_endpoint[0] = '\0'; inp = create_msg(CRCX_MULT_2, NULL); - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); msgb_free(inp); @@ -1433,9 +1453,9 @@ * it makes and since we already decided in OS#2658 that a missing * LCO should pick a sane default codec, it makes sense to expect * the same behaviour if SDP lacks proper payload type information */ - last_endpoint[0] = '\0'; inp = create_msg(CRCX_MULT_3, NULL); - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); msgb_free(inp); @@ -1449,9 +1469,9 @@ OSMO_ASSERT(conn->end.codec->payload_type == 0); /* Allocate 4 at mgw with a single codec */ - last_endpoint[0] = '\0'; inp = create_msg(CRCX_MULT_4, NULL); - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); msgb_free(inp); @@ -1465,10 +1485,10 @@ OSMO_ASSERT(conn->end.codec->payload_type == 18); /* Allocate 5 at mgw and let osmo-mgw pick a codec from the list */ - last_endpoint[0] = '\0'; inp = create_msg(CRCX_MULT_GSM_EXACT, NULL); trunk->no_audio_transcoding = 1; - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); msgb_free(inp); @@ -1482,8 +1502,8 @@ OSMO_ASSERT(conn->end.codec->payload_type == 0); inp = create_msg(MDCX_NAT_DUMMY, conn_id); - last_endpoint[0] = '\0'; - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); msgb_free(inp); msgb_free(resp); OSMO_ASSERT(strcmp(last_endpoint,"rtpbridge/5 at mgw") == 0); @@ -1509,10 +1529,10 @@ conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(!conn); - last_endpoint[0] = '\0'; inp = create_msg(CRCX_MULT_GSM_EXACT, NULL); trunk->no_audio_transcoding = 0; - resp = mgcp_handle_message(cfg, inp); + resp = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); + last_endpoint = mgcp_debug_get_last_endpoint_name(); OSMO_ASSERT(get_conn_id_from_response(resp->data, conn_id, sizeof(conn_id)) == 0); msgb_free(inp); @@ -1596,7 +1616,7 @@ mgcp_trunk_equip(trunk); inp = create_msg(CRCX, NULL); - msg = mgcp_handle_message(cfg, inp); + msg = handle_message_threadwrapper(cfg, trunk, inp, "__FILE__""__LINE__"); if (check_response(msg->data, CRCX_RET_NO_RTPMAP) != 0) { printf("FAILED: there should not be a RTPMAP: %s\n", -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:28:50 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#2). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 224 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... 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/+/25424 to look at the new patch set (#2). Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... globally lock the portrange when trying to grab a port to prep for multithreading Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_protocol.c 2 files changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/25424/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line 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/+/25425 to look at the new patch set (#2). Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... e1: one thread per e1 trunk == e1 line There is only one thread per trunk, and one trunk can only have one line, so saving the trunk pointer is sufficient to know which line we are. Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_trunk.c 2 files changed, 7 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/25/25425/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs 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/+/25426 to look at the new patch set (#2). Change subject: embed strings into structs ...................................................................... embed strings into structs They are mostly not even as large as the talloc header used to dynamically allocate them, and they are also not "shared" by anything. Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c 5 files changed, 26 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/26/25426/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context 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/+/25427 to look at the new patch set (#2). Change subject: adjust talloc context ...................................................................... adjust talloc context Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 --- 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/27/25427/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer 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/+/25428 to look at the new patch set (#2). Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/28/25428/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available 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/+/25429 to look at the new patch set (#2). Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 to look at the new patch set (#2). Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#3). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 224 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:37:07 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#3). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,311 insertions(+), 437 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:42:08 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:42:08 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client : fix unsigned comparison References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25433 ) Change subject: libosmo-mgcp-client : fix unsigned comparison ...................................................................... libosmo-mgcp-client : fix unsigned comparison Change-Id: Ie2fc2d32d49cc6143a953270aec283b8b2bba3bf --- M src/libosmo-mgcp-client/mgcp_client_endpoint_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/33/25433/1 diff --git a/src/libosmo-mgcp-client/mgcp_client_endpoint_fsm.c b/src/libosmo-mgcp-client/mgcp_client_endpoint_fsm.c index ea4c378..ebef959 100644 --- a/src/libosmo-mgcp-client/mgcp_client_endpoint_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_endpoint_fsm.c @@ -156,7 +156,7 @@ static struct osmo_mgcpc_ep_ci *osmo_mgcpc_ep_ci_for_event(struct osmo_mgcpc_ep *ep, uint32_t event) { int idx; - if (event < FIRST_CI_EVENT) + if (FIRST_CI_EVENT && event < FIRST_CI_EVENT) return NULL; idx = EV_TO_CI_IDX(event); if (idx >= sizeof(ep->ci)) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ie2fc2d32d49cc6143a953270aec283b8b2bba3bf Gerrit-Change-Number: 25433 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 14:58:48 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 14:58:48 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client : fix unsigned comparison 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/+/25433 to look at the new patch set (#2). Change subject: libosmo-mgcp-client : fix unsigned comparison ...................................................................... libosmo-mgcp-client : fix unsigned comparison It's 0 and was never anything else so far. Change-Id: Ie2fc2d32d49cc6143a953270aec283b8b2bba3bf --- M src/libosmo-mgcp-client/mgcp_client_endpoint_fsm.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/33/25433/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ie2fc2d32d49cc6143a953270aec283b8b2bba3bf Gerrit-Change-Number: 25433 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 15:24:51 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 15:24:51 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 to look at the new patch set (#5). Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... libosmo-mgcp: cleanup audio codex alloc No need to complicate audio codes with pointers, our "usual" string is barely larger than a poointer, five times smaller than a talloc header, and most importantly not really optional anyway... Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 --- M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_sdp.c 3 files changed, 18 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/21/25421/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 15:24:51 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 15:24:51 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context 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/+/25423 to look at the new patch set (#5). Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... libosmo-mgcp: do not use the default msgb talloc context Trunk is safe, since it will not disappear sooner than the endpoints or connections. osmux still missing! Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c 3 files changed, 21 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/23/25423/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 15:24:51 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 15:24:51 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#7). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,315 insertions(+), 437 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 7 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 15:38:56 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 15:38:56 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... 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/+/25424 to look at the new patch set (#7). Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... globally lock the portrange when trying to grab a port to prep for multithreading Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_protocol.c 2 files changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/25424/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 7 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:06:20 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 16:06:20 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context 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/+/25423 to look at the new patch set (#6). Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... libosmo-mgcp: do not use the default msgb talloc context Trunk is safe, since it will not disappear sooner than the endpoints or connections. osmux still missing! Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_network.c 2 files changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/23/25423/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:06:20 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 16:06:20 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#9). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,329 insertions(+), 441 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:16:26 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 16:16:26 +0000 Subject: Change in osmo-mgw[master]: configure.ac: add some flags In-Reply-To: References: Message-ID: Hoernchen has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25417 ) Change subject: configure.ac: add some flags ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I6398f138764726098dbf607c2c7d993abe234d97 Gerrit-Change-Number: 25417 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:16:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 16:16:31 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp-client : fix unsigned comparison In-Reply-To: References: Message-ID: Hoernchen has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25433 ) Change subject: libosmo-mgcp-client : fix unsigned comparison ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ie2fc2d32d49cc6143a953270aec283b8b2bba3bf Gerrit-Change-Number: 25433 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:22:11 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 16:22:11 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#10). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,329 insertions(+), 442 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:33:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:33:45 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:33:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:36:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:36:17 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/25414/1/include/osmocom/core/rate_ctr.h File include/osmocom/core/rate_ctr.h: https://gerrit.osmocom.org/c/libosmocore/+/25414/1/include/osmocom/core/rate_ctr.h at 8 PS1, Line 8: stdatomic which c standard do we minimally depend on with this? should we check for that in autoconf? https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c File src/rate_ctr.c: https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c at 72 PS1, Line 72: s so every thread gets their own set of rate counters [counter groups]. That may be useful in the osmo-mgw case, but I'm not sure this is a generally valid assumption. What for example about osmo-trx and it's multiple threads? In that case I would assume they all want to operate one global/shared list? https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c at 470 PS1, Line 470: osmo_fds no osmo_fds here? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:36:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:37:07 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:37: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 Sep 9 16:37:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:37:25 +0000 Subject: Change in osmo-mgw[master]: add vscode stuff to gitignore In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25416 ) Change subject: add vscode stuff to gitignore ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If3cfb71700929aa63df7f4f7f89f5392ba94c77e Gerrit-Change-Number: 25416 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:37:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:37:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:37:38 +0000 Subject: Change in osmo-mgw[master]: fix missing includes and forward declarations In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25418 ) Change subject: fix missing includes and forward declarations ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I669e475f7ab74abef85f0f6194cc37db04af62e3 Gerrit-Change-Number: 25418 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:37:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:37:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:37:50 +0000 Subject: Change in osmo-mgw[master]: rename do_retransmission In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25419 ) Change subject: rename do_retransmission ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I5513e0ad15db4a0629f4e0348fc3e84d9972259a Gerrit-Change-Number: 25419 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:37: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 Sep 9 16:38:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:38:04 +0000 Subject: Change in osmo-mgw[master]: mgcp_sdp: fix potential leak In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25420 ) Change subject: mgcp_sdp: fix potential leak ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31527b54f602634024a0b687eef26a9b29354282 Gerrit-Change-Number: 25420 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:38:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:38:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:38:36 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:38: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 Sep 9 16:39:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:39:17 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... Patch Set 5: Code-Review+1 same comment regarding autoconf check for stdatomic? how old systems would fail such a check? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:39: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 Sep 9 16:39:40 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:39:40 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25423 ) Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:39:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:40:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:40:28 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... Patch Set 8: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25424/8/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25424/8/include/osmocom/mgcp/mgcp.h at 37 PS8, Line 37: pthread don't we need to add -lpthread or the like? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:40: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 Sep 9 16:41:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:41:35 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25425 ) Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25425/8/src/libosmo-mgcp/mgcp_e1.c File src/libosmo-mgcp/mgcp_e1.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25425/8/src/libosmo-mgcp/mgcp_e1.c at 37 PS8, Line 37: osmocom doesn't this break existing setups where you have multiple E1 lines in single-threaded osmo-mgw? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:41:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:42:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:42:14 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:42:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:42:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:42:59 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... Patch Set 8: adjust why/how? I mean yes, it's now trunk and not trunk->cfg. presumably because trunk is going to be thread-local and cfg is global/shared? Needs --verbose -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:42:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:43:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:43:34 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 8: commitlog describes what is done, but not why. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:43:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:44:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:44:00 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:44:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 16:46:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 9 Sep 2021 16:46:22 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25430/8/src/libosmo-mgcp/mgcp_conn.c File src/libosmo-mgcp/mgcp_conn.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25430/8/src/libosmo-mgcp/mgcp_conn.c at 335 PS8, Line 335: restart: might look better with a construct like while (conn = llist_first_entry_or_null(&endp->conns, struct mgcp_conn, list)) { mgcp_con_free(endp, conn->id); } ? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 16:46:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:31:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 17:31:54 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 to look at the new patch set (#2). Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... TA loop: Take into account UL SACCH 'Actual Timing advance' field First step improving and reworking TA loop: Move trigger of the loop to similar place done by BS/MS Power Control Loop, that is, upon receivial of UL SACCH block, which contains information about the TA used to transmit the block encode in L1SACCH Header. Hence, from computed received TOA and TA used when transmitting from the MS, we can infer the desired TA to be used by the MS, which will send back to it later during DL SACCH block. The values taken are actually the ones calculated for the previous SACCH block and stored in lchan->meas.ms_toa256. That's because L1SACCH contains the TA used for the previous reporting period, similarly to what's specified for MS Power Control loop (TS 45.008 sec 4.2): """ The MS shall confirm the power control level that it is currently employing in the SACCH L1 header on each uplink channel. The indicated value shall be the power control level actually used by the mobile for the last burst of the previous SACCH period. """ (The reader may observe that currently this is not properly done for MS Power Control loop when calling lchan_ms_pwr_ctrl(): this is a bug.) This new method also permits changing TA quicker, since we have more confidence that the TA we request is aligned with the one used to transmit, and we don't simply increment/decrement based on the value we request to transmit. Related: SYS#5371 Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc --- M include/osmo-bts/ta_control.h M src/common/l1sap.c M src/common/measurement.c M src/common/ta_control.c M tests/ta_control/ta_control_test.c 5 files changed, 74 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/86/25386/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:31:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 17:31:55 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25434 ) Change subject: ta_control: Allow switching TA quicker ...................................................................... ta_control: Allow switching TA quicker >From TS 45.010 5.6.1 (delay tracking dor circuit switched channels): """ Restricting the change in timing advance to 1 symbol period at a time gives the simplest implementation of the BTS. However the BTS may use a larger change than this but great care must then be used in the BTS design. """ In general 1 TA at a time (every 480ms of SACCH block) should be enough, since section 5.6.3 states: """ The control loop for the timing advance shall be implemented in such a way that it will cope with MSs moving at a speed up to 500 km/h """ Which is ~140 m/s, and 1 TA step around 500m, so most of the time we should be save and no steps of more than 1 TA should be required. However, unlikely changes from reflected to direct signal or vice versa could produce higher increments, so let's increase the maximum step size allowed to 2 in order to give more room. Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 --- M src/common/ta_control.c M tests/ta_control/ta_control_test.ok 2 files changed, 232 insertions(+), 232 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/25434/1 diff --git a/src/common/ta_control.c b/src/common/ta_control.c index 4ccb41d..969b770 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -33,8 +33,8 @@ #define TA_MAX 63 /* TODO: make configurable over osmo-bts VTY? Pass it BSC->BTS? */ -#define TA_MAX_INC_STEP 1 -#define TA_MAX_DEC_STEP 1 +#define TA_MAX_INC_STEP 2 +#define TA_MAX_DEC_STEP 2 /*! compute the new "Ordered Timing Advance" communicated to the MS and store it in lchan. diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok index 8ebe5d5..79de8ad 100644 --- a/tests/ta_control/ta_control_test.ok +++ b/tests/ta_control/ta_control_test.ok @@ -2,81 +2,81 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4096 / 256 = 16 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3840 / 256 = 15 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3840 / 256 = 15 lchan.rqd_ta (after) = 2 toa256 (after) = 3584 / 256 = 14 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3584 / 256 = 14 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3328 / 256 = 13 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3328 / 256 = 13 lchan.rqd_ta (after) = 4 toa256 (after) = 3072 / 256 = 12 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 3072 / 256 = 12 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2816 / 256 = 11 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2816 / 256 = 11 lchan.rqd_ta (after) = 6 toa256 (after) = 2560 / 256 = 10 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2560 / 256 = 10 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2304 / 256 = 9 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2304 / 256 = 9 lchan.rqd_ta (after) = 8 toa256 (after) = 2048 / 256 = 8 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 2048 / 256 = 8 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1792 / 256 = 7 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1792 / 256 = 7 lchan.rqd_ta (after) = 10 toa256 (after) = 1536 / 256 = 6 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1536 / 256 = 6 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1280 / 256 = 5 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1280 / 256 = 5 lchan.rqd_ta (after) = 12 toa256 (after) = 1024 / 256 = 4 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 1024 / 256 = 4 - lchan.rqd_ta (after) = 13 - toa256 (after) = 768 / 256 = 3 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 768 / 256 = 3 lchan.rqd_ta (after) = 14 toa256 (after) = 512 / 256 = 2 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 512 / 256 = 2 - lchan.rqd_ta (after) = 15 - toa256 (after) = 256 / 256 = 1 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 256 / 256 = 1 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 lchan.rqd_ta (after) = 16 toa256 (after) = 0 / 256 = 0 Step #16 @@ -105,78 +105,78 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4000 / 256 = 15 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3744 / 256 = 14 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3744 / 256 = 14 lchan.rqd_ta (after) = 2 toa256 (after) = 3488 / 256 = 13 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3488 / 256 = 13 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3232 / 256 = 12 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3232 / 256 = 12 lchan.rqd_ta (after) = 4 toa256 (after) = 2976 / 256 = 11 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 2976 / 256 = 11 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2720 / 256 = 10 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2720 / 256 = 10 lchan.rqd_ta (after) = 6 toa256 (after) = 2464 / 256 = 9 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2464 / 256 = 9 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2208 / 256 = 8 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2208 / 256 = 8 lchan.rqd_ta (after) = 8 toa256 (after) = 1952 / 256 = 7 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 1952 / 256 = 7 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1696 / 256 = 6 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1696 / 256 = 6 lchan.rqd_ta (after) = 10 toa256 (after) = 1440 / 256 = 5 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1440 / 256 = 5 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1184 / 256 = 4 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1184 / 256 = 4 lchan.rqd_ta (after) = 12 toa256 (after) = 928 / 256 = 3 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 928 / 256 = 3 - lchan.rqd_ta (after) = 13 - toa256 (after) = 672 / 256 = 2 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 672 / 256 = 2 lchan.rqd_ta (after) = 14 toa256 (after) = 416 / 256 = 1 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 416 / 256 = 1 lchan.rqd_ta (after) = 15 toa256 (after) = 160 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 Step #15 lchan.rqd_ta (before) = 15 toa256 (before) = 160 / 256 = 0 @@ -358,241 +358,241 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 12345 / 256 = 48 - lchan.rqd_ta (after) = 1 - toa256 (after) = 12089 / 256 = 47 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 12089 / 256 = 47 lchan.rqd_ta (after) = 2 toa256 (after) = 11833 / 256 = 46 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 11833 / 256 = 46 - lchan.rqd_ta (after) = 3 - toa256 (after) = 11577 / 256 = 45 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 11577 / 256 = 45 lchan.rqd_ta (after) = 4 toa256 (after) = 11321 / 256 = 44 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 11321 / 256 = 44 - lchan.rqd_ta (after) = 5 - toa256 (after) = 11065 / 256 = 43 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 11065 / 256 = 43 lchan.rqd_ta (after) = 6 toa256 (after) = 10809 / 256 = 42 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 10809 / 256 = 42 - lchan.rqd_ta (after) = 7 - toa256 (after) = 10553 / 256 = 41 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 10553 / 256 = 41 lchan.rqd_ta (after) = 8 toa256 (after) = 10297 / 256 = 40 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 10297 / 256 = 40 - lchan.rqd_ta (after) = 9 - toa256 (after) = 10041 / 256 = 39 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 10041 / 256 = 39 lchan.rqd_ta (after) = 10 toa256 (after) = 9785 / 256 = 38 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 9785 / 256 = 38 - lchan.rqd_ta (after) = 11 - toa256 (after) = 9529 / 256 = 37 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 9529 / 256 = 37 lchan.rqd_ta (after) = 12 toa256 (after) = 9273 / 256 = 36 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 9273 / 256 = 36 - lchan.rqd_ta (after) = 13 - toa256 (after) = 9017 / 256 = 35 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 9017 / 256 = 35 lchan.rqd_ta (after) = 14 toa256 (after) = 8761 / 256 = 34 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 8761 / 256 = 34 - lchan.rqd_ta (after) = 15 - toa256 (after) = 8505 / 256 = 33 -Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 8505 / 256 = 33 lchan.rqd_ta (after) = 16 toa256 (after) = 8249 / 256 = 32 -Step #16 +Step #8 lchan.rqd_ta (before) = 16 toa256 (before) = 8249 / 256 = 32 - lchan.rqd_ta (after) = 17 - toa256 (after) = 7993 / 256 = 31 -Step #17 - lchan.rqd_ta (before) = 17 - toa256 (before) = 7993 / 256 = 31 lchan.rqd_ta (after) = 18 toa256 (after) = 7737 / 256 = 30 -Step #18 +Step #9 lchan.rqd_ta (before) = 18 toa256 (before) = 7737 / 256 = 30 - lchan.rqd_ta (after) = 19 - toa256 (after) = 7481 / 256 = 29 -Step #19 - lchan.rqd_ta (before) = 19 - toa256 (before) = 7481 / 256 = 29 lchan.rqd_ta (after) = 20 toa256 (after) = 7225 / 256 = 28 -Step #20 +Step #10 lchan.rqd_ta (before) = 20 toa256 (before) = 7225 / 256 = 28 - lchan.rqd_ta (after) = 21 - toa256 (after) = 6969 / 256 = 27 -Step #21 - lchan.rqd_ta (before) = 21 - toa256 (before) = 6969 / 256 = 27 lchan.rqd_ta (after) = 22 toa256 (after) = 6713 / 256 = 26 -Step #22 +Step #11 lchan.rqd_ta (before) = 22 toa256 (before) = 6713 / 256 = 26 - lchan.rqd_ta (after) = 23 - toa256 (after) = 6457 / 256 = 25 -Step #23 - lchan.rqd_ta (before) = 23 - toa256 (before) = 6457 / 256 = 25 lchan.rqd_ta (after) = 24 toa256 (after) = 6201 / 256 = 24 -Step #24 +Step #12 lchan.rqd_ta (before) = 24 toa256 (before) = 6201 / 256 = 24 - lchan.rqd_ta (after) = 25 - toa256 (after) = 5945 / 256 = 23 -Step #25 - lchan.rqd_ta (before) = 25 - toa256 (before) = 5945 / 256 = 23 lchan.rqd_ta (after) = 26 toa256 (after) = 5689 / 256 = 22 -Step #26 +Step #13 lchan.rqd_ta (before) = 26 toa256 (before) = 5689 / 256 = 22 - lchan.rqd_ta (after) = 27 - toa256 (after) = 5433 / 256 = 21 -Step #27 - lchan.rqd_ta (before) = 27 - toa256 (before) = 5433 / 256 = 21 lchan.rqd_ta (after) = 28 toa256 (after) = 5177 / 256 = 20 -Step #28 +Step #14 lchan.rqd_ta (before) = 28 toa256 (before) = 5177 / 256 = 20 - lchan.rqd_ta (after) = 29 - toa256 (after) = 4921 / 256 = 19 -Step #29 - lchan.rqd_ta (before) = 29 - toa256 (before) = 4921 / 256 = 19 lchan.rqd_ta (after) = 30 toa256 (after) = 4665 / 256 = 18 -Step #30 +Step #15 lchan.rqd_ta (before) = 30 toa256 (before) = 4665 / 256 = 18 - lchan.rqd_ta (after) = 31 - toa256 (after) = 4409 / 256 = 17 -Step #31 - lchan.rqd_ta (before) = 31 - toa256 (before) = 4409 / 256 = 17 lchan.rqd_ta (after) = 32 toa256 (after) = 4153 / 256 = 16 -Step #32 +Step #16 lchan.rqd_ta (before) = 32 toa256 (before) = 4153 / 256 = 16 - lchan.rqd_ta (after) = 33 - toa256 (after) = 3897 / 256 = 15 -Step #33 - lchan.rqd_ta (before) = 33 - toa256 (before) = 3897 / 256 = 15 lchan.rqd_ta (after) = 34 toa256 (after) = 3641 / 256 = 14 -Step #34 +Step #17 lchan.rqd_ta (before) = 34 toa256 (before) = 3641 / 256 = 14 - lchan.rqd_ta (after) = 35 - toa256 (after) = 3385 / 256 = 13 -Step #35 - lchan.rqd_ta (before) = 35 - toa256 (before) = 3385 / 256 = 13 lchan.rqd_ta (after) = 36 toa256 (after) = 3129 / 256 = 12 -Step #36 +Step #18 lchan.rqd_ta (before) = 36 toa256 (before) = 3129 / 256 = 12 - lchan.rqd_ta (after) = 37 - toa256 (after) = 2873 / 256 = 11 -Step #37 - lchan.rqd_ta (before) = 37 - toa256 (before) = 2873 / 256 = 11 lchan.rqd_ta (after) = 38 toa256 (after) = 2617 / 256 = 10 -Step #38 +Step #19 lchan.rqd_ta (before) = 38 toa256 (before) = 2617 / 256 = 10 - lchan.rqd_ta (after) = 39 - toa256 (after) = 2361 / 256 = 9 -Step #39 - lchan.rqd_ta (before) = 39 - toa256 (before) = 2361 / 256 = 9 lchan.rqd_ta (after) = 40 toa256 (after) = 2105 / 256 = 8 -Step #40 +Step #20 lchan.rqd_ta (before) = 40 toa256 (before) = 2105 / 256 = 8 - lchan.rqd_ta (after) = 41 - toa256 (after) = 1849 / 256 = 7 -Step #41 - lchan.rqd_ta (before) = 41 - toa256 (before) = 1849 / 256 = 7 lchan.rqd_ta (after) = 42 toa256 (after) = 1593 / 256 = 6 -Step #42 +Step #21 lchan.rqd_ta (before) = 42 toa256 (before) = 1593 / 256 = 6 - lchan.rqd_ta (after) = 43 - toa256 (after) = 1337 / 256 = 5 -Step #43 - lchan.rqd_ta (before) = 43 - toa256 (before) = 1337 / 256 = 5 lchan.rqd_ta (after) = 44 toa256 (after) = 1081 / 256 = 4 -Step #44 +Step #22 lchan.rqd_ta (before) = 44 toa256 (before) = 1081 / 256 = 4 - lchan.rqd_ta (after) = 45 - toa256 (after) = 825 / 256 = 3 -Step #45 - lchan.rqd_ta (before) = 45 - toa256 (before) = 825 / 256 = 3 lchan.rqd_ta (after) = 46 toa256 (after) = 569 / 256 = 2 -Step #46 +Step #23 lchan.rqd_ta (before) = 46 toa256 (before) = 569 / 256 = 2 - lchan.rqd_ta (after) = 47 - toa256 (after) = 313 / 256 = 1 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #24 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #25 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #26 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #27 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #28 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #29 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #30 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #31 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #32 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #33 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #34 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #35 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #36 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #37 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #38 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #39 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #40 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #41 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #42 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #43 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #44 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #45 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #46 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 47 - toa256 (before) = 313 / 256 = 1 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 lchan.rqd_ta (after) = 48 toa256 (after) = 57 / 256 = 0 Step #48 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-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 Sep 9 17:31:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 17:31:56 +0000 Subject: Change in osmo-bts[master]: lchan: Move TA CTRL param to its own substruct References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25435 ) Change subject: lchan: Move TA CTRL param to its own substruct ...................................................................... lchan: Move TA CTRL param to its own substruct Field is renamed to look similar to similar fields in power control loop. This is a preparation commit, next one will add functionality to skip SACCH blocksi (P_CON_INTERVAL). Related: SYS#5371 Change-Id: I169ce58ab827e38b64f4b15f935097a9118fa118 --- M include/osmo-bts/gsm_data.h M src/common/handover.c M src/common/l1sap.c M src/common/rsl.c M src/common/ta_control.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-virtual/l1_if.c M tests/ta_control/ta_control_test.c M tests/ta_control/ta_control_test.ok 9 files changed, 269 insertions(+), 263 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/25435/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 33cb2af..e23497f 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -254,6 +254,11 @@ uint8_t max; }; +struct lchan_ta_ctrl_state { + /* Currently requested TA */ + uint8_t current; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -288,8 +293,6 @@ struct osmo_rtp_socket *rtp_socket; } abis_ip; - uint8_t rqd_ta; - char *name; /* For handover, activation is described in 3GPP TS 48.058 4.1.3 and 4.1.4: @@ -403,6 +406,9 @@ /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; + /* TA Control Loop */ + struct lchan_ta_ctrl_state ta_ctrl; + /* MS/BS power control state */ struct lchan_power_ctrl_state ms_power_ctrl; struct lchan_power_ctrl_state bs_power_ctrl; diff --git a/src/common/handover.c b/src/common/handover.c index 888649d..922c514 100644 --- a/src/common/handover.c +++ b/src/common/handover.c @@ -51,7 +51,7 @@ gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); gh->proto_discr = GSM48_PDISC_RR; gh->msg_type = GSM48_MT_RR_HANDO_INFO; - msgb_put_u8(msg, lchan->rqd_ta); + msgb_put_u8(msg, lchan->ta_ctrl.current); rsl_rll_push_l3(msg, RSL_MT_UNIT_DATA_REQ, gsm_lchan2chan_nr(lchan), 0x00, 0); @@ -111,7 +111,7 @@ "TA=%u, ref=%u\n", gsm_lchant_name(lchan->type), acc_delay, ra); /* Set timing advance */ - lchan->rqd_ta = acc_delay; + lchan->ta_ctrl.current = acc_delay; lchan->want_dl_sacch_active = true; /* Stop handover detection, wait for valid frame */ @@ -123,7 +123,7 @@ } /* Send HANDover DETect to BSC */ - rsl_tx_hando_det(lchan, &lchan->rqd_ta); + rsl_tx_hando_det(lchan, &lchan->ta_ctrl.current); /* Send PHYS INFO */ lchan->ho.phys_info_count = 1; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 92abbff..2e122e3 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1186,7 +1186,7 @@ p[0] = lchan->ms_power_ctrl.current; if (lchan->repeated_ul_sacch_active) p[0] |= 0x40; /* See also: 3GPP TS 44.004, section 7.1 */ - p[1] = lchan->rqd_ta; + p[1] = lchan->ta_ctrl.current; le = &lchan->lapdm_ch.lapdm_acch; if (lchan->repeated_acch_capability.dl_sacch) { /* Check if MS requests SACCH repetition and update state accordingly */ @@ -1605,7 +1605,7 @@ rsl_tx_meas_res(lchan, NULL, 0, le); radio_link_timeout(lchan, true); - lchan_ms_ta_ctrl(lchan, lchan->rqd_ta, lchan->meas.ms_toa256); + lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi, data_ind->lqual_cb); } return -EINVAL; diff --git a/src/common/rsl.c b/src/common/rsl.c index f585ec4..ca40e49 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1512,7 +1512,7 @@ memset(&lchan->ho, 0, sizeof(lchan->ho)); memset(&lchan->ms_power_ctrl, 0, sizeof(lchan->ms_power_ctrl)); memset(&lchan->bs_power_ctrl, 0, sizeof(lchan->bs_power_ctrl)); - lchan->rqd_ta = 0; + lchan->ta_ctrl.current = 0; copy_sacch_si_to_lchan(lchan); memset(&lchan->tch, 0, sizeof(lchan->tch)); } @@ -1721,7 +1721,7 @@ } /* 9.3.24 Timing Advance */ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) - lchan->rqd_ta = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); + lchan->ta_ctrl.current = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); /* 9.3.31 (TLV) MS Power Parameters IE (vendor specific) */ if ((ie = TLVP_GET(&tp, RSL_IE_MS_POWER_PARAM)) != NULL) { diff --git a/src/common/ta_control.c b/src/common/ta_control.c index 969b770..fb33ff2 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -72,20 +72,20 @@ if (new_ta > TA_MAX) new_ta = TA_MAX; - if (lchan->rqd_ta == (uint8_t)new_ta) { + if (lchan->ta_ctrl.current == (uint8_t)new_ta) { LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, "Keeping current TA at %u: TOA was %d\n", - lchan->rqd_ta, toa256); + lchan->ta_ctrl.current, toa256); return; } LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s TA %u => %u: TOA was too %s (%d)\n", - (uint8_t)new_ta > lchan->rqd_ta ? "Raising" : "Lowering", - lchan->rqd_ta, (uint8_t)new_ta, - (uint8_t)new_ta > lchan->rqd_ta ? "late" : "early", + (uint8_t)new_ta > lchan->ta_ctrl.current ? "Raising" : "Lowering", + lchan->ta_ctrl.current, (uint8_t)new_ta, + (uint8_t)new_ta > lchan->ta_ctrl.current ? "late" : "early", toa256); /* store the resulting new TA in the lchan */ - lchan->rqd_ta = (uint8_t)new_ta; + lchan->ta_ctrl.current = (uint8_t)new_ta; } diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 5b48b2e..1e2f89d 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -459,7 +459,7 @@ lac->LchId.bySAPI = cmd->sapi; lac->LchId.byDirection = cmd->dir; - lac->Config.byTimingAdvance = lchan->rqd_ta; + lac->Config.byTimingAdvance = lchan->ta_ctrl.current; lac->Config.byBSIC = lchan->ts->trx->bts->bsic; if ((rc = lchan2lch_par(lchan, &lac->Config)) != 0) { talloc_free(msg); diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index 444d6ad..a4a81bd 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -320,11 +320,11 @@ float ber = n_bits_total==0 ? 1.0 : (float)n_errors / (float)n_bits_total; DEBUGPFN(DMEAS, fn, "RX L1 frame %s chan_nr=0x%02x MS pwr=%ddBm rssi=%.1f dBFS " - "ber=%.2f%% (%d/%d bits) L1_ta=%d rqd_ta=%d toa=%.2f\n", + "ber=%.2f%% (%d/%d bits) L1_ta=%d ta_ctrl.current=%d toa=%.2f\n", gsm_lchan_name(lchan), chan_nr, ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), - rssi, ber*100, n_errors, n_bits_total, lchan->meas.l1_info.ta, lchan->rqd_ta, toa); + rssi, ber*100, n_errors, n_bits_total, lchan->meas.l1_info.ta, lchan->ta_ctrl.current, toa); - l1if_fill_meas_res(&l1sap, chan_nr, lchan->rqd_ta + toa, ber, rssi, fn); + l1if_fill_meas_res(&l1sap, chan_nr, lchan->ta_ctrl.current + toa, ber, rssi, fn); return l1sap_up(trx, &l1sap); } diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 12305cb..200fd31 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -40,18 +40,18 @@ for (i = 0; i < steps; i++) { printf("Step #%u\n", i); - printf(" lchan.rqd_ta (before) = %u\n", lchan.rqd_ta); + printf(" lchan.ta_ctrl.current (before) = %u\n", lchan.ta_ctrl.current); printf(" toa256 (before) = %u / 256 = %u\n", toa256, toa256 / 256); - rqd_ta_before = lchan.rqd_ta; + rqd_ta_before = lchan.ta_ctrl.current; lchan_ms_ta_ctrl(&lchan, rqd_ta_before, toa256); - rqd_ta_after = lchan.rqd_ta; + rqd_ta_after = lchan.ta_ctrl.current; toa256 -= (rqd_ta_after - rqd_ta_before) * 256; - printf(" lchan.rqd_ta (after) = %u\n", lchan.rqd_ta); + printf(" lchan.ta_ctrl.current (after) = %u\n", lchan.ta_ctrl.current); printf(" toa256 (after) = %u / 256 = %u\n", toa256, toa256 / 256); } diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok index 79de8ad..a158675 100644 --- a/tests/ta_control/ta_control_test.ok +++ b/tests/ta_control/ta_control_test.ok @@ -1,609 +1,609 @@ toa256_start = 4096 / 256 = 16, steps = 20 Step #0 - lchan.rqd_ta (before) = 0 + lchan.ta_ctrl.current (before) = 0 toa256 (before) = 4096 / 256 = 16 - lchan.rqd_ta (after) = 2 + lchan.ta_ctrl.current (after) = 2 toa256 (after) = 3584 / 256 = 14 Step #1 - lchan.rqd_ta (before) = 2 + lchan.ta_ctrl.current (before) = 2 toa256 (before) = 3584 / 256 = 14 - lchan.rqd_ta (after) = 4 + lchan.ta_ctrl.current (after) = 4 toa256 (after) = 3072 / 256 = 12 Step #2 - lchan.rqd_ta (before) = 4 + lchan.ta_ctrl.current (before) = 4 toa256 (before) = 3072 / 256 = 12 - lchan.rqd_ta (after) = 6 + lchan.ta_ctrl.current (after) = 6 toa256 (after) = 2560 / 256 = 10 Step #3 - lchan.rqd_ta (before) = 6 + lchan.ta_ctrl.current (before) = 6 toa256 (before) = 2560 / 256 = 10 - lchan.rqd_ta (after) = 8 + lchan.ta_ctrl.current (after) = 8 toa256 (after) = 2048 / 256 = 8 Step #4 - lchan.rqd_ta (before) = 8 + lchan.ta_ctrl.current (before) = 8 toa256 (before) = 2048 / 256 = 8 - lchan.rqd_ta (after) = 10 + lchan.ta_ctrl.current (after) = 10 toa256 (after) = 1536 / 256 = 6 Step #5 - lchan.rqd_ta (before) = 10 + lchan.ta_ctrl.current (before) = 10 toa256 (before) = 1536 / 256 = 6 - lchan.rqd_ta (after) = 12 + lchan.ta_ctrl.current (after) = 12 toa256 (after) = 1024 / 256 = 4 Step #6 - lchan.rqd_ta (before) = 12 + lchan.ta_ctrl.current (before) = 12 toa256 (before) = 1024 / 256 = 4 - lchan.rqd_ta (after) = 14 + lchan.ta_ctrl.current (after) = 14 toa256 (after) = 512 / 256 = 2 Step #7 - lchan.rqd_ta (before) = 14 + lchan.ta_ctrl.current (before) = 14 toa256 (before) = 512 / 256 = 2 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #8 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #9 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #10 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #11 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #12 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #13 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #14 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #16 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #17 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #18 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #19 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Done. toa256_start = 4000 / 256 = 15, steps = 50 Step #0 - lchan.rqd_ta (before) = 0 + lchan.ta_ctrl.current (before) = 0 toa256 (before) = 4000 / 256 = 15 - lchan.rqd_ta (after) = 2 + lchan.ta_ctrl.current (after) = 2 toa256 (after) = 3488 / 256 = 13 Step #1 - lchan.rqd_ta (before) = 2 + lchan.ta_ctrl.current (before) = 2 toa256 (before) = 3488 / 256 = 13 - lchan.rqd_ta (after) = 4 + lchan.ta_ctrl.current (after) = 4 toa256 (after) = 2976 / 256 = 11 Step #2 - lchan.rqd_ta (before) = 4 + lchan.ta_ctrl.current (before) = 4 toa256 (before) = 2976 / 256 = 11 - lchan.rqd_ta (after) = 6 + lchan.ta_ctrl.current (after) = 6 toa256 (after) = 2464 / 256 = 9 Step #3 - lchan.rqd_ta (before) = 6 + lchan.ta_ctrl.current (before) = 6 toa256 (before) = 2464 / 256 = 9 - lchan.rqd_ta (after) = 8 + lchan.ta_ctrl.current (after) = 8 toa256 (after) = 1952 / 256 = 7 Step #4 - lchan.rqd_ta (before) = 8 + lchan.ta_ctrl.current (before) = 8 toa256 (before) = 1952 / 256 = 7 - lchan.rqd_ta (after) = 10 + lchan.ta_ctrl.current (after) = 10 toa256 (after) = 1440 / 256 = 5 Step #5 - lchan.rqd_ta (before) = 10 + lchan.ta_ctrl.current (before) = 10 toa256 (before) = 1440 / 256 = 5 - lchan.rqd_ta (after) = 12 + lchan.ta_ctrl.current (after) = 12 toa256 (after) = 928 / 256 = 3 Step #6 - lchan.rqd_ta (before) = 12 + lchan.ta_ctrl.current (before) = 12 toa256 (before) = 928 / 256 = 3 - lchan.rqd_ta (after) = 14 + lchan.ta_ctrl.current (after) = 14 toa256 (after) = 416 / 256 = 1 Step #7 - lchan.rqd_ta (before) = 14 + lchan.ta_ctrl.current (before) = 14 toa256 (before) = 416 / 256 = 1 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #8 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #9 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #10 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #11 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #12 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #13 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #14 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #16 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #17 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #18 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #19 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #20 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #21 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #22 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #23 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #24 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #25 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #26 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #27 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #28 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #29 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #30 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #31 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #32 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #33 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #34 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #35 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #36 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #37 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #38 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #39 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #40 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #41 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #42 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #43 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #44 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #45 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #46 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #48 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #49 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Done. toa256_start = 12345 / 256 = 48, steps = 50 Step #0 - lchan.rqd_ta (before) = 0 + lchan.ta_ctrl.current (before) = 0 toa256 (before) = 12345 / 256 = 48 - lchan.rqd_ta (after) = 2 + lchan.ta_ctrl.current (after) = 2 toa256 (after) = 11833 / 256 = 46 Step #1 - lchan.rqd_ta (before) = 2 + lchan.ta_ctrl.current (before) = 2 toa256 (before) = 11833 / 256 = 46 - lchan.rqd_ta (after) = 4 + lchan.ta_ctrl.current (after) = 4 toa256 (after) = 11321 / 256 = 44 Step #2 - lchan.rqd_ta (before) = 4 + lchan.ta_ctrl.current (before) = 4 toa256 (before) = 11321 / 256 = 44 - lchan.rqd_ta (after) = 6 + lchan.ta_ctrl.current (after) = 6 toa256 (after) = 10809 / 256 = 42 Step #3 - lchan.rqd_ta (before) = 6 + lchan.ta_ctrl.current (before) = 6 toa256 (before) = 10809 / 256 = 42 - lchan.rqd_ta (after) = 8 + lchan.ta_ctrl.current (after) = 8 toa256 (after) = 10297 / 256 = 40 Step #4 - lchan.rqd_ta (before) = 8 + lchan.ta_ctrl.current (before) = 8 toa256 (before) = 10297 / 256 = 40 - lchan.rqd_ta (after) = 10 + lchan.ta_ctrl.current (after) = 10 toa256 (after) = 9785 / 256 = 38 Step #5 - lchan.rqd_ta (before) = 10 + lchan.ta_ctrl.current (before) = 10 toa256 (before) = 9785 / 256 = 38 - lchan.rqd_ta (after) = 12 + lchan.ta_ctrl.current (after) = 12 toa256 (after) = 9273 / 256 = 36 Step #6 - lchan.rqd_ta (before) = 12 + lchan.ta_ctrl.current (before) = 12 toa256 (before) = 9273 / 256 = 36 - lchan.rqd_ta (after) = 14 + lchan.ta_ctrl.current (after) = 14 toa256 (after) = 8761 / 256 = 34 Step #7 - lchan.rqd_ta (before) = 14 + lchan.ta_ctrl.current (before) = 14 toa256 (before) = 8761 / 256 = 34 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 8249 / 256 = 32 Step #8 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 8249 / 256 = 32 - lchan.rqd_ta (after) = 18 + lchan.ta_ctrl.current (after) = 18 toa256 (after) = 7737 / 256 = 30 Step #9 - lchan.rqd_ta (before) = 18 + lchan.ta_ctrl.current (before) = 18 toa256 (before) = 7737 / 256 = 30 - lchan.rqd_ta (after) = 20 + lchan.ta_ctrl.current (after) = 20 toa256 (after) = 7225 / 256 = 28 Step #10 - lchan.rqd_ta (before) = 20 + lchan.ta_ctrl.current (before) = 20 toa256 (before) = 7225 / 256 = 28 - lchan.rqd_ta (after) = 22 + lchan.ta_ctrl.current (after) = 22 toa256 (after) = 6713 / 256 = 26 Step #11 - lchan.rqd_ta (before) = 22 + lchan.ta_ctrl.current (before) = 22 toa256 (before) = 6713 / 256 = 26 - lchan.rqd_ta (after) = 24 + lchan.ta_ctrl.current (after) = 24 toa256 (after) = 6201 / 256 = 24 Step #12 - lchan.rqd_ta (before) = 24 + lchan.ta_ctrl.current (before) = 24 toa256 (before) = 6201 / 256 = 24 - lchan.rqd_ta (after) = 26 + lchan.ta_ctrl.current (after) = 26 toa256 (after) = 5689 / 256 = 22 Step #13 - lchan.rqd_ta (before) = 26 + lchan.ta_ctrl.current (before) = 26 toa256 (before) = 5689 / 256 = 22 - lchan.rqd_ta (after) = 28 + lchan.ta_ctrl.current (after) = 28 toa256 (after) = 5177 / 256 = 20 Step #14 - lchan.rqd_ta (before) = 28 + lchan.ta_ctrl.current (before) = 28 toa256 (before) = 5177 / 256 = 20 - lchan.rqd_ta (after) = 30 + lchan.ta_ctrl.current (after) = 30 toa256 (after) = 4665 / 256 = 18 Step #15 - lchan.rqd_ta (before) = 30 + lchan.ta_ctrl.current (before) = 30 toa256 (before) = 4665 / 256 = 18 - lchan.rqd_ta (after) = 32 + lchan.ta_ctrl.current (after) = 32 toa256 (after) = 4153 / 256 = 16 Step #16 - lchan.rqd_ta (before) = 32 + lchan.ta_ctrl.current (before) = 32 toa256 (before) = 4153 / 256 = 16 - lchan.rqd_ta (after) = 34 + lchan.ta_ctrl.current (after) = 34 toa256 (after) = 3641 / 256 = 14 Step #17 - lchan.rqd_ta (before) = 34 + lchan.ta_ctrl.current (before) = 34 toa256 (before) = 3641 / 256 = 14 - lchan.rqd_ta (after) = 36 + lchan.ta_ctrl.current (after) = 36 toa256 (after) = 3129 / 256 = 12 Step #18 - lchan.rqd_ta (before) = 36 + lchan.ta_ctrl.current (before) = 36 toa256 (before) = 3129 / 256 = 12 - lchan.rqd_ta (after) = 38 + lchan.ta_ctrl.current (after) = 38 toa256 (after) = 2617 / 256 = 10 Step #19 - lchan.rqd_ta (before) = 38 + lchan.ta_ctrl.current (before) = 38 toa256 (before) = 2617 / 256 = 10 - lchan.rqd_ta (after) = 40 + lchan.ta_ctrl.current (after) = 40 toa256 (after) = 2105 / 256 = 8 Step #20 - lchan.rqd_ta (before) = 40 + lchan.ta_ctrl.current (before) = 40 toa256 (before) = 2105 / 256 = 8 - lchan.rqd_ta (after) = 42 + lchan.ta_ctrl.current (after) = 42 toa256 (after) = 1593 / 256 = 6 Step #21 - lchan.rqd_ta (before) = 42 + lchan.ta_ctrl.current (before) = 42 toa256 (before) = 1593 / 256 = 6 - lchan.rqd_ta (after) = 44 + lchan.ta_ctrl.current (after) = 44 toa256 (after) = 1081 / 256 = 4 Step #22 - lchan.rqd_ta (before) = 44 + lchan.ta_ctrl.current (before) = 44 toa256 (before) = 1081 / 256 = 4 - lchan.rqd_ta (after) = 46 + lchan.ta_ctrl.current (after) = 46 toa256 (after) = 569 / 256 = 2 Step #23 - lchan.rqd_ta (before) = 46 + lchan.ta_ctrl.current (before) = 46 toa256 (before) = 569 / 256 = 2 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #24 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #25 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #26 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #27 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #28 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #29 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #30 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #31 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #32 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #33 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #34 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #35 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #36 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #37 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #38 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #39 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #40 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #41 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #42 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #43 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #44 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #45 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #46 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #48 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #49 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Done. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I169ce58ab827e38b64f4b15f935097a9118fa118 Gerrit-Change-Number: 25435 Gerrit-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 Sep 9 17:31:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 9 Sep 2021 17:31:56 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25436 ) Change subject: Support configuring TA loop SACCH block rate ...................................................................... Support configuring TA loop SACCH block rate Similar to what is already provided for power control loops. However, there's no existing way to communicate TA control parameters from the BSC to the BTS, so implement them locally in BTS vty. Related: SYS#5371 Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b --- M include/osmo-bts/bts_trx.h M include/osmo-bts/gsm_data.h M src/common/ta_control.c M src/common/vty.c M tests/ta_control/ta_control_test.c 5 files changed, 33 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/36/25436/1 diff --git a/include/osmo-bts/bts_trx.h b/include/osmo-bts/bts_trx.h index f033573..e1959c8 100644 --- a/include/osmo-bts/bts_trx.h +++ b/include/osmo-bts/bts_trx.h @@ -30,6 +30,7 @@ uint8_t max_power_backoff_8psk; /* in actual dB OC-2G only */ uint8_t c0_idle_power_red; /* in actual dB OC-2G only */ + uint8_t ta_ctrl_interval; /* 1 step is 2 SACCH periods */ struct trx_power_params power_params; struct gsm_power_ctrl_params *bs_dpc_params; /* BS Dynamic Power Control */ diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index e23497f..d21ec04 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -255,6 +255,8 @@ }; struct lchan_ta_ctrl_state { + /* Number of SACCH blocks to skip */ + int skip_block_num; /* Currently requested TA */ uint8_t current; }; diff --git a/src/common/ta_control.c b/src/common/ta_control.c index fb33ff2..8dba25e 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -23,6 +23,7 @@ /* Related specs: 3GPP TS 45.010 sections 5.5, 5.6 */ #include +#include #include /* 90% of one bit duration in 1/256 symbols: 256*0.9 */ @@ -47,7 +48,16 @@ int16_t new_ta; /* Shall we skip current block based on configured interval? */ - /*TODO: implement P_CON_INTERVAL for TA loop */ + /* TA control interval: how many blocks do we skip? */ + if (lchan->ta_ctrl.skip_block_num-- > 0) + return; + + /* Reset the number of SACCH blocks to be skipped: + * ctrl_interval=0 => 0 blocks to skip, + * ctrl_interval=1 => 1 blocks to skip, + * ctrl_interval=2 => 3 blocks to skip, + * so basically ctrl_interval * 2 - 1. */ + lchan->ta_ctrl.skip_block_num = lchan->ts->trx->ta_ctrl_interval * 2 - 1; int16_t delta_ta = toa256/256; if (toa256 >= 0) { diff --git a/src/common/vty.c b/src/common/vty.c index 62e2d70..9e9c151 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -370,6 +370,8 @@ vty_out(vty, " ms-power-control %s%s", trx->ms_pwr_ctl_soft ? "osmo" : "dsp", VTY_NEWLINE); + vty_out(vty, " ta-control interval %u%s", + trx->ta_ctrl_interval, VTY_NEWLINE); vty_out(vty, " phy %u instance %u%s", pinst->phy_link->num, pinst->num, VTY_NEWLINE); @@ -1009,6 +1011,18 @@ return CMD_SUCCESS; } +DEFUN(cfg_ta_ctrl_interval, cfg_ta_ctrl_interval_cmd, + "ta-control interval <0-31>", + "Set TA control interval\n" + "As in P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds) (default=0, every SACCH block)\n") +{ + struct gsm_bts_trx *trx = vty->index; + + trx->ta_ctrl_interval = atoi(argv[0]); + + return CMD_SUCCESS; +} + DEFUN(cfg_trx_phy, cfg_trx_phy_cmd, "phy <0-255> instance <0-255>", "Configure PHY Link+Instance for this TRX\n" @@ -2487,6 +2501,7 @@ install_element(TRX_NODE, &cfg_trx_pr_step_size_cmd); install_element(TRX_NODE, &cfg_trx_pr_step_interval_cmd); install_element(TRX_NODE, &cfg_trx_ms_power_control_cmd); + install_element(TRX_NODE, &cfg_ta_ctrl_interval_cmd); install_element(TRX_NODE, &cfg_trx_phy_cmd); install_element(ENABLE_NODE, &bts_t_t_l_jitter_buf_cmd); diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 200fd31..253491a 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -26,10 +26,13 @@ #include #include #include +#include void lchan_ms_ta_ctrl_test(int16_t toa256_start, unsigned int steps) { - struct gsm_lchan lchan = { }; + struct gsm_bts_trx trx = { }; + struct gsm_bts_trx_ts ts = { .trx = &trx }; + struct gsm_lchan lchan = { .ts = &ts }; unsigned int i; uint8_t rqd_ta_after; uint8_t rqd_ta_before; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-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 Sep 9 17:36:52 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:36:52 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/25414/1/include/osmocom/core/rate_ctr.h File include/osmocom/core/rate_ctr.h: https://gerrit.osmocom.org/c/libosmocore/+/25414/1/include/osmocom/core/rate_ctr.h at 8 PS1, Line 8: stdatomic > which c standard do we minimally depend on with this? should we check for that in autoconf? gnu11, as set 7 months ago in configure.ac by oliver, just like libosmocore. https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c File src/rate_ctr.c: https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c at 72 PS1, Line 72: s > so every thread gets their own set of rate counters [counter groups]. [?] They should be initialized in one thread, and only used by other threads. There is also the matter of the ratecounter cb if you really wanted to share the list among multiple threads, you probably wouldn't want one _per thread_ operating on a shared list either... So yes, osmotrx needs fixing, if we keep it like this. https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c at 470 PS1, Line 470: osmo_fds > no osmo_fds here? copypasta mistake from the other source file that is handled like this -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 17:36: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 Thu Sep 9 17:41:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:41:40 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25424/8/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25424/8/include/osmocom/mgcp/mgcp.h at 37 PS8, Line 37: pthread > don't we need to add -lpthread or the like? Woops, I accidentally dropped that while abandoning the flags commit, because clang and gcc do different things depending on the compiler version and I didn't feel like pursuiong -werror stuff for hours.. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 17:41:40 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:45:26 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:45:26 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25425 ) Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25425/8/src/libosmo-mgcp/mgcp_e1.c File src/libosmo-mgcp/mgcp_e1.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25425/8/src/libosmo-mgcp/mgcp_e1.c at 37 PS8, Line 37: osmocom > doesn't this break existing setups where you have multiple E1 lines in single-threaded osmo-mgw? I'll give that a second look, since the unthreaded operation was a very recent addition (yesterday) so this commit predates that and assumes that every e1 thread lives in its own single thread. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 17:45:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:03 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context 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/+/25427 to look at the new patch set (#9). Change subject: adjust talloc context ...................................................................... adjust talloc context there is no obvious reason why the endpoints that belong to a trunk would have the (global) config as parent context, you can't really have endpoints without a trunk anyway. Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 --- 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/27/25427/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:03 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer 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/+/25428 to look at the new patch set (#9). Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/28/25428/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:03 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 to look at the new patch set (#9). Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:03 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 to look at the new patch set (#9). Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:03 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#10). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 224 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:03 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:03 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#11). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,329 insertions(+), 442 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:50:46 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:50:46 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... Patch Set 9: > Patch Set 8: > > adjust why/how? I mean yes, it's now trunk and not trunk->cfg. presumably because trunk is going to be thread-local and cfg is global/shared? Needs --verbose done. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 17:50:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:53:31 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer 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/+/25428 to look at the new patch set (#10). Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer There is no obvious reason why we would want to complicate the code by caching pointers, since pointer traversal is probably not a performance bottleneck, and if it is we should rather take a look at our dozens of linked lists first.. Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/28/25428/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:53:31 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 to look at the new patch set (#10). Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:53:31 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 to look at the new patch set (#10). Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/10 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:53:31 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#11). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 224 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/11 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:53:31 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#12). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,329 insertions(+), 442 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/12 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:53:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:53:40 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 10: done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 17:53:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 17:56:10 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 17:56:10 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 10: I was actually looking at how you solved this in libosmocore:select.c:osmo_fd_fill_fds and this is what you did :p -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Thu, 09 Sep 2021 17:56:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 18:04:30 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 18:04:30 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 to look at the new patch set (#9). Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... globally lock the portrange when trying to grab a port to prep for multithreading Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 --- M configure.ac M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_protocol.c 3 files changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/25424/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 9 19:19:05 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 9 Sep 2021 19:19:05 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk 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/+/25432 to look at the new patch set (#14). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M include/osmocom/mgcp/osmux.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 18 files changed, 1,329 insertions(+), 442 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/14 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:01:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:01:01 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 1: Can you explain why is this needed? and why we didn't need it before? Please add some description. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:01:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:06:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:06:53 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c File src/rate_ctr.c: https://gerrit.osmocom.org/c/libosmocore/+/25414/1/src/rate_ctr.c at 473 PS1, Line 473: INIT_LLIST_HEAD(&rate_ctr_groups); why is this needed? I see the rate_ctr_init() API already existed before. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:06:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:10:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:10:48 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 1: Code-Review-1 osmo-trx already does this properly, check it. Threads are created later in time, and they pick up correct cpu affinity configs by setting its own thread name and calling osmo_cpu_sched_vty_apply_localthread(). So I'm not sure what do we win with this patch. Marking -1 until you can explain me. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:10:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:12:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:12:18 +0000 Subject: Change in osmo-mgw[master]: add vscode stuff to gitignore In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25416 ) Change subject: add vscode stuff to gitignore ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If3cfb71700929aa63df7f4f7f89f5392ba94c77e Gerrit-Change-Number: 25416 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:12:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:12:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:12:40 +0000 Subject: Change in osmo-mgw[master]: fix missing includes and forward declarations In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25418 ) Change subject: fix missing includes and forward declarations ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I669e475f7ab74abef85f0f6194cc37db04af62e3 Gerrit-Change-Number: 25418 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:12:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:13:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:13:10 +0000 Subject: Change in osmo-mgw[master]: rename do_retransmission In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25419 ) Change subject: rename do_retransmission ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I5513e0ad15db4a0629f4e0348fc3e84d9972259a Gerrit-Change-Number: 25419 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:13: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 Sep 10 11:14:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:14:19 +0000 Subject: Change in osmo-mgw[master]: mgcp_sdp: fix potential leak In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25420 ) Change subject: mgcp_sdp: fix potential leak ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31527b54f602634024a0b687eef26a9b29354282 Gerrit-Change-Number: 25420 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:14:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:21:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:21:22 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 5: Code-Review+1 (3 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_codec.c File src/libosmo-mgcp/mgcp_codec.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_codec.c at 179 PS5, Line 179: strncpy(codec->audio_name, audio_name, sizeof(codec->audio_name)); osmo_strlcpy https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_codec.c at 286 PS5, Line 286: if (!strlen(codec->subtype_name)) if (codec->subtype_name[0] == '\0') https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_sdp.c File src/libosmo-mgcp/mgcp_sdp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_sdp.c at 442 PS5, Line 442: strlen(rtp->codecs[i].subtype_name) ? rtp->codecs[i].subtype_name : "unknown"); rtp->codecs[i].subtype_name[0] != '\0' ? rtp->codecs[i].subtype_name : "unknown" -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:21:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:24:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:24:41 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25422/5/src/libosmo-mgcp/mgcp_ratectr.c File src/libosmo-mgcp/mgcp_ratectr.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25422/5/src/libosmo-mgcp/mgcp_ratectr.c at 190 PS5, Line 190: static atomic_uint crcx_rate_ctr_index = 0; Am I crazy or having 1 index variable here is enough? Hence only 1 atomic inc instead of 5. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:24: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 Fri Sep 10 11:26:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:26:16 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25423 ) Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:26:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 11:32:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:32:13 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... Patch Set 9: (10 comments) strlen party!!!! Let's rename MGW to SCW: String Counting Gateway https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/include/osmocom/mgcp/mgcp.h at 97 PS9, Line 97: /* addr or NULL to fall-back to default */ "addr or empty" https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_network.c at 138 PS9, Line 138: if (!strlen(bind_addr)) bind_addr[0] == '\0' https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_network.c at 141 PS9, Line 141: if (strlen(bind_addr)) { bind_addr[0] != '\0' https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_protocol.c at 276 PS9, Line 276: const char *addr = strlen(endp->cfg->local_ip) ? endp->cfg->local_ip : conn->end.local_addr; endp->cfg->local_ip[0] != '\0' We have better stuff to do than counting lengths of strings everywhere for no good use. https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_vty.c at 68 PS9, Line 68: if (strlen(g_cfg->local_ip)) [0] != '\0' https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_vty.c at 75 PS9, Line 75: if (strlen(g_cfg->net_ports.bind_addr_v4)) same https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_vty.c at 78 PS9, Line 78: if (strlen(g_cfg->net_ports.bind_addr_v6)) same https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_vty.c at 1749 PS9, Line 1749: if (!strlen(g_cfg->source_addr)) { same https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/osmo-mgw/mgw_main.c File src/osmo-mgw/mgw_main.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/osmo-mgw/mgw_main.c at 372 PS9, Line 372: if (strlen(cfg->call_agent_addr)) same https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/osmo-mgw/mgw_main.c at 377 PS9, Line 377: cfg->call_agent_addr, strlen(cfg->call_agent_addr) ? 2727 : 0, flags); same -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11: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 Fri Sep 10 11:36:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:36:30 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25425 ) Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... Patch Set 9: One trunk can only have one line? is that correct? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:36: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 Fri Sep 10 11:37:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:37:09 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... Patch Set 10: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 10 Sep 2021 11:37: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 Sep 10 11:38:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 11:38:45 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... Patch Set 11: would be great if you cou explain in the commit why is this needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 11:38:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 12:11:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 12:11:28 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25431 ) Change subject: add a lock-free bounded spsc interthread queue ...................................................................... Patch Set 12: (8 comments) Please again, explain in the commit description why is this needed and how will it be used within osmo-mgw. It may be useful to move this kind of generic queue into libomoscore? https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12//COMMIT_MSG at 7 PS12, Line 7: add a lock-free bounded spsc interthread queue spsc? https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/include/osmocom/mgcp/mgcp_threads_queue.h File include/osmocom/mgcp/mgcp_threads_queue.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/include/osmocom/mgcp/mgcp_threads_queue.h at 26 PS12, Line 26: struct spsc { Write "Single Producer Single Consumer" somewhere please. https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/include/osmocom/mgcp/mgcp_threads_queue.h at 35 PS12, Line 35: void *buf; some documentation for the fields would be great too. https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/include/osmocom/mgcp/mgcp_threads_queue.h at 39 PS12, Line 39: struct qchan { Same here. https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/src/libosmo-mgcp/mgcp_threads_queue.c File src/libosmo-mgcp/mgcp_threads_queue.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/src/libosmo-mgcp/mgcp_threads_queue.c at 52 PS12, Line 52: struct spsc *q = calloc(1, sizeof(struct spsc) + sizeof(uintptr_t) * count); talloc_zero? https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/src/libosmo-mgcp/mgcp_threads_queue.c at 59 PS12, Line 59: q->buf = calloc(count, size_per_buf); talloc? https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/src/libosmo-mgcp/mgcp_threads_queue.c at 117 PS12, Line 117: bool spsc_pop(struct spsc *q, void *elem) All this file needs a lots more documentation in general. https://gerrit.osmocom.org/c/osmo-mgw/+/25431/12/src/libosmo-mgcp/mgcp_threads_queue.c at 139 PS12, Line 139: struct qchan q; // = calloc(1, sizeof(struct qchan)); this calloc comment can be dropped? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 12:11:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 12:38:49 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 12:38:49 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... Patch Set 1: Because it can't be statically initialized with LLIST_HEAD and this keeps the existing behavior, it's initialized for the main thread without doing anything, so nothing changes. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 12:38:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 12:48:54 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 12:48:54 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 1: OsmoMGW> show cpu-sched threads Thread list for PID 5186: TID: 5186, NAME: 'main', cpu-affinity: 0x7f TID: 5192, NAME: 'v_0_0', cpu-affinity: 0x7f ... OsmoMGW(config-cpu-sched)# cpu-affinity all 0x1 OsmoMGW(config-cpu-sched)# cpu-affinity v_0_0 0x2 OsmoMGW(config-cpu-sched)# write restart mgw 20210910144637671 DLGLOBAL <0002> cpu_sched_vty.c:363 Setting CPU affinity mask for tid 8540 to: 0x1 Error occurred during reading the below line: cpu-affinity v_0_0 0x2 % Failed parsing target thread v_0_0 What is the user supposed to do at this point? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 12:48: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 Sep 10 12:53:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 12:53:13 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25413 to look at the new patch set (#2). Change subject: vty: allow flushing ...................................................................... vty: allow flushing It was so far sufficient to wait for the buffers to drain at some random point in time, but this is not always the case, sometimes it is important that the output is flushed immediately. Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/25413/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen 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 Fri Sep 10 12:53:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 12:53:13 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic 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/+/25414 to look at the new patch set (#2). Change subject: ratectr: make atomic ...................................................................... ratectr: make atomic This allows usage from different threads - (de)allocation is not threadsafe! Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 --- M include/osmocom/core/rate_ctr.h M src/rate_ctr.c 2 files changed, 15 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/25414/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 12:53:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 12:53:13 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25415 to look at the new patch set (#2). Change subject: vty sched: add api to force deferred applying ...................................................................... vty sched: add api to force deferred applying Some applications might not yet have threads at config parsing time, so applying to threads just does not work, allow enforcing this with a new api call. This is not reflected in the config file, since this is the only way this works, so let's not confuse the user with those details by storing flags or modifying the settings. Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 --- M include/osmocom/vty/cpu_sched_vty.h M src/vty/cpu_sched_vty.c 2 files changed, 15 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/15/25415/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen 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 Sep 10 13:02:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 13:02:34 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25432 ) Change subject: Add multithreading for the virtual trunk ...................................................................... Patch Set 14: Code-Review-1 (29 comments) General commnets: This really needs further improvement imho. * Properly split the global trunk config and per-thread worker/information. Proper naming for such structures * Drop the osmux changes or at least move them to a new (previous?) commit * Move changes adding void *ctx to msg related functions to a new (previous?) commit * A second pass over all changes to fix style related stuff. Also, iiuc you are splitting trunks in threads using chunks (offset+size). However, allocation of endpoint to use probably happens incrementally, hence first 1 thread is filled, then the second one, etc. The easiest would probably be doing an endp_index % num_workers. Another option is to track current load of all workers and select the one with less load (not sure if you are doing that already, I saw you were counting the free endpoints for each trunk somewhere). https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14//COMMIT_MSG at 37 PS14, Line 37: - the mgcp msg queue for mgcp commands, which the thread then ansers by answers https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h at 160 PS14, Line 160: struct global_osmux_options_t { no need to set a type name for the struct? This can be done in a separate commit btw. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h at 179 PS14, Line 179: } global_osmux_options; AFAIU everything in this mgcp_config is global, no need to specify it here. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h at 205 PS14, Line 205: struct to_trunkthread_mgcp_msg; Did you think aobut using "worker" terminology instead of trunkthread and similar? "worker_mgcp_msg". https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h at 206 PS14, Line 206: struct per_thread_info; worker_info? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h at 208 PS14, Line 208: struct msgb *mgcp_submit_message_to_trunkthread(struct mgcp_config *cfg, struct to_trunkthread_mgcp_msg* w); mgcp_submit_message_to_worker(), etc. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp.h at 209 PS14, Line 209: struct msgb* thread_handle_mgcp_message(struct to_trunkthread_mgcp_msg* w, struct per_thread_info *thread_info); worker_handle_mgcp_message(), etc. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h File include/osmocom/mgcp/mgcp_threads.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 33 PS14, Line 33: int get_trunk_thread_for_ep_name(const char *epname, struct mgcp_trunk *thread_parent_trunk); get_worker_for_ep_name(const char *epname, ...), etc. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 76 PS14, Line 76: union { call union "msg", then drop "msg" suffix from all types. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 77 PS14, Line 77: struct cfgmsg { all these structs can be anonymous since I guess they are never used alone. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 110 PS14, Line 110: } x; x? perhaps something like "hdr", "info",? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 115 PS14, Line 115: struct per_thread_info { struct worker? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 117 PS14, Line 117: struct mgcp_trunk *this_trunk; /* talloced, used as ctx */ IMHO having a mgcp_trunk as parent and the child being the same type looks REALLY strange and suspicious of data model not being proper. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_threads.h at 127 PS14, Line 127: void thread_push_msg(struct mgcp_trunk *trunk, unsigned int threadnum, void *elem); worker_push_msg https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_trunk.h File include/osmocom/mgcp/mgcp_trunk.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/include/osmocom/mgcp/mgcp_trunk.h at 22 PS14, Line 22: struct mgcp_trunk { I have the feeling all this is really confusing and it should be spit. Perhaps mgcp_trunk_cfg & mgcp_trunk_worker, or similar. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_osmux.c File src/libosmo-mgcp/mgcp_osmux.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_osmux.c at 49 PS14, Line 49: void osmux_set_global_opt(struct global_osmux_options_t *ptr) { Is this really needed? mgcp_cfg is probably already global? In any case it could be split into another commit if really needed. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c at 186 PS14, Line 186: static struct msgb *create_resp(void* msgctx, struct mgcp_endpoint *endp, int code, This new msgctx pointer being passed all around can probably be done in a previous/next commit. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c at 330 PS14, Line 330: #define pdata w->x.pdata use pointer variables? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c at 336 PS14, Line 336: if (rc < sizeof(rq.name)-1) { ASsigning w->x.msglen and then checking against rc here looks really weird and confusing. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c at 341 PS14, Line 341: memcpy(rq.name, (const char *)&w->msg[0], sizeof(rq.name)-1); osmo_strlcpy? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c at 399 PS14, Line 399: pdata.trans = (char *)(pdata.trans - &w->msg[0]); using the define here rather than w->x.pdata looks even more confusing. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_protocol.c at 405 PS14, Line 405: if (strcmp(rq.name, "CRCX") == 0){ /* crcx -> pick ONE thread that has free endpoints */ spacing ){ https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_stat.c File src/libosmo-mgcp/mgcp_stat.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_stat.c at 36 PS14, Line 36: __attribute__((no_sanitize("integer"))) what? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c File src/libosmo-mgcp/mgcp_threads.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c at 44 PS14, Line 44: #define GETF(yy, zz) \ This stuff is already quite complex to follow, I bet having 4 3line functions takes less space than what you wrote here. Or write 4 one-line macros. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c at 60 PS14, Line 60: ; ; in same line as while? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c at 342 PS14, Line 342: void *split_per_thead(void *info) worker_loop? worker_main? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c at 416 PS14, Line 416: while (1) { what? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c at 427 PS14, Line 427: prctl(PR_SET_NAME, "main", NULL, NULL, NULL); pthread_setname_np()? https://gerrit.osmocom.org/c/osmo-mgw/+/25432/14/src/libosmo-mgcp/mgcp_threads.c at 453 PS14, Line 453: else We should keep osmo_select_main_ctx() in main() imho. Actually, it is kept there if trunk->use_threads is used, but otherwise the one in split_per_thead() is used for the main thread, which looks really confusing. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 13:02: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 Fri Sep 10 13:04:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 13:04:09 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 11: Code-Review+1 So basically you are "s/endp->cfg/endp->trunk->cfg/g" here right? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 10 Sep 2021 13:04:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 13:08:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 13:08:09 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_sdp.c File src/libosmo-mgcp/mgcp_sdp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_sdp.c at 442 PS5, Line 442: strlen(rtp->codecs[i].subtype_name) ? rtp->codecs[i].subtype_name : "unknown"); > rtp->codecs[i].subtype_name[0] != '\0' ? rtp->codecs[i]. [?] This is the kind of shit that makes our code hard to read and difficult to maintain, hand-optimized "smart" replacements instead of just calling the damn strlen function, if we at some point decide that strlen calls are a performance bottleneck AFTER PROFILING THE CODE we can still change this. By the way, we have a one-line function in a shared library that increments a rate counter (integer++) that can never be inlined due to being in a shared library. THAT is where performance suffers. Actually I'm gonna fix this right now... -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 13:08:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 13:34:29 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 13:34:29 +0000 Subject: Change in libosmocore[master]: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25437 ) Change subject: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header ...................................................................... rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header rate_ctr_add merely increments a number, so hiding this in a shared library means the compiler can't just inline it, there will always be a function call into that lib just for icrementing a value. This also applies to rate_ctr_group_get_ctr. Moving the funcs to the header fixes that. Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83 --- M include/osmocom/core/rate_ctr.h M src/rate_ctr.c 2 files changed, 13 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/37/25437/1 diff --git a/include/osmocom/core/rate_ctr.h b/include/osmocom/core/rate_ctr.h index ffaae91..558c77a 100644 --- a/include/osmocom/core/rate_ctr.h +++ b/include/osmocom/core/rate_ctr.h @@ -77,14 +77,25 @@ } void rate_ctr_group_set_name(struct rate_ctr_group *grp, const char *name); -struct rate_ctr *rate_ctr_group_get_ctr(struct rate_ctr_group *grp, unsigned int idx); +/*! Get rate counter from group, identified by index idx + * \param[in] grp Rate counter group + * \param[in] idx Index of the counter to retrieve + * \returns rate counter requested + */ +static struct rate_ctr *rate_ctr_group_get_ctr(struct rate_ctr_group *grp, unsigned int idx) +{ + return &grp->ctr[idx]; +} void rate_ctr_group_free(struct rate_ctr_group *grp); /*! Increment the counter by \a inc * \param ctr \ref rate_ctr to increment * \param inc quantity to increment \a ctr by */ -void rate_ctr_add(struct rate_ctr *ctr, int inc); +static void rate_ctr_add(struct rate_ctr *ctr, int inc) +{ + ctr->current += inc; +} /*! Increment the counter by 1 * \param ctr \ref rate_ctr to increment */ diff --git a/src/rate_ctr.c b/src/rate_ctr.c index aa02005..0400bfe 100644 --- a/src/rate_ctr.c +++ b/src/rate_ctr.c @@ -265,16 +265,6 @@ talloc_free(grp); } -/*! Get rate counter from group, identified by index idx - * \param[in] grp Rate counter group - * \param[in] idx Index of the counter to retrieve - * \returns rate counter requested - */ -struct rate_ctr *rate_ctr_group_get_ctr(struct rate_ctr_group *grp, unsigned int idx) -{ - return &grp->ctr[idx]; -} - /*! Set a name for the group of counters be used instead of index value at report time. * \param[in] grp Rate counter group @@ -285,12 +275,6 @@ osmo_talloc_replace_string(grp, &grp->name, name); } -/*! Add a number to the counter */ -void rate_ctr_add(struct rate_ctr *ctr, int inc) -{ - ctr->current += inc; -} - /*! Return the counter difference since the last call to this function */ int64_t rate_ctr_difference(struct rate_ctr *ctr) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83 Gerrit-Change-Number: 25437 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 13:48:16 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 13:48:16 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... Patch Set 9: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/9/src/libosmo-mgcp/mgcp_protocol.c at 276 PS9, Line 276: const char *addr = strlen(endp->cfg->local_ip) ? endp->cfg->local_ip : conn->end.local_addr; > endp->cfg->local_ip[0] != '\0' [?] No, we have better things to do that trying to optimize string length counting and instead having 23451234512345 useless pointes everywhere that clutter the talloc tree and are smaller than any related talloc header. Having embedded strings means we can just copy a struct, having useless pointers everywhere means we can never just copy a struct and have to deal with tons of useless pointers everyhwere. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 13:48: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 Sep 10 13:48:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 13:48:27 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 11: agree with Harald -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 13:48: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 Fri Sep 10 13:50:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 13:50:54 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... Patch Set 9: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 13: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 Fri Sep 10 13:52:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 13:52:44 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25413/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/25413/2//COMMIT_MSG at 11 PS2, Line 11: important that the output is flushed immediately. why? can you provide an example scenario? That's the kind of information I'm missing. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 13:52:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:00:00 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:00:00 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 2: In case other threads block the main loop and want to ensure attached buffers are flushed so talloc contexts are not mixed. A very specific use case that is not really recommended anywhere else and absolutely not useful to know. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:00: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 Sep 10 14:00:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:00:00 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... Patch Set 2: I'm not sure if this is really the way to go and whether it makes sense (I'm not saying the opposite either). This basically makes rate_ctr groups created in one thread unavailable/invsible to other threads. Which means, for instance, if the user uses the VTY to show the rate counters, only the ones attached to the thread checking the VTY would be displayed/accessible. An alternative would be doing something like it's done in osmo-trx iirc. counters are copied from one thread to another without critical section, and only updated from within main thread. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:00: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 Sep 10 14:05:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:05:00 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: You are missing the "delay" arg there: "cpu-affinity v_0_0 0x2 delay" -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:05: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 Sep 10 14:07:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:07:47 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_sdp.c File src/libosmo-mgcp/mgcp_sdp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25421/5/src/libosmo-mgcp/mgcp_sdp.c at 442 PS5, Line 442: strlen(rtp->codecs[i].subtype_name) ? rtp->codecs[i].subtype_name : "unknown"); > This is the kind of shit that makes our code hard to read and difficult to maintain, hand-optimized [?] If doing [0] != '\0' looks ugly to you, then add a inline function strempty() or alike which does it. I see simply no reason for counting string lengths when the required result is far less costly. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:07:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Hoernchen 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 Sep 10 14:10:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:10:02 +0000 Subject: Change in libosmocore[master]: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25437 ) Change subject: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header ...................................................................... Patch Set 1: Code-Review-1 This is breaking ABI since the symbol is not available anymore. Furthermore, the function was added on purpose to avoid future ABI breakage in the future when changing the contents of the struct (already happened once). -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83 Gerrit-Change-Number: 25437 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:10: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 Sep 10 14:11:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 10 Sep 2021 14:11:28 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:11:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:15:20 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:15:20 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 to look at the new patch set (#12). Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/12 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:16:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:16:04 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 2: > Patch Set 2: > > In case other threads block the main loop and want to ensure attached buffers are flushed so talloc contexts are not mixed. > A very specific use case that is not really recommended anywhere else and absolutely not useful to know. Well precisely since it's a very specific case I think it's worth really understanding and documenting that. I'm sorry but I'm still not following the described scenario. I thought the issue had relation with mixing output strings from different threads? what do you mean with "talloc contexts mixed"? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:16:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:18:59 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:18:59 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: No, I am the user, I am not missing some arcane cfg argument no one told me about that is NECESSARY to make this work AT ALL, because it does not work any other way, which I will discover after restarting. That is precisely why this patch exists. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:18: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 Fri Sep 10 14:25:11 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:25:11 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 5: Feel free to provide perf measurements showing the impact of occasional string counting which consists of checking for 0 with a function call instead of "manually inlining" this, so we know we are spending our time discussing valuable performance issues. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:25:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:26:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:26:48 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: > Patch Set 2: > > No, I am the user, I am not missing some arcane cfg argument no one told me about that is NECESSARY to make this work AT ALL, because it does not work any other way, which I will discover after restarting. > > That is precisely why this patch exists. It's explained in OsmoMGW User Manual "13.2 CPU-Affinity Mask". If there's some wrird behavior when using it interactively over the VTY (those commands are aimed more at be read at startup time), then we can fix behavior in the VTY command by checking if the command is being run interactively or from cfg file. But I see no reason to add a new API, I would avoid that. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:26:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:27:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:27:01 +0000 Subject: Change in libosmocore[master]: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25437 ) Change subject: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header ...................................................................... Patch Set 1: This is precisely what I wanted to hear, we have (hundreds) of thousands of lib function calls to increment integer values because in theory someone might want to mix all kinds of lib versions somewhere somehow so we can't break the abi every few years. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83 Gerrit-Change-Number: 25437 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:27:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:27:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:27:07 +0000 Subject: Change in libosmocore[master]: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header In-Reply-To: References: Message-ID: Hoernchen has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25437 ) Change subject: rate ctr: move rate_ctr_add and rate_ctr_group_get_ctr to header ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib600f39f10d263606f3cb51a25676b56b80dfe83 Gerrit-Change-Number: 25437 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:31:30 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:31:30 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 2: You have more than one thread, one owns the vty an related talloc contexts, the other one does not, but the other one would like to (or rather has to due to libosmocore design) print something on the vty so that other thread has to block the main thread while acessing the vty context and due to the internal buffer handling with talloc instead of threadsafe plain old malloc there might be a mix of different allocation contexts that are not thread safe so the second thread has to ensure the vty output is flushed before unblocking the main thread. Or someone somewhere might just want to flush the damn vty without writing a book about it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:31: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 Fri Sep 10 14:36:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:36:13 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: > Patch Set 2: > > > Patch Set 2: > > > > No, I am the user, I am not missing some arcane cfg argument no one told me about that is NECESSARY to make this work AT ALL, because it does not work any other way, which I will discover after restarting. > > > > That is precisely why this patch exists. > > It's explained in OsmoMGW User Manual "13.2 CPU-Affinity Mask". > > If there's some wrird behavior when using it interactively over the VTY (those commands are aimed more at be read at startup time), then we can fix behavior in the VTY command by checking if the command is being run interactively or from cfg file. But I see no reason to add a new API, I would avoid that. But we still need a way to tell the vty that this software can ONLY do the delayed applying to ensure that flag written to the cfg all the time? Unless you want to turn that flag into something that is silently ignored in case it's missing AND immediately appling the affinity mask does not work. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:36: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 Sep 10 14:39:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:39:10 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate 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/+/25436 to look at the new patch set (#2). Change subject: Support configuring TA loop SACCH block rate ...................................................................... Support configuring TA loop SACCH block rate Similar to what is already provided for power control loops. However, there's no existing way to communicate TA control parameters from the BSC to the BTS, so implement them locally in BTS vty. Related: SYS#5371 Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b --- M include/osmo-bts/bts_trx.h M include/osmo-bts/gsm_data.h M src/common/ta_control.c M src/common/vty.c M tests/osmo-bts.vty M tests/ta_control/ta_control_test.c 6 files changed, 36 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/36/25436/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 14:41:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 14:41:13 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 12: done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:41: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 Sep 10 14:41:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 14:41:57 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... Patch Set 2: Ok thanks for the explanation. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 14:41:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 15:02:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 15:02:27 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25415/2/src/vty/cpu_sched_vty.c File src/vty/cpu_sched_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25415/2/src/vty/cpu_sched_vty.c at 425 PS2, Line 425: if (applynow) { So the problem imho is that your are interactively using a set of VTY commands in the "configure terminal" section which was aimed at be applied/parsed from config file during startup, when only 1 thread exists and other threads are created later. I see 3 possible solutions for your use case I would agree with: 1- Have a new VTY command in the "enable" node which is aimed at interactively (while the program is running) setting/changing the cu affinity of a given (or all) thread. This new command would basically reuse most of the existing code in this function (cfg_sched_cpu_affinity_cmd) with the exception that it wouldn't store config (see line 451), or it would store it temporarily but not written back to cfg file (have a ->temporary=true). 2- You use this same VTY command, using "delay" (since that's what's expected for the thread you want to set), and then, after storing the config, you attempt applying it now too if VTY is in interactive mode: """ if (!applynow || vty->type != VTY_FILE) { rc = my_sched_setaffinity(tid_type, pid, cpuset, cpuset_size); if (rc == -1) vty_oput("%% [delay] Failed to apply the cmd immediately, configuration stored for later use\n") } """ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 15:02:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 15:03:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 10 Sep 2021 15:03:01 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Fri, 10 Sep 2021 15: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 Fri Sep 10 15:19:35 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 15:19:35 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25431 ) Change subject: add a lock-free bounded spsc interthread queue ...................................................................... Patch Set 13: There is no reason to put stuff into libosmocore until there is at least one additional user, which is not the case here. I also do not see what needs explaining, this is a bounded queue as the commits title stares, you can push and pop. Everything that is important is part of the commit message and the comment in the code. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 13 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 15:19:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 15:24:56 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 15:24:56 +0000 Subject: Change in osmo-mgw[master]: configure.ac: fix maybe-uninitialized for clang References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25439 ) Change subject: configure.ac: fix maybe-uninitialized for clang ...................................................................... configure.ac: fix maybe-uninitialized for clang Clang and gcc have different names for this, but the check fails without -Werror since clang only warns about unknown args. The previous check led to a lot of "unknown arg" spam while compiling with clang. Change-Id: Iad6c16beed26d5fe8952d7d5a79a93845c391b48 --- M configure.ac 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/39/25439/1 diff --git a/configure.ac b/configure.ac index 64e2c04..192c012 100644 --- a/configure.ac +++ b/configure.ac @@ -90,7 +90,8 @@ dnl Checks for typedefs, structures and compiler characteristics AX_CHECK_COMPILE_FLAG([-Werror=implicit], [CFLAGS="$CFLAGS -Werror=implicit"]) -AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"]) +AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Werror=sometimes-uninitialized], [CFLAGS="$CFLAGS -Werror=sometimes-uninitialized"],,[-Werror]) AX_CHECK_COMPILE_FLAG([-Werror=memset-transposed-args], [CFLAGS="$CFLAGS -Werror=memset-transposed-args"]) AX_CHECK_COMPILE_FLAG([-Wnull-dereference], [CFLAGS="$CFLAGS -Wnull-dereference"]) AX_CHECK_COMPILE_FLAG([-Werror=sizeof-array-argument], [CFLAGS="$CFLAGS -Werror=sizeof-array-argument"]) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iad6c16beed26d5fe8952d7d5a79a93845c391b48 Gerrit-Change-Number: 25439 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 15:39:04 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 10 Sep 2021 15:39:04 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: No, the problem is that: 1) i use the vty at run time, since it allows discovering existing threads names - a reasonable approach i think? 2) i then just configure affinities for those threads, which at this time still exist - also kind of the obvious thing, since it is convenient? 3) i write the config 4) starting osmo-mgw now fails since the config is invalid, because at _config file parse time_ the threads do not yet exist. For some applications the threads might already exist, for some not, but this is not something the user can or should know. You can't expect users to read the manual and find the one line that says "oh by the way THIS program ALWAYS needs the delay flag when configuring using the vty/editing the file manually", especially if the vty is unaware of this and does not enforce it! -> this patch makes the vty "aware" of this and ensures it just works, all the time, and is idiot proof. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 15:39:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 10 18:21:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 10 Sep 2021 18:21:18 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25415/2/src/vty/cpu_sched_vty.c File src/vty/cpu_sched_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25415/2/src/vty/cpu_sched_vty.c at 425 PS2, Line 425: if (applynow) { Let me clarify some bits about VTY semantics: > So the problem imho is that your are interactively using a set of VTY commands in the "configure terminal" section which was aimed at be applied/parsed from config file during startup [...]. There is no such thing. The "configure" node commands may be used at start-up, but they may also be used later at runtime. We cannot make assumptions about when a user uses them. They use them as they please. All we allow ourselves to do is to apply some changes immediately, and others only at whatever other natural point in time (bts resconnect, etc.), and we document that via attributes. > 1- Have a new VTY command in the "enable" node which is aimed at interactively (while the program is running) setting/changing the cu affinity of a given (or all) thread. This new command would basically reuse most of the existing code in this function (cfg_sched_cpu_affinity_cmd) with the exception that it wouldn't store config (see line 451), or it would store it temporarily but not written back to cfg file (have a ->temporary=true). "enable" style commands don't change persistent configuration. That's what the configure node and its sub-nodes are for. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 10 Sep 2021 18:21:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:57:29 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 12:57:29 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25345 to look at the new patch set (#3). Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... utils: add osmo_str_to_int() and osmo_str_to_int64() Properly converting a string to an integer while validating against all possible errors is not trivial. It is a recurring theme in code review, and there are places in osmo code that do it wrong. End this by providing a simple API, if for nothing else then as an example of how to use strol() / strtoul() / strtoll() / strtoull() in an airtight way. A subsequent patch, adding stat items to the CTRL interface, uses this to properly validate indexes in CTRL variables and convert them to int. Related: SYS#5542 Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 413 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/45/25345/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:58:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:58:20 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 12:58:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:58:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 12:58:31 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 3: i thought it would be much cleaner to leave the positive errno range to stroll and return negative for "our own" error codes. i see no problem with that, but apparently you do, so here you go. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 12: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 Sat Sep 11 12:58:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:58:52 +0000 Subject: Change in libosmocore[master]: vty: allow flushing In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25413 ) Change subject: vty: allow flushing ...................................................................... vty: allow flushing It was so far sufficient to wait for the buffers to drain at some random point in time, but this is not always the case, sometimes it is important that the output is flushed immediately. Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 7 insertions(+), 0 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index 3e6178f..c13f435 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -222,6 +222,7 @@ int vty_read(struct vty *vty); //void vty_time_print (struct vty *, int); void vty_close (struct vty *); +void vty_flush(struct vty *vty); char *vty_get_cwd (void); void vty_log (const char *level, const char *proto, const char *fmt, va_list); int vty_config_lock (struct vty *); diff --git a/src/vty/vty.c b/src/vty/vty.c index a39f268..1ad84f5 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -207,6 +207,12 @@ } } +void vty_flush(struct vty *vty) +{ + if (vty->obuf) + buffer_flush_all(vty->obuf, vty->fd); +} + /*! Close a given vty interface. */ void vty_close(struct vty *vty) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: If984b9ad2eba9f400bc29a7aa8825e241fd1d2a9 Gerrit-Change-Number: 25413 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:59:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:59:37 +0000 Subject: Change in osmo-mgw[master]: configure.ac: fix maybe-uninitialized for clang In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25439 ) Change subject: configure.ac: fix maybe-uninitialized for clang ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iad6c16beed26d5fe8952d7d5a79a93845c391b48 Gerrit-Change-Number: 25439 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 11 Sep 2021 12:59:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:59:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:59:52 +0000 Subject: Change in osmo-mgw[master]: add vscode stuff to gitignore In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25416 ) Change subject: add vscode stuff to gitignore ...................................................................... add vscode stuff to gitignore Change-Id: If3cfb71700929aa63df7f4f7f89f5392ba94c77e --- M .gitignore 1 file changed, 5 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/.gitignore b/.gitignore index 5175438..a72cd36 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,8 @@ doc/manuals/build contrib/osmo-mgw.spec + +#vs code +.cache +.vscode + -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If3cfb71700929aa63df7f4f7f89f5392ba94c77e Gerrit-Change-Number: 25416 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:59:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:59:53 +0000 Subject: Change in osmo-mgw[master]: configure.ac: fix maybe-uninitialized for clang In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25439 ) Change subject: configure.ac: fix maybe-uninitialized for clang ...................................................................... configure.ac: fix maybe-uninitialized for clang Clang and gcc have different names for this, but the check fails without -Werror since clang only warns about unknown args. The previous check led to a lot of "unknown arg" spam while compiling with clang. Change-Id: Iad6c16beed26d5fe8952d7d5a79a93845c391b48 --- M configure.ac 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 64e2c04..192c012 100644 --- a/configure.ac +++ b/configure.ac @@ -90,7 +90,8 @@ dnl Checks for typedefs, structures and compiler characteristics AX_CHECK_COMPILE_FLAG([-Werror=implicit], [CFLAGS="$CFLAGS -Werror=implicit"]) -AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"]) +AX_CHECK_COMPILE_FLAG([-Werror=maybe-uninitialized], [CFLAGS="$CFLAGS -Werror=maybe-uninitialized"],,[-Werror]) +AX_CHECK_COMPILE_FLAG([-Werror=sometimes-uninitialized], [CFLAGS="$CFLAGS -Werror=sometimes-uninitialized"],,[-Werror]) AX_CHECK_COMPILE_FLAG([-Werror=memset-transposed-args], [CFLAGS="$CFLAGS -Werror=memset-transposed-args"]) AX_CHECK_COMPILE_FLAG([-Wnull-dereference], [CFLAGS="$CFLAGS -Wnull-dereference"]) AX_CHECK_COMPILE_FLAG([-Werror=sizeof-array-argument], [CFLAGS="$CFLAGS -Werror=sizeof-array-argument"]) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iad6c16beed26d5fe8952d7d5a79a93845c391b48 Gerrit-Change-Number: 25439 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:59:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:59:53 +0000 Subject: Change in osmo-mgw[master]: fix missing includes and forward declarations In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25418 ) Change subject: fix missing includes and forward declarations ...................................................................... fix missing includes and forward declarations Change-Id: I669e475f7ab74abef85f0f6194cc37db04af62e3 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_msg.h M include/osmocom/mgcp/mgcp_trunk.h 3 files changed, 5 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/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index b6bd7b3..f687bae 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -25,6 +25,7 @@ #include #include +#include struct sockaddr; struct mgcp_conn; diff --git a/include/osmocom/mgcp/mgcp_msg.h b/include/osmocom/mgcp/mgcp_msg.h index 87987d3..9572d39 100644 --- a/include/osmocom/mgcp/mgcp_msg.h +++ b/include/osmocom/mgcp/mgcp_msg.h @@ -25,10 +25,12 @@ #pragma once #include +#include struct mgcp_conn; struct mgcp_parse_data; struct mgcp_endpoint; +struct mgcp_trunk; void mgcp_disp_msg(unsigned char *message, unsigned int len, char *preamble); diff --git a/include/osmocom/mgcp/mgcp_trunk.h b/include/osmocom/mgcp/mgcp_trunk.h index d960428..3f14f97 100644 --- a/include/osmocom/mgcp/mgcp_trunk.h +++ b/include/osmocom/mgcp/mgcp_trunk.h @@ -2,6 +2,8 @@ #include #include +#include + #define LOGPTRUNK(trunk, cat, level, fmt, args...) \ LOGP(cat, level, "trunk:%u " fmt, \ -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I669e475f7ab74abef85f0f6194cc37db04af62e3 Gerrit-Change-Number: 25418 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:59:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:59:53 +0000 Subject: Change in osmo-mgw[master]: rename do_retransmission In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25419 ) Change subject: rename do_retransmission ...................................................................... rename do_retransmission ...because it does not "do" Change-Id: I5513e0ad15db4a0629f4e0348fc3e84d9972259a --- M src/libosmo-mgcp/mgcp_protocol.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/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 88f1bd0..ba80d7d 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -183,7 +183,7 @@ } /* Helper function for do_retransmission() and create_resp() */ -static struct msgb *do_retransmission(const struct mgcp_endpoint *endp) +static struct msgb *create_retransmission_response(const struct mgcp_endpoint *endp) { struct msgb *msg = mgcp_msgb_alloc(); if (!msg) @@ -414,7 +414,7 @@ /* Check if we have to retransmit a response from a previous transaction */ if (pdata.trans && rq.endp->last_trans && strcmp(rq.endp->last_trans, pdata.trans) == 0) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_MSGS_RETRANSMITTED)); - return do_retransmission(rq.endp); + return create_retransmission_response(rq.endp); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I5513e0ad15db4a0629f4e0348fc3e84d9972259a Gerrit-Change-Number: 25419 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 12:59:54 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 12:59:54 +0000 Subject: Change in osmo-mgw[master]: mgcp_sdp: fix potential leak In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25420 ) Change subject: mgcp_sdp: fix potential leak ...................................................................... mgcp_sdp: fix potential leak Change-Id: I31527b54f602634024a0b687eef26a9b29354282 --- M src/libosmo-mgcp/mgcp_sdp.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 0759c96..eabaf53 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -394,8 +394,10 @@ codecs_used = rc; break; case 'c': - if (audio_ip_from_sdp(&rtp->addr, line) < 0) + if (audio_ip_from_sdp(&rtp->addr, line) < 0) { + talloc_free(tmp_ctx); return -1; + } break; default: if (endp) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31527b54f602634024a0b687eef26a9b29354282 Gerrit-Change-Number: 25420 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:00:10 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:00:10 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 3: > stroll strtoll() ! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13: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 Sat Sep 11 13:00:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:00:35 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:00:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:01:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:01:41 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:01:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:03:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:03:20 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... Patch Set 11: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:03:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:03:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:03:57 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:03: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 Sep 11 13:06:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:06:22 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 3: Verified+1 "WARNING:UNNECESSARY_INT: Prefer 'long long' over 'long long int' as the int is unnecessary" but the stdlib.h literally writes 'long long int' so i would prefer to leave it identical to that, so that it is clear why i am choosing that datatype. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:06: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 Sep 11 13:06:59 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:06:59 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 3: "WARNING:UNNECESSARY_INT: Prefer 'long long' over 'long long int' as the int is unnecessary" but the stdlib.h literally writes 'long long int' so i would prefer to leave it identical to that, so that it is clear why i am choosing that datatype. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:06: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 Sat Sep 11 13:07:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:07:26 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 11 Sep 2021 13: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 Sep 11 13:08:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:08:00 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25434 ) Change subject: ta_control: Allow switching TA quicker ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sat, 11 Sep 2021 13:08:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:08:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 11 Sep 2021 13:08:33 +0000 Subject: Change in osmo-bts[master]: lchan: Move TA CTRL param to its own substruct In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25435 ) Change subject: lchan: Move TA CTRL param to its own substruct ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I169ce58ab827e38b64f4b15f935097a9118fa118 Gerrit-Change-Number: 25435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 11 Sep 2021 13:08: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 Sep 11 13:09:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:09:46 +0000 Subject: Change in osmo-bts[master]: early IMM ASS: add configurable delay for RR IMM ASS In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25201 ) Change subject: early IMM ASS: add configurable delay for RR IMM ASS ...................................................................... Patch Set 6: tests work out now, after osmo-bsc I9f26074154600d854a0b3baee2f38a6666f4cb56 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25201 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1e63b98944dc840cde212fc732e20277cdc5585 Gerrit-Change-Number: 25201 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Hoernchen Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 11 Sep 2021 13:09: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 Sat Sep 11 13:10:33 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:10:33 +0000 Subject: Change in osmo-bts[master]: early IMM ASS: add configurable delay for RR IMM ASS In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25201 ) Change subject: early IMM ASS: add configurable delay for RR IMM ASS ...................................................................... early IMM ASS: add configurable delay for RR IMM ASS During live testing, it has become apparent that some IMM ASS still fail when sending the RR IMM ASS directly upon the target channel becoming active. Add a bit of delay after activation, to give some time for the channel to light up for the MS. Default is 50ms. Related: OS#5559 Change-Id: Ia1e63b98944dc840cde212fc732e20277cdc5585 --- M include/osmo-bts/gsm_data.h M src/common/bts.c M src/common/gsm_data.c M src/common/lchan.c M tests/osmo-bts.vty 5 files changed, 64 insertions(+), 14 deletions(-) Approvals: neels: 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 33cb2af..fa6ea02 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -428,6 +428,7 @@ * confirmed active, then cache it here and send it once the channel is confirmed to be active. This is related * to the Early IA feature, see OsmoBSC config option 'immediate-assignment pre-chan-ack'. */ struct msgb *early_rr_ia; + struct osmo_timer_list early_rr_ia_delay; }; extern const struct value_string lchan_ciph_state_names[]; @@ -534,6 +535,7 @@ extern struct osmo_tdef_group bts_tdef_groups[]; extern struct osmo_tdef bts_T_defs[]; +extern struct osmo_tdef abis_T_defs[]; extern const struct value_string gsm_pchant_names[13]; extern const struct value_string gsm_pchant_descs[13]; diff --git a/src/common/bts.c b/src/common/bts.c index b6af4c6..a8a23f1 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -143,6 +143,11 @@ {} }; +struct osmo_tdef abis_T_defs[] = { + { .T=-15, .default_val=50, .unit=OSMO_TDEF_MS, .desc="Time to wait between Channel Activation and dispatching a cached early Immediate Assignment" }, + {} +}; + static const uint8_t bts_nse_timer_default[] = { 3, 3, 3, 3, 30, 3, 10 }; static const uint8_t bts_cell_timer_default[] = { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }; @@ -234,6 +239,7 @@ bts->T_defs = bts_T_defs; osmo_tdefs_reset(bts->T_defs); + osmo_tdefs_reset(abis_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); diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 721bb45..76292f7 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -42,6 +42,7 @@ struct osmo_tdef_group bts_tdef_groups[] = { { .name = "bts", .tdefs = bts_T_defs, .desc = "BTS process timers" }, + { .name = "abis", .tdefs = abis_T_defs, .desc = "Abis (RSL) related timers" }, {} }; diff --git a/src/common/lchan.c b/src/common/lchan.c index 987f78a..dcec0a3 100644 --- a/src/common/lchan.c +++ b/src/common/lchan.c @@ -25,6 +25,33 @@ #include #include +void early_rr_ia_delay_cb(void *data) +{ + struct gsm_lchan *lchan = data; + struct gsm_bts *bts = lchan->ts->trx->bts; + + if (!lchan->early_rr_ia) { + /* The IA message has disappeared since the timer was started. */ + return; + } + + if (lchan->state != LCHAN_S_ACTIVE) { + /* Release has happened since the timer was started. */ + msgb_free(lchan->early_rr_ia); + lchan->early_rr_ia = NULL; + return; + } + + /* Activation is done, send the RR IA now. Put RR IA msg into the AGCH queue of the BTS. */ + if (bts_agch_enqueue(bts, lchan->early_rr_ia) < 0) { + /* if there is no space in the queue: send DELETE IND */ + rsl_tx_delete_ind(bts, lchan->early_rr_ia->data, lchan->early_rr_ia->len); + rate_ctr_inc2(bts->ctrs, BTS_CTR_AGCH_DELETED); + msgb_free(lchan->early_rr_ia); + } + lchan->early_rr_ia = NULL; +} + void lchan_set_state(struct gsm_lchan *lchan, enum gsm_lchan_state state) { DEBUGP(DL1C, "%s state %s -> %s\n", @@ -36,25 +63,23 @@ /* Early Immediate Assignment: if we have a cached early IA pending, send it upon becoming active, or discard it * when releasing. */ if (lchan->early_rr_ia) { - struct gsm_bts *bts = lchan->ts->trx->bts; switch (lchan->state) { case LCHAN_S_ACT_REQ: /* Activation is requested, keep the early IA until active. This allows the BSC to send the IA * even before a dynamic timeslot is done switching to a different pchan kind (experimental). */ break; case LCHAN_S_ACTIVE: - /* Activation is done, send the RR IA now. Put RR IA msg into the AGCH queue of the BTS. */ - if (bts_agch_enqueue(bts, lchan->early_rr_ia) < 0) { - /* if there is no space in the queue: send DELETE IND */ - rsl_tx_delete_ind(bts, lchan->early_rr_ia->data, lchan->early_rr_ia->len); - rate_ctr_inc2(bts->ctrs, BTS_CTR_AGCH_DELETED); - msgb_free(lchan->early_rr_ia); - } - lchan->early_rr_ia = NULL; + /* Activation is done, send the RR IA now. Delay a bit more to give Um time to let the lchan + * light up for the MS */ + osmo_timer_del(&lchan->early_rr_ia_delay); + osmo_timer_setup(&lchan->early_rr_ia_delay, early_rr_ia_delay_cb, lchan); + osmo_timer_schedule(&lchan->early_rr_ia_delay, 0, + osmo_tdef_get(abis_T_defs, -15, OSMO_TDEF_US, -1)); break; default: /* Transition to any other state means whatever IA the BSC has sent shall now not be relevant * anymore. */ + osmo_timer_del(&lchan->early_rr_ia_delay); msgb_free(lchan->early_rr_ia); lchan->early_rr_ia = NULL; break; diff --git a/tests/osmo-bts.vty b/tests/osmo-bts.vty index 12a0c77..e39d304 100644 --- a/tests/osmo-bts.vty +++ b/tests/osmo-bts.vty @@ -7,7 +7,7 @@ show lchan summary [<0-255>] [<0-255>] [<0-7>] [<0-7>] show bts <0-255> gprs ... - show timer [(bts)] [TNNNN] + show timer [(bts|abis)] [TNNNN] show e1_driver show e1_line [<0-255>] [stats] show e1_timeslot [<0-255>] [<0-31>] @@ -63,10 +63,12 @@ [<0-7>] Logical Channel Number OsmoBTS> show timer ? - [bts] BTS process timers + [bts] BTS process timers + [abis] Abis (RSL) related timers OsmoBTS> show timer bts: X1 = 300 s Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s) (default: 300 s) bts: X2 = 3 s Time after which osmo-bts exits if requesting transceivers to stop during shut down process does not finish (s) (default: 3 s) +abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) OsmoBTS> show timer bts ? [TNNNN] T- or X-timer-number -- 3GPP compliant timer number of the format '1234' or 'T1234' or 't1234'; Osmocom-specific timer number of the format: 'X1234' or 'x1234'. OsmoBTS> show timer bts @@ -76,6 +78,10 @@ bts: X1 = 300 s Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s) (default: 300 s) OsmoBTS> show timer bts X2 bts: X2 = 3 s Time after which osmo-bts exits if requesting transceivers to stop during shut down process does not finish (s) (default: 3 s) +OsmoBTS> show timer abis ? + [TNNNN] T- or X-timer-number -- 3GPP compliant timer number of the format '1234' or 'T1234' or 't1234'; Osmocom-specific timer number of the format: 'X1234' or 'x1234'. +OsmoBTS> show timer abis X15 +abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) OsmoBTS> show e1_driver ? @@ -98,7 +104,7 @@ show lchan summary [<0-255>] [<0-255>] [<0-7>] [<0-7>] show bts <0-255> gprs ... - show timer [(bts)] [TNNNN] + show timer [(bts|abis)] [TNNNN] bts <0-0> trx <0-255> ts <0-7> (lchan|shadow-lchan) <0-7> rtp jitter-buffer <0-10000> test send-failure-event-report <0-255> bts <0-255> c0-power-red <0-6> @@ -172,7 +178,7 @@ ... bts BTS_NR ... - timer [(bts)] [TNNNN] [(<0-2147483647>|default)] + timer [(bts|abis)] [TNNNN] [(<0-2147483647>|default)] phy <0-255> e1_input ... @@ -190,7 +196,8 @@ <0-255> PHY number OsmoBTS(config)# timer ? - [bts] BTS process timers + [bts] BTS process timers + [abis] Abis (RSL) related timers OsmoBTS(config)# timer bts ? [TNNNN] T- or X-timer-number -- 3GPP compliant timer number of the format '1234' or 'T1234' or 't1234'; Osmocom-specific timer number of the format: 'X1234' or 'x1234'. OsmoBTS(config)# timer bts X1 @@ -207,6 +214,15 @@ OsmoBTS(config)# timer bts X1 bts: X1 = 300 s Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s) (default: 300 s) +OsmoBTS(config)# timer abis X15 +abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +OsmoBTS(config)# timer abis X15 123 +OsmoBTS(config)# timer abis X15 +abis: X15 = 123 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +OsmoBTS(config)# timer abis X15 default +OsmoBTS(config)# timer abis X15 +abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) + OsmoBTS(config)# bts 0 OsmoBTS(bts)# list ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25201 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1e63b98944dc840cde212fc732e20277cdc5585 Gerrit-Change-Number: 25201 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-CC: Hoernchen Gerrit-CC: fixeria Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:10:35 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:10:35 +0000 Subject: Change in osmo-bts[master]: early IA: change default X15 timer to 0 ms In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25215 ) Change subject: early IA: change default X15 timer to 0 ms ...................................................................... early IA: change default X15 timer to 0 ms Tests have shown that even a delay of 0, i.e. a simple defer until the next select() loop, makes the difference from failing to working early IA. So set the default to 0, achieving such defer. Related: SYS#5559 Change-Id: I95365649edd51114bcf6028f0dc3bbe4186f96d2 --- M src/common/bts.c M tests/osmo-bts.vty 2 files changed, 6 insertions(+), 6 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/bts.c b/src/common/bts.c index a8a23f1..05584aa 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -144,7 +144,7 @@ }; struct osmo_tdef abis_T_defs[] = { - { .T=-15, .default_val=50, .unit=OSMO_TDEF_MS, .desc="Time to wait between Channel Activation and dispatching a cached early Immediate Assignment" }, + { .T=-15, .default_val=0, .unit=OSMO_TDEF_MS, .desc="Time to wait between Channel Activation and dispatching a cached early Immediate Assignment" }, {} }; diff --git a/tests/osmo-bts.vty b/tests/osmo-bts.vty index e39d304..4873030 100644 --- a/tests/osmo-bts.vty +++ b/tests/osmo-bts.vty @@ -68,7 +68,7 @@ OsmoBTS> show timer bts: X1 = 300 s Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s) (default: 300 s) bts: X2 = 3 s Time after which osmo-bts exits if requesting transceivers to stop during shut down process does not finish (s) (default: 3 s) -abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +abis: X15 = 0 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 0 ms) OsmoBTS> show timer bts ? [TNNNN] T- or X-timer-number -- 3GPP compliant timer number of the format '1234' or 'T1234' or 't1234'; Osmocom-specific timer number of the format: 'X1234' or 'x1234'. OsmoBTS> show timer bts @@ -81,7 +81,7 @@ OsmoBTS> show timer abis ? [TNNNN] T- or X-timer-number -- 3GPP compliant timer number of the format '1234' or 'T1234' or 't1234'; Osmocom-specific timer number of the format: 'X1234' or 'x1234'. OsmoBTS> show timer abis X15 -abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +abis: X15 = 0 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 0 ms) OsmoBTS> show e1_driver ? @@ -215,13 +215,13 @@ bts: X1 = 300 s Time after which osmo-bts exits if regular ramp down during shut down process does not finish (s) (default: 300 s) OsmoBTS(config)# timer abis X15 -abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +abis: X15 = 0 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 0 ms) OsmoBTS(config)# timer abis X15 123 OsmoBTS(config)# timer abis X15 -abis: X15 = 123 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +abis: X15 = 123 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 0 ms) OsmoBTS(config)# timer abis X15 default OsmoBTS(config)# timer abis X15 -abis: X15 = 50 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 50 ms) +abis: X15 = 0 ms Time to wait between Channel Activation and dispatching a cached early Immediate Assignment (default: 0 ms) OsmoBTS(config)# bts 0 OsmoBTS(bts)# list -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25215 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I95365649edd51114bcf6028f0dc3bbe4186f96d2 Gerrit-Change-Number: 25215 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:11:28 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:11:28 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25224 ) Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... Patch Set 8: Code-Review+2 combine votes -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Sat, 11 Sep 2021 13:11:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 11 13:11:39 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 11 Sep 2021 13:11:39 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 3 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 noreply at opensuse.org Sun Sep 12 09:18:59 2021 From: noreply at opensuse.org (OBS Notification) Date: Sun, 12 Sep 2021 09:18:59 +0000 Subject: Build failure of network:osmocom:nightly/libusrp in Debian_11/x86_64 In-Reply-To: References: Message-ID: <613dc6068518d_36e72ac6ed91c6008353bf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libusrp/Debian_11/x86_64 Package network:osmocom:nightly/libusrp failed to build in Debian_11/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libusrp Last lines of build log: [ 26s] Processing triggers for libc-bin (2.31-13) ... [ 26s] [159/377] installing libz3-4-4.8.10-1 [ 26s] Processing triggers for libc-bin (2.31-13) ... [ 26s] [160/377] installing sed-4.7-1 [ 26s] [161/377] installing tar-1.34+dfsg-1 [ 27s] update-alternatives: using /usr/sbin/rmt-tar to provide /usr/sbin/rmt (rmt) in auto mode [ 27s] [162/377] installing libcc1-0-10.2.1-6 [ 27s] Processing triggers for libc-bin (2.31-13) ... [ 27s] [163/377] installing libubsan1-10.2.1-6 [ 27s] Processing triggers for libc-bin (2.31-13) ... [ 27s] [164/377] installing coreutils-8.32-4+b1 [ 27s] [165/377] installing libsystemd0-247.3-6 [ 27s] Processing triggers for libc-bin (2.31-13) ... [ 27s] [166/377] installing libxapian30-1.4.18-3 [ 27s] Processing triggers for libc-bin (2.31-13) ... [ 27s] [167/377] installing sdcc-4.0.0+dfsg-2 [ 27s] [168/377] installing libsemanage1-3.1-1+b2 [ 27s] Processing triggers for libc-bin (2.31-13) ... [ 27s] [169/377] installing e2fsprogs-1.46.2-2 [ 28s] [170/377] installing libboost-iostreams1.74.0-1.74.0-9 [ 28s] Processing triggers for libc-bin (2.31-13) ... [ 28s] [171/377] installing vim-2:8.2.2434-3 [28832s] qemu-kvm: terminating on signal 15 from pid 147933 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28832s] ### VM INTERACTION END ### [28832s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28832s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:02:58 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 08:02:58 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: Code-Review+1 What about uint8_t? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 08:02: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 Sep 13 08:11:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 08:11:11 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25346 ) Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25346/4/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/25346/4/src/stat_item.c at 339 PS4, Line 339: * \returns pointer to group, if found; NULL otherwise */ missing '.' ? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 08:11:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:16:39 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 08:16:39 +0000 Subject: Change in osmo-bts[master]: lchan: Move TA CTRL param to its own substruct In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25435 ) Change subject: lchan: Move TA CTRL param to its own substruct ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I169ce58ab827e38b64f4b15f935097a9118fa118 Gerrit-Change-Number: 25435 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 13 Sep 2021 08:16:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:24:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 08:24:53 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25434 ) Change subject: ta_control: Allow switching TA quicker ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25434/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25434/1//COMMIT_MSG at 9 PS1, Line 9: From TS 45.010 5.6.1 (delay tracking dor circuit switched channels): typo: dor -> for -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 08:24:53 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:37:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 08:37:31 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25440 ) Change subject: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT ...................................................................... lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT Related: https://gerrit.osmocom.org/c/libosmocore/+/25345/4#message-8f6827dc90942698d23ebb909544bf60fa461b2d Related: OS#5087 Change-Id: I5be890a296b37511affc17cb786f0709de822826 --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/40/25440/1 diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index 849ccda..7ef8ca4 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -31,6 +31,7 @@ # * SPDX_LICENSE_TAG: we don't place it on line 1 # * SPLIT_STRING: we do split long messages over multiple lines # * STRING_FRAGMENTS: sometimes used intentionally to improve readability +# * UNNECESSARY_INT: not followed (see https://gerrit.osmocom.org/c/libosmocore/+/25345) $SCRIPT_DIR/checkpatch.pl \ --exclude '\.(ok|err)$' \ @@ -62,6 +63,7 @@ --ignore SPDX_LICENSE_TAG \ --ignore SPLIT_STRING \ --ignore STRING_FRAGMENTS \ + --ignore UNNECESSARY_INT \ --max-line-length 120 \ --no-signoff \ --no-tree \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5be890a296b37511affc17cb786f0709de822826 Gerrit-Change-Number: 25440 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:37:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 08:37:31 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25441 ) Change subject: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT ...................................................................... lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT As suggested by Pau, let's remove this check because it isn't useful for us. Related: OS#5087 Change-Id: I15345a154f490362093e46fc0df75e75bbb237fe --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/41/25441/1 diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index 7ef8ca4..b9860b4 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -32,6 +32,7 @@ # * SPLIT_STRING: we do split long messages over multiple lines # * STRING_FRAGMENTS: sometimes used intentionally to improve readability # * UNNECESSARY_INT: not followed (see https://gerrit.osmocom.org/c/libosmocore/+/25345) +# * UNSPECIFIED_INT: not followed (doesn't seem useful for us) $SCRIPT_DIR/checkpatch.pl \ --exclude '\.(ok|err)$' \ @@ -64,6 +65,7 @@ --ignore SPLIT_STRING \ --ignore STRING_FRAGMENTS \ --ignore UNNECESSARY_INT \ + --ignore UNSPECIFIED_INT \ --max-line-length 120 \ --no-signoff \ --no-tree \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I15345a154f490362093e46fc0df75e75bbb237fe Gerrit-Change-Number: 25441 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:39:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 08:39:53 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: > Patch Set 3: Verified+1 > > "WARNING:UNNECESSARY_INT: Prefer 'long long' over 'long long int' as the int is unnecessary" > > but the stdlib.h literally writes 'long long int' so i would prefer to leave it identical to that, > so that it is clear why i am choosing that datatype. that check doesn't seem useful for us, patch to remove it: https://gerrit.osmocom.org/c/osmo-ci/+/25440/1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 08:39: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 Sep 13 08:41:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 08:41:31 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25441 ) Change subject: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I15345a154f490362093e46fc0df75e75bbb237fe Gerrit-Change-Number: 25441 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 08:41:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:46:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 08:46:50 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Avoid inheriting bs_power from old lchan In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25412 ) Change subject: lchan_fsm: Avoid inheriting bs_power from old lchan ...................................................................... Patch Set 1: ping. I believe this is an important fix to get merged soon. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 Gerrit-Change-Number: 25412 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 08:46:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 08:48:45 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 08:48:45 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 12: Verified+1 Code-Review+2 (1 comment) I think this patch makes a lot of sense. I have also verified it. Looks good to me. https://gerrit.osmocom.org/c/osmo-mgw/+/25428/12/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25428/12/src/libosmo-mgcp/mgcp_network.c at 1181 PS12, Line 1181: (char *)msgb_data(msg), &buflen, indentation seems now be messed up. Maybe having a shorter variable for endp->trunk->cfg helps. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 08:48: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 Sep 13 08:53:41 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 08:53:41 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... Patch Set 11: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 11 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 08:53: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 Sep 13 09:03:19 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 09:03:19 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... Patch Set 10: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25426/10/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25426/10/src/libosmo-mgcp/mgcp_vty.c at 551 PS10, Line 551: osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, "", sizeof(g_cfg->net_ports.bind_addr_v4)); the osmo_strlcpy with the zero length string looks wired. I would do it differently: g_cfg->net_ports.bind_addr_v4[0] = '\0' or memset(g_cfg->net_ports.bind_addr_v4, 0, sizeof(g_cfg->net_ports.bind_addr_v4)); Thsts of course my personal taste. Don't change it when you like the osmo_strlcpy. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 09:03: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 Mon Sep 13 09:05:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 09:05:49 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Avoid inheriting bs_power from old lchan In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25412 ) Change subject: lchan_fsm: Avoid inheriting bs_power from old lchan ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 Gerrit-Change-Number: 25412 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 09:05: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 Sep 13 09:08:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 09:08:41 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Avoid inheriting bs_power from old lchan In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25412 ) Change subject: lchan_fsm: Avoid inheriting bs_power from old lchan ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 Gerrit-Change-Number: 25412 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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: Mon, 13 Sep 2021 09: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 Mon Sep 13 09:08:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 09:08:43 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Fix comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25411 ) Change subject: lchan_fsm: Fix comment ...................................................................... lchan_fsm: Fix comment A previous commit (Feb 05 2021) moved copy of TA value to some other place to fix some related issues, but forgot to update the comment. Fixes: b03e73f27b26449864296fdab84f6fb6e1978c45 Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 1b59b45..a18cba5 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -691,7 +691,7 @@ lchan->conn = info->for_conn; /* If there is a previous lchan, and the new lchan is on the same cell as previous one, - * take over power and TA values. Otherwise, use max power and zero TA. */ + * take over power values. Otherwise, use max power. */ if (old_lchan && old_lchan->ts->trx->bts == bts) { ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power); lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm >= 0 ? ms_power_dbm : bts->ms_max_power); @@ -699,8 +699,7 @@ } else { lchan_update_ms_power_ctrl_level(lchan, bts->ms_max_power); /* Upon last entering the UNUSED state, from lchan_reset(): - * - bs_power_db is still zero, 0dB reduction, output power = Pn. - * - TA is still zero, to be determined by RACH. */ + * - bs_power_db is still zero, 0dB reduction, output power = Pn. */ /* Default BS Power reduction value (in dB) */ if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ia10038919b6650dff45b7233f58fea94e9808712 Gerrit-Change-Number: 25411 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 Sep 13 09:08:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 09:08:44 +0000 Subject: Change in osmo-bsc[master]: lchan_fsm: Avoid inheriting bs_power from old lchan In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25412 ) Change subject: lchan_fsm: Avoid inheriting bs_power from old lchan ...................................................................... lchan_fsm: Avoid inheriting bs_power from old lchan So far we were inherting the bs_power in used when activating an lchan for an MS for which we already had previous lchan. For instance, when an MS is first assigned an SDCCH, and later on, it is assigned a TCH to place a voice call. Doing so is, however, not correct because current and old lchans may be placed on different TS or even on different TRX, which means they will have different BS Power restrictions. In the scenario described above, for instance, an SDCCH could have been assigned on C0 and hence have a bs_power of 0, and later on, whenever the TCH lchan as created, it would have inherited the C0 bs_power despite it may have been possible to use a different (lower) max bs power. Furthermore, the lchan->bs_power_db basically stores the *maximum* bs power reduction. Hence it makes not sense at all to copy over the value, since it is anyway not updated from MS measurement reports so far anyway. Fixes: 997a257f8dabe5dd940a1271e56e676a871896d7 Related: SYS#4919 Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 --- M src/osmo-bsc/lchan_fsm.c 1 file changed, 9 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index a18cba5..d06dbac 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -681,7 +681,7 @@ struct osmo_mgcpc_ep_ci *use_mgwep_ci; struct gsm_lchan *old_lchan = lchan->activate.info.re_use_mgw_endpoint_from_lchan; struct lchan_activate_info *info = &lchan->activate.info; - int ms_power_dbm; + int ms_power_dbm = bts->ms_max_power; if (lchan->release.requested) { lchan_fail("Release requested while activating"); @@ -691,23 +691,17 @@ lchan->conn = info->for_conn; /* If there is a previous lchan, and the new lchan is on the same cell as previous one, - * take over power values. Otherwise, use max power. */ + * take over MS power values. Otherwise, use configured MS max power. */ if (old_lchan && old_lchan->ts->trx->bts == bts) { - ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power); - lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm >= 0 ? ms_power_dbm : bts->ms_max_power); - lchan->bs_power_db = old_lchan->bs_power_db; - } else { - lchan_update_ms_power_ctrl_level(lchan, bts->ms_max_power); - /* Upon last entering the UNUSED state, from lchan_reset(): - * - bs_power_db is still zero, 0dB reduction, output power = Pn. */ - - /* Default BS Power reduction value (in dB) */ - if (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) - lchan->bs_power_db = bts->bs_power_ctrl.bs_power_max_db; - else - lchan->bs_power_db = bts->bs_power_ctrl.bs_power_val_db; + if ((ms_power_dbm = ms_pwr_dbm(bts->band, old_lchan->ms_power)) == 0) + ms_power_dbm = bts->ms_max_power; } + lchan_update_ms_power_ctrl_level(lchan, ms_power_dbm); + /* Default BS Power reduction value (in dB) */ + lchan->bs_power_db = (bts->bs_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BTS) ? + bts->bs_power_ctrl.bs_power_max_db : + bts->bs_power_ctrl.bs_power_val_db; /* BS Power Control is generally not allowed on the BCCH/CCCH carrier. * However, we allow it in the BCCH carrier power reduction mode of operation. */ if (lchan->ts->trx == bts->c0) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I4a7736aa9a1395e0cc118b98b69896bd0f1e94e6 Gerrit-Change-Number: 25412 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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 Mon Sep 13 09:41:40 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 13 Sep 2021 09:41:40 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25440 ) Change subject: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5be890a296b37511affc17cb786f0709de822826 Gerrit-Change-Number: 25440 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Mon, 13 Sep 2021 09:41: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 Sep 13 09:56:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 13 Sep 2021 09:56:05 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: > Patch Set 4: Code-Review+1 > > What about uint8_t? if you're asking for an osmo_str_to_uint8(), then it is a continuation of above discussion: should we add a separate function signature for each integer data type? My personal opinion is that we don't need those and should rather not have API creep for all integer types, given that literally the entire universe fits in an int64_t (signed or unsigned). I'd use constructs like this: int val; if (osmo_str_to_int(&val, "123", 10, 0, 255)) return -EINVAL; my_obj->my_uint8 = val; return 0; But two reviewers would prefer adding unsigned data types. My status is that I am ok with more API added at a later stage (probably by others), but I will not add more function signatures at this point. I'm having another idea, we could flip rc and val like this: int64_t osmo_str_to_int64(int *rc, ...); to get int rc; my_obj->my_uint8 = osmo_str_to_int(&rc, "123", 10, 0, 255); if (rc) return -EINVAL; I chose the other way because when the rc evaluation happens *after* assigning the value, we need to either recover back, or anyway use a tmp val placeholder: int rc; uint8_t val; val = osmo_str_to_int(&rc, "123", 10, 0, 255); if (rc) return -EINVAL; my_obj->my_uint8 = val; return 0; So this ends up needing *more* local variables than when rc is returned directly (compare to first code snippet above). If you guys prefer the implicit cast to whichever int type we can also do that? (But I guess that's not the point, is it??) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 09:56:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 09:56:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 13 Sep 2021 09:56:16 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 09:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 13 Sep 2021 09:56:31 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: Verified+1 (overruling linter vote) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 09:56:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 10:00:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 10:00:47 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25404 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 3: (8 comments) Code looks good! https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG at 9 PS3, Line 9: initiall initially https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG at 23 PS3, Line 23: ANR maybe NAR for Neighbor Address Resolution? https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG at 32 PS3, Line 32: rbeaking breaking https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG at 35 PS3, Line 35: TODO: value inside container must be encoded in network order!!! unresolved TODO inside the commit message? https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3/doc/manuals/chapters/configuration.adoc File doc/manuals/chapters/configuration.adoc: https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3/doc/manuals/chapters/configuration.adoc at 255 PS3, Line 255: nowwadays nowadays https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3/doc/manuals/chapters/configuration.adoc at 256 PS3, Line 256: , https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3/doc/manuals/chapters/configuration.adoc at 263 PS3, Line 263: result, optimizing the resolution time too. How about: > These neighbor address resolutions ( => ) are by default > cached for a while, in order to avoid querying the BSC frequently. As a result, > the resolution time is also optimized. https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3/src/nacc_fsm.c File src/nacc_fsm.c: https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3/src/nacc_fsm.c at 416 PS3, Line 416: confiured tu se configured to use -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:00: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 Sep 13 10:03:34 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 13 Sep 2021 10:03:34 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: (I'll still wait until later today for opinions before merging this; we can still adjust the API up until the next libosmocore release, of course) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:03:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 10:03:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 10:03:34 +0000 Subject: Change in osmo-pcu[master]: nacc_fsm: Move logic checking if SI is being waited for to a func helper In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25405 ) Change subject: nacc_fsm: Move logic checking if SI is being waited for to a func helper ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 Gerrit-Change-Number: 25405 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:03: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 Sep 13 10:11:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 10:11:01 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: LGTM so far. as stated I'd welcome an unsigned version to be added now, rather than already using signed version of the API in some places where clearly an unsigned value is expected (like when using it for pid_t). -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:11:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 10:32:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 10:32:19 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Patch Set 2: Code-Review-1 (1 comment) (was reviewing it before it was marked as WIP...) https://gerrit.osmocom.org/c/osmo-bts/+/25386/2/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25386/2/src/common/ta_control.c at 54 PS2, Line 54: toa256 - (256 * delta_ta)) so with delta_ta = toa256/256, this is: toa256 - (256 * (toa256/256)) toa256 - toa256 0 ?! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:32: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 Mon Sep 13 10:54:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 10:54:20 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:54: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 Mon Sep 13 10:54:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 10:54:26 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 to look at the new patch set (#3). Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... TA loop: Take into account UL SACCH 'Actual Timing advance' field First step improving and reworking TA loop: Move trigger of the loop to similar place done by BS/MS Power Control Loop, that is, upon receivial of UL SACCH block, which contains information about the TA used to transmit the block encode in L1SACCH Header. Hence, from computed received TOA and TA used when transmitting from the MS, we can infer the desired TA to be used by the MS, which will send back to it later during DL SACCH block. The values taken are actually the ones calculated for the previous SACCH block and stored in lchan->meas.ms_toa256. That's because L1SACCH contains the TA used for the previous reporting period, similarly to what's specified for MS Power Control loop (TS 45.008 sec 4.2): """ The MS shall confirm the power control level that it is currently employing in the SACCH L1 header on each uplink channel. The indicated value shall be the power control level actually used by the mobile for the last burst of the previous SACCH period. """ (The reader may observe that currently this is not properly done for MS Power Control loop when calling lchan_ms_pwr_ctrl(): this is a bug.) This new method also permits changing TA quicker, since we have more confidence that the TA we request is aligned with the one used to transmit, and we don't simply increment/decrement based on the value we request to transmit. Related: SYS#5371 Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc --- M include/osmo-bts/ta_control.h M src/common/l1sap.c M src/common/measurement.c M src/common/ta_control.c M tests/ta_control/ta_control_test.c 5 files changed, 74 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/86/25386/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 10:54:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 10:54:26 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 to look at the new patch set (#2). Change subject: ta_control: Allow switching TA quicker ...................................................................... ta_control: Allow switching TA quicker >From TS 45.010 5.6.1 (delay tracking for circuit switched channels): """ Restricting the change in timing advance to 1 symbol period at a time gives the simplest implementation of the BTS. However the BTS may use a larger change than this but great care must then be used in the BTS design. """ In general 1 TA at a time (every 480ms of SACCH block) should be enough, since section 5.6.3 states: """ The control loop for the timing advance shall be implemented in such a way that it will cope with MSs moving at a speed up to 500 km/h """ Which is ~140 m/s, and 1 TA step around 500m, so most of the time we should be save and no steps of more than 1 TA should be required. However, unlikely changes from reflected to direct signal or vice versa could produce higher increments, so let's increase the maximum step size allowed to 2 in order to give more room. Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 --- M src/common/ta_control.c M tests/ta_control/ta_control_test.ok 2 files changed, 232 insertions(+), 232 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/25434/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 10:54:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 10:54:28 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... MS Power Control Loop: Feed UL C/I from correct measurement period As per 3GPP TS 45.008 sec 4.2, the ms_pwr received in L1 SACCH Header is the value used over previous measurement period. Hence, we need to feed the algo with the measurements taken over that same period. Related: SYS#4917 Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/measurement.c M tests/meas/meas_testcases.h 4 files changed, 51 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/42/25442/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 8a5974e..9fe68d6 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -105,8 +105,8 @@ uint16_t ber10k; /* timing advance offset (in 1/256 bits) */ int16_t ta_offs_256bits; - /* C/I ratio in dB */ - float c_i; + /* C/I ratio in cB */ + int16_t c_i; /* flags */ uint8_t is_sub:1; /* RSSI in dBm * -1 */ @@ -341,6 +341,8 @@ struct rsl_l1_info l1_info; struct gsm_meas_rep_unidir ul_res; int16_t ms_toa256; + int16_t ul_ci_cb_full; + int16_t ul_ci_cb_sub; /* Frame number of the last measurement indication receceived */ uint32_t last_fn; /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index a641dab..40e818d 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -681,6 +681,7 @@ uint8_t is_sub; int16_t ta_offs_256bits; uint16_t ber10k; + int16_t ci_cb; const char *ind_name; switch (ind_type) { @@ -693,6 +694,7 @@ is_sub = info_meas_ind->is_sub; ta_offs_256bits = info_meas_ind->ta_offs_256bits; ber10k = info_meas_ind->ber10k; + ci_cb = info_meas_ind->c_i_cb; ind_name = "MPH INFO"; break; case PRIM_TCH: @@ -705,6 +707,7 @@ is_sub = ph_tch_ind->is_sub; ta_offs_256bits = ph_tch_ind->ta_offs_256bits; ber10k = ph_tch_ind->ber10k; + ci_cb = ph_tch_ind->lqual_cb; ind_name = "TCH"; break; case PRIM_PH_DATA: @@ -717,6 +720,7 @@ is_sub = ph_data_ind->is_sub; ta_offs_256bits = ph_data_ind->ta_offs_256bits; ber10k = ph_data_ind->ber10k; + ci_cb = ph_data_ind->lqual_cb; ind_name = "DATA"; break; default: @@ -732,9 +736,9 @@ } DEBUGPFN(DL1P, fn, - "%s %s meas ind, ta_offs_256bits=%d, ber10k=%d, inv_rssi=%u\n", + "%s %s meas ind, ta_offs_256bits=%d, ber10k=%d, inv_rssi=%u, C/I=%d cB\n", gsm_lchan_name(lchan), ind_name, ta_offs_256bits, ber10k, - inv_rssi); + inv_rssi, ci_cb); /* in the GPRS case we are not interested in measurement * processing. The PCU will take care of it */ @@ -744,6 +748,7 @@ memset(&ulm, 0, sizeof(ulm)); ulm.ta_offs_256bits = ta_offs_256bits; ulm.ber10k = ber10k; + ulm.c_i = ci_cb; ulm.inv_rssi = inv_rssi; ulm.is_sub = is_sub; @@ -1526,11 +1531,11 @@ uint8_t chan_nr, link_id; uint8_t tn; uint32_t fn; - int8_t rssi; enum osmo_ph_pres_info_type pr_info = data_ind->pdch_presence_info; struct gsm_sacch_l1_hdr *l1_hdr; + int8_t ul_rssi; + int16_t ul_ci_cb; - rssi = data_ind->rssi; chan_nr = data_ind->chan_nr; link_id = data_ind->link_id; fn = data_ind->fn; @@ -1578,7 +1583,7 @@ /* PDTCH / PACCH frame handling */ pcu_tx_data_ind(&trx->ts[tn], PCU_IF_SAPI_PDTCH, fn, trx->arfcn, - L1SAP_FN2MACBLOCK(fn), data, len, rssi, data_ind->ber10k, + L1SAP_FN2MACBLOCK(fn), data, len, data_ind->rssi, data_ind->ber10k, data_ind->ta_offs_256bits/64, data_ind->lqual_cb); return 0; } @@ -1606,7 +1611,15 @@ radio_link_timeout(lchan, true); lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); - lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi, data_ind->lqual_cb); + /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ + if (lchan->tch.dtx.dl_active) { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_full; + } else { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_sub; + } + lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, ul_rssi, ul_ci_cb); } return -EINVAL; } @@ -1616,7 +1629,6 @@ handover_frame(lchan); if (L1SAP_IS_LINK_SACCH(link_id)) { - int8_t ul_rssi; radio_link_timeout(lchan, false); le = &lchan->lapdm_ch.lapdm_acch; /* save the SACCH L1 header in the lchan struct for RSL MEAS RES */ @@ -1644,16 +1656,15 @@ * feed the Control Loop with the measurements for the same * period (the previous one), which is stored in lchan->meas(.ul_res): */ lchan_ms_ta_ctrl(lchan, l1_hdr->ta, lchan->meas.ms_toa256); - /* FIXME: lchan_ms_pwr_ctrl() is currently being passed data_ind->lqual_cb, which is wrong because: - * 1- It contains measurement data for 1 SACCH block only, not the average over the entire period - * 2- It contains measurement data for *current* meas period, not *previous* one. - */ /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ - if (lchan->tch.dtx.dl_active) + if (lchan->tch.dtx.dl_active) { ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - else + ul_ci_cb = lchan->meas.ul_ci_cb_full; + } else { ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, data_ind->lqual_cb); + ul_ci_cb = lchan->meas.ul_ci_cb_sub; + } + lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, ul_ci_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/measurement.c b/src/common/measurement.c index a4cc668..a1c91a9 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -341,7 +341,7 @@ if (!ulm->is_sub) dest->is_sub = ts45008_83_is_sub(lchan, fn); - DEBUGPFN(DMEAS, fn, "%s adding measurement (ber10k=%u, ta_offs=%d, ci=%0.2f, is_sub=%u, rssi=-%u), num_ul_meas=%d, fn_mod=%u\n", + DEBUGPFN(DMEAS, fn, "%s adding measurement (ber10k=%u, ta_offs=%d, ci_cB=%d, is_sub=%u, rssi=-%u), num_ul_meas=%d, fn_mod=%u\n", gsm_lchan_name(lchan), ulm->ber10k, ulm->ta_offs_256bits, ulm->c_i, dest->is_sub, ulm->inv_rssi, lchan->meas.num_ul_meas, fn_mod); @@ -555,8 +555,10 @@ struct gsm_meas_rep_unidir *mru; uint32_t ber_full_sum = 0; uint32_t irssi_full_sum = 0; + int32_t ci_full_sum = 0; uint32_t ber_sub_sum = 0; uint32_t irssi_sub_sum = 0; + int32_t ci_sub_sum = 0; int32_t ta256b_sum = 0; unsigned int num_meas_sub = 0; unsigned int num_meas_sub_actual = 0; @@ -624,11 +626,13 @@ m = &lchan->meas.uplink[i + num_ul_meas_excess]; if (m->is_sub) { irssi_sub_sum += m->inv_rssi; + ci_sub_sum += m->c_i; num_meas_sub_actual++; is_sub = true; } irssi_full_sum += m->inv_rssi; ta256b_sum += m->ta_offs_256bits; + ci_full_sum += m->c_i; num_ul_meas_actual++; } else { @@ -697,27 +701,32 @@ else irssi_full_sum = irssi_full_sum / num_ul_meas_actual; - if (!num_ul_meas_actual) + if (!num_ul_meas_actual) { ta256b_sum = lchan->meas.ms_toa256; - else + ci_full_sum = lchan->meas.ul_ci_cb_full; + } else { ta256b_sum = ta256b_sum / (signed)num_ul_meas_actual; + ci_full_sum = ci_full_sum / (signed)num_ul_meas_actual; + } if (!num_meas_sub) ber_sub_sum = MEASUREMENT_DUMMY_BER; else ber_sub_sum = ber_sub_sum / num_meas_sub; - if (!num_meas_sub_actual) + if (!num_meas_sub_actual) { irssi_sub_sum = MEASUREMENT_DUMMY_IRSSI; - else + ci_sub_sum = lchan->meas.ul_ci_cb_sub; + } else { irssi_sub_sum = irssi_sub_sum / num_meas_sub_actual; + ci_sub_sum = ci_sub_sum / (signed)num_meas_sub_actual; + } LOGPLCHAN(lchan, DMEAS, LOGL_INFO, - "Computed TA256(% 4d) BER-FULL(%2u.%02u%%), RSSI-FULL(-%3udBm), " - "BER-SUB(%2u.%02u%%), RSSI-SUB(-%3udBm)\n", - ta256b_sum, ber_full_sum / 100, ber_full_sum % 100, - irssi_full_sum, ber_sub_sum / 100, ber_sub_sum % 100, - irssi_sub_sum); + "Computed TA256(% 4d), BER-FULL(%2u.%02u%%), RSSI-FULL(-%3udBm), C/I-FULL(% 4d cB), " + "BER-SUB(%2u.%02u%%), RSSI-SUB(-%3udBm), C/I-SUB(% 4d cB)\n", + ta256b_sum, ber_full_sum / 100, ber_full_sum % 100, irssi_full_sum, ci_full_sum, + ber_sub_sum / 100, ber_sub_sum % 100, irssi_sub_sum, ci_sub_sum); /* store results */ mru = &lchan->meas.ul_res; @@ -726,6 +735,8 @@ mru->full.rx_qual = ber10k_to_rxqual(ber_full_sum); mru->sub.rx_qual = ber10k_to_rxqual(ber_sub_sum); lchan->meas.ms_toa256 = ta256b_sum; + lchan->meas.ul_ci_cb_full = ci_full_sum; + lchan->meas.ul_ci_cb_sub = ci_sub_sum; LOGPLCHAN(lchan, DMEAS, LOGL_INFO, "UL MEAS RXLEV_FULL(%u), RXLEV_SUB(%u), RXQUAL_FULL(%u), RXQUAL_SUB(%u), " diff --git a/tests/meas/meas_testcases.h b/tests/meas/meas_testcases.h index d7eee5c..90f0f85 100644 --- a/tests/meas/meas_testcases.h +++ b/tests/meas/meas_testcases.h @@ -1,5 +1,5 @@ #define ULM(ber, ta, sub, neg_rssi) \ - { .ber10k = (ber), .ta_offs_256bits = (ta), .c_i = 1.0, .is_sub = sub, .inv_rssi = (neg_rssi) } + { .ber10k = (ber), .ta_offs_256bits = (ta), .c_i = 10, .is_sub = sub, .inv_rssi = (neg_rssi) } struct meas_testcase { const char *name; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-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 Sep 13 10:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 10:56:31 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25386/2/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25386/2/src/common/ta_control.c at 54 PS2, Line 54: toa256 - (256 * delta_ta)) > so with delta_ta = toa256/256, this is: [?] You are forgetting rounding here due to integer div. That's precisely what I'm seeking here: check whether we also exceeded TOA256_9OPERCENT towards next TA val. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 10:56:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 11:14:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 11:14:41 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25335 ) Change subject: mgcp_client: add MGW name as logging context ...................................................................... Patch Set 4: (3 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4//COMMIT_MSG at 18 PS4, Line 18: and mgcp_client_pool.c (Two logical changes in one commit, reviewing would have been easier if they were separate. But probably not worth changing now, so fine with me to keep it in one here.) https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client.c File src/libosmo-mgcp-client/mgcp_client.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client.c at 1513 PS4, Line 1513: mame name https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client_pool.c File src/libosmo-mgcp-client/mgcp_client_pool.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client_pool.c at 54 PS4, Line 54: snprintf(name, sizeof(name), "%d:%s", pool_member->nr, description); the code to obtain description seems to be duplicated in mgcp_client_name(). So just use that function here? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 11:14: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 Sep 13 11:24:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 11:24:45 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25443 ) Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... TA Control Loop: Change toa256 switch threshold to 75% of a symbol As per 3GPP TS 45.010 sec 5.6.3 Delay assessment error: """ the delay shall be assessed in such a way hat the assessment error (due to noise and interference) is less than 1/2 normal symbol periods for stationary MS. For MS moving at a speed up to 500 km/h the additional error shall be less than 1/4 normal symbol period. """ Hence, required TA loop calculation should take into account an error of up to 1/2 + 1/4 = 75% of a symbol. By changing the threshold variable we to that percentage we make sure we take into account bigger deviations and update TA accordingly. Related: SYS#5371 Change-Id: I4c5825df4291d3851a113027abf7566de343a190 --- M src/common/ta_control.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/43/25443/1 diff --git a/src/common/ta_control.c b/src/common/ta_control.c index 95a483e..dec0b77 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -26,8 +26,9 @@ #include #include -/* 90% of one bit duration in 1/256 symbols: 256*0.9 */ -#define TOA256_9OPERCENT 230 +/* 3GPP TS 45.010 sec 5.6.3 Delay assessment error: + * 75% of one bit duration in 1/256 symbols: 256*0.9 */ +#define TOA256_THRESH 192 /* rqd_ta value range */ #define TA_MIN 0 @@ -61,12 +62,12 @@ int16_t delta_ta = toa256/256; if (toa256 >= 0) { - if ((toa256 - (256 * delta_ta)) > TOA256_9OPERCENT) + if ((toa256 - (256 * delta_ta)) > TOA256_THRESH) delta_ta++; if (delta_ta > TA_MAX_INC_STEP) delta_ta = TA_MAX_INC_STEP; } else { - if ((toa256 - (256 * delta_ta)) < -TOA256_9OPERCENT) + if ((toa256 - (256 * delta_ta)) < -TOA256_THRESH) delta_ta--; if (delta_ta < -TA_MAX_DEC_STEP) delta_ta = -TA_MAX_DEC_STEP; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-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 Sep 13 11:27:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 11:27:08 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25432 ) Change subject: Add multithreading for the virtual trunk ...................................................................... Patch Set 16: (6 comments) The patch is quite large. I think it will need some cleanup here and there. I have tested this with TTCN3 and my test network. It seems to work fine. I saw TC_two_crcx_and_rtp_osmux_bidir_ipv6_ipv4 and TC_two_crcx_mdcx_and_rtp_osmux_ipv6_ipv4 failing though, but that may also be a local issue. It probably may make sense to add a section about how to configure threads to the manual. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16//COMMIT_MSG at 65 PS16, Line 65: Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Please do not forget to ad the SYS# ticket number. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16//COMMIT_MSG at 66 PS16, Line 66: Please do not forget to add dependencies: Depends: libosmocore Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 (makes it easier if reviewers want to try this out) https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/include/osmocom/mgcp/mgcp_threads.h File include/osmocom/mgcp/mgcp_threads.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/include/osmocom/mgcp/mgcp_threads.h at 62 PS16, Line 62: }; maybe struct mgcp_request_data should go into mgcp_protocol.h. At least thats where I would expect it to be when looking for it. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/libosmo-mgcp/mgcp_protocol.c at 475 PS16, Line 475: #if 0 Is there any problem with that part? It should not interfere much much with the threads since it exists early without doing anything. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/libosmo-mgcp/mgcp_threads.c File src/libosmo-mgcp/mgcp_threads.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/libosmo-mgcp/mgcp_threads.c at 334 PS16, Line 334: ssize_t srv = sendto(returnfd, ret->l2h, msgb_l2len(ret), 0, &w.x.addr.u.sa, sizeof(w.x.addr)); unused? maybe you plan to use it... https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/osmo-mgw/mgw_main.c File src/osmo-mgw/mgw_main.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/osmo-mgw/mgw_main.c at 192 PS16, Line 192: int i; now unused (you have removed the for loop where it was used) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 16 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Mon, 13 Sep 2021 11:27: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 Sep 13 11:30:57 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 11:30:57 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... Patch Set 10: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25424/10/include/osmocom/mgcp/mgcp.h File include/osmocom/mgcp/mgcp.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25424/10/include/osmocom/mgcp/mgcp.h at 96 PS10, Line 96: pthread_mutex_t lock; maybe add a blank line and some comment so that it matches the look of the other struct members? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 11:30:57 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 11:31:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 11:31:17 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 to look at the new patch set (#4). Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initially developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid breaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Related: SYS#4971 Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 --- M doc/manuals/chapters/configuration.adoc M include/osmocom/pcu/pcuif_proto.h M src/gprs_pcu.c M src/nacc_fsm.c M src/nacc_fsm.h M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_vty.c 8 files changed, 266 insertions(+), 73 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/25404/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 11:34:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 11:34:15 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Patch Set 1: I'm just reusing something already existing in the code, so not fixing the linter related topics in this one. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 13 Sep 2021 11:34: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 Sep 13 11:36:06 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 11:36:06 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25421/6/include/osmocom/mgcp/mgcp_network.h File include/osmocom/mgcp/mgcp_network.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25421/6/include/osmocom/mgcp/mgcp_network.h at 85 PS6, Line 85: char subtype_name[64]; Maybe add a comment where in the spec the exact length of 64 is specified? I know codec names are rather short, and probably 64 is way enough but it should be explained somehow at least. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Mon, 13 Sep 2021 11:36: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 Sep 13 11:38:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 11:38:09 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25423 ) Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 7 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 11:38:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 11:42:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 11:42:08 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25422/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25422/6//COMMIT_MSG at 11 PS6, Line 11: It may be obvious but at least I do not understand why the rate counter indexes must be atomic. Maybe you can describe it in the commit message here? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 11:42:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 12:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 12:01:35 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25431 ) Change subject: add a lock-free bounded spsc interthread queue ...................................................................... Patch Set 14: (3 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/25431/14/include/osmocom/mgcp/mgcp_threads_queue.h File include/osmocom/mgcp/mgcp_threads_queue.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25431/14/include/osmocom/mgcp/mgcp_threads_queue.h at 25 PS14, Line 25: maybe dropping a comment about spsc = single producer single consumer would be helpful. Maybe it makes sense to replace the "spsc" in the function names with something that explains the purpose of the queue better. https://gerrit.osmocom.org/c/osmo-mgw/+/25431/14/include/osmocom/mgcp/mgcp_threads_queue.h at 43 PS14, Line 43: The public parts of the API would get an mgcp_ in front of. Like mgcp_spsc_push() https://gerrit.osmocom.org/c/osmo-mgw/+/25431/14/src/libosmo-mgcp/mgcp_threads_queue.c File src/libosmo-mgcp/mgcp_threads_queue.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25431/14/src/libosmo-mgcp/mgcp_threads_queue.c at 134 PS14, Line 134: wrfd used interally to block writers coding style: we use doxygen here (see other c files) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 12:01:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 12:06:18 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 12:06:18 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 13: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25430/13/src/libosmo-mgcp/mgcp_conn.c File src/libosmo-mgcp/mgcp_conn.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25430/13/src/libosmo-mgcp/mgcp_conn.c at 328 PS13, Line 328: void mgcp_conn_free_all(struct mgcp_endpoint *endpx) please keep the variable name "endp". All other functions call it "endp". Now you call it "endpx" That makes no sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 13 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Mon, 13 Sep 2021 12:06:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 12:19:11 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 12:19:11 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25425 ) Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... Patch Set 10: Code-Review-1 (2 comments) I fear there is a problem with this. This this_trunk variable will limit us to use only one E1 trunk in osmo-mgw but when I get it right we already support multiple E1 trunks. One E1 line can have (NUM_E1_TS-1) usable timeslots. That is one physical line on the E1 card. If you have multiple physical lines, each one will get its own trunk. https://gerrit.osmocom.org/c/osmo-mgw/+/25425/10/src/libosmo-mgcp/mgcp_e1.c File src/libosmo-mgcp/mgcp_e1.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25425/10/src/libosmo-mgcp/mgcp_e1.c at a337 PS10, Line 337: /* Find associated trunk */ (see also below) I think your change will limit us to to one E1 line. https://gerrit.osmocom.org/c/osmo-mgw/+/25425/10/src/libosmo-mgcp/mgcp_e1.c at 372 PS10, Line 372: this_trunk = trunk; I wonder if this is really equivalent. Please check this again. I don't think that I have implemented this so that only one E1 line can be used. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 12:19:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 12:24:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 12:24:55 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... Patch Set 12: (2 comments) looks good to me, but it would need some polishing. https://gerrit.osmocom.org/c/osmo-mgw/+/25429/12/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25429/12/src/libosmo-mgcp/mgcp_endp.c at 194 PS12, Line 194: * (epname) */ this is now public, so the comment above should be converted into doxygen. I would name it mgcp_strip_epname, this is shorter and makes more clear that the function does something with the name only and not with the "endp", which is used differently. https://gerrit.osmocom.org/c/osmo-mgw/+/25429/12/src/libosmo-mgcp/mgcp_endp.c at 223 PS12, Line 223: * return NULL */ Also needs doxygen comments. (Here "endp" is used correctly) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 12:24: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 Sep 13 12:26:46 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 12:26:46 +0000 Subject: Change in libosmocore[master]: ratectr: make atomic In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25414 ) Change subject: ratectr: make atomic ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25414/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/25414/2//COMMIT_MSG at 12 PS2, Line 12: Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 I guess this is needed by the multihreaded osmo-mgw. Maybe it makes sense to put a Depends: libosmocore ... tag there. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I117f89add4798a250b5758543f1fb3e01d974205 Gerrit-Change-Number: 25414 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 12:26: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 Mon Sep 13 13:16:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 13:16:00 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25404 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 13:16:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:25:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 13:25:44 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25386/2/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25386/2/src/common/ta_control.c at 54 PS2, Line 54: toa256 - (256 * delta_ta)) > You are forgetting rounding here due to integer div. [?] Right, makes sense now -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 13:25:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:28:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 13:28:30 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25434 ) Change subject: ta_control: Allow switching TA quicker ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 13:28:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:31:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:31:52 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25404 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 4: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-pcu/+/25404/3//COMMIT_MSG at 23 PS3, Line 23: ANR > maybe NAR for Neighbor Address Resolution? Nah, I mean ANR here :D see SYS#5303. I'm not willing to add osmocom-specific acronyms here, not worth it. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 13:31:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:31:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:31:54 +0000 Subject: Change in osmo-pcu[master]: nacc_fsm: Move logic checking if SI is being waited for to a func helper In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25405 ) Change subject: nacc_fsm: Move logic checking if SI is being waited for to a func helper ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 Gerrit-Change-Number: 25405 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 13:31: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 Sep 13 13:31:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:31:57 +0000 Subject: Change in osmo-pcu[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25404 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initially developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid breaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Related: SYS#4971 Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 --- M doc/manuals/chapters/configuration.adoc M include/osmocom/pcu/pcuif_proto.h M src/gprs_pcu.c M src/nacc_fsm.c M src/nacc_fsm.h M src/pcu_l1_if.cpp M src/pcu_l1_if.h M src/pcu_vty.c 8 files changed, 266 insertions(+), 73 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/manuals/chapters/configuration.adoc b/doc/manuals/chapters/configuration.adoc index d031ce6..d778929 100644 --- a/doc/manuals/chapters/configuration.adoc +++ b/doc/manuals/chapters/configuration.adoc @@ -252,8 +252,40 @@ CGI-PS, since it actually equals to the Circuit Switch CGI + RAC. In order to apply this target cell identity translation, OsmoPCU uses the -OsmoBSC Neighbor Resolution CTRL interface (see OsmoBSC User Manual), since the -BSC is the node holding all the neighbor related information. +OsmoBSC Neighbor Resolution Service. This service is nowadays provided by means +of PCUIF container messages, which are transparently forwarded in both directions +by the BTS using the IPA multiplex of the OML connection against the BSC. No +specific configuration is required in any of the involved nodes, they should +behave properly out of the box. + +These neighbor address resolutions ( => ) are by default +cached for a while, in order to avoid querying the BSC frequently. As a result, +the resolution time is also optimized. + +.Example: Configure Neighbor Resolution cache and timeouts +---- +pcu + timer X1 500 <1> + timer X0 60 <2> +---- +<1> Time out if the BSC doesn't answer our resolution request after 500 ms +<2> Keep resolved neighbor addresses cached for 60 seconds + +===== OsmoBSC CTRL interface (deprecated) + +CAUTION: This interface is nowadays considered deprecated and should not be used +anymore. Any related VTY options should be dropped from configuration files, to +let OsmoPCU use the new interface instead. This section is kept here for a while +as a reference for old deployments using old versions of the programs. + +This Neighbor Address Resolution Service was initially implemented by means of a +separate CTRL interface (see OsmoBSC User Manual), where OsmoPCU would create a +CTRL connection to the BSC each time an address resolution was required. + +Older versions of OsmoBSC may not support the current Neighbor Address +Resolution Service over the IPA multiplex (see above). For those cases, OsmoPCU +can be configured to use the old deprecated CTRL interface. + By default, the use of this interface is not configured and hence disabled in OsmoPCU. As a result, until configured, the network won't be able to provide the System Information to the MS prior to allowing the change during NACC against @@ -261,20 +293,12 @@ to configure the interface, the OsmoBSC IP address and port to connect to must be configured in OsmoPCU VTY. -These neighbor address resolutions ( => ) are by default -cached for a while in order to avoid querying the BSC frequently and, as a -result, optimizing the resolution time too. - .Example: Configure Neighbor Resolution CTRL interface against OsmoBSC ---- pcu neighbor resolution 172.18.13.10 4248 <1> - timer X1 500 <2> - timer X0 60 <3> ---- <1> Port 4248 is the default and hence could be omitted in this case -<2> Time out if the BSC doesn't answer our CTRL resolution request after 500 ms -<3> Keep resolved neighbor addresses cached for 60 seconds ==== System Information Resolution diff --git a/include/osmocom/pcu/pcuif_proto.h b/include/osmocom/pcu/pcuif_proto.h index 23b7a2c..8e40a27 100644 --- a/include/osmocom/pcu/pcuif_proto.h +++ b/include/osmocom/pcu/pcuif_proto.h @@ -26,6 +26,10 @@ #define PCU_IF_MSG_TXT_IND 0x70 /* Text indication for BTS */ #define PCU_IF_MSG_CONTAINER 0x80 /* Transparent container message */ +/* msg_type coming from BSC (inside PCU_IF_MSG_CONTAINER) */ +#define PCU_IF_MSG_NEIGH_ADDR_REQ 0x81 /* Neighbor Address Resolution Request */ +#define PCU_IF_MSG_NEIGH_ADDR_CNF 0x82 /* Neighbor Address Resolution Confirmation */ + /* sapi */ #define PCU_IF_SAPI_RACH 0x01 /* channel request on CCCH */ #define PCU_IF_SAPI_AGCH 0x02 /* assignment on AGCH */ @@ -228,6 +232,30 @@ uint8_t data[0]; } __attribute__ ((packed)); +/*** Used inside container: NOTE: values must be network byte order here! ***/ +/* Neighbor Address Resolution Request */ +struct gsm_pcu_if_neigh_addr_req { + uint16_t local_lac; + uint16_t local_ci; + uint16_t tgt_arfcn; + uint8_t tgt_bsic; +} __attribute__ ((packed)); + +/* Neighbor Address Resolution Confirmation */ +struct gsm_pcu_if_neigh_addr_cnf { + struct gsm_pcu_if_neigh_addr_req orig_req; + uint8_t err_code; /* 0 success, !0 failed & below unset */ + /* RAI + CI (CGI-PS): */ + struct __attribute__ ((packed)) { + uint16_t mcc; + uint16_t mnc; + uint8_t mnc_3_digits; + uint16_t lac; + uint8_t rac; + uint16_t cell_identity; + } cgi_ps; +} __attribute__ ((packed)); + struct gsm_pcu_if { /* context based information */ uint8_t msg_type; /* message type */ diff --git a/src/gprs_pcu.c b/src/gprs_pcu.c index a7bab8d..5ed9d7d 100644 --- a/src/gprs_pcu.c +++ b/src/gprs_pcu.c @@ -114,7 +114,7 @@ pcu->vty.ws_pdch = 0; pcu->vty.llc_codel_interval_msec = LLC_CODEL_USE_DEFAULT; pcu->vty.llc_idle_ack_csec = 10; - pcu->vty.neigh_ctrl_addr = talloc_strdup(pcu, "127.0.0.1"); + pcu->vty.neigh_ctrl_addr = NULL; /* don't use CTRL iface for Neigh Addr Resolution */ pcu->vty.neigh_ctrl_port = OSMO_CTRL_PORT_BSC_NEIGH; pcu->T_defs = T_defs_pcu; diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index 738b2c5..ca226ac 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -361,14 +361,72 @@ } } +static int send_neigh_addr_req_ctrl_iface(struct nacc_fsm_ctx *ctx) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + struct gprs_pcu *pcu = bts->pcu; + struct ctrl_cmd *cmd = NULL; + int rc; + + /* We may have changed to this state previously (eg: we are handling + * another Pkt cell Change Notify with different target). Avoid + * re-creating the socket in that case. */ + if (ctx->neigh_ctrl_conn->write_queue.bfd.fd == -1) { + rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, + AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, + NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, + OSMO_SOCK_F_CONNECT); + if (rc < 0) { + LOGPFSML(ctx->fi, LOGL_ERROR, + "Failed to establish CTRL (neighbor resolution) connection to BSC r=%s:%u\n\n", + pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); + goto err_term; + } + } + + cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); + if (!cmd) { + LOGPFSML(ctx->fi, LOGL_ERROR, "CTRL msg creation failed\n"); + goto err_term; + } + + cmd->id = talloc_asprintf(cmd, "%u", arfcn_bsic_2_ctrl_id(ctx->neigh_key.tgt_arfcn, + ctx->neigh_key.tgt_bsic)); + cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", + ctx->neigh_key.local_lac, ctx->neigh_key.local_ci, + ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic); + rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); + if (rc) { + LOGPFSML(ctx->fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); + goto err_term; + } + + talloc_free(cmd); + return 0; + +err_term: + talloc_free(cmd); + return -1; +} + +static int send_neigh_addr_req(struct nacc_fsm_ctx *ctx) +{ + struct gprs_rlcmac_bts *bts = ctx->ms->bts; + + /* If PCU was configured to use the old CTRL interface, use it: */ + if (ctx->neigh_ctrl_conn) + return send_neigh_addr_req_ctrl_iface(ctx); + + /* Otherwise, by default the new PCUIF over IPA Abis multiplex proto should be used: */ + return pcu_tx_neigh_addr_res_req(bts, &ctx->neigh_key); +} + static void st_wait_resolve_rac_ci_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)fi->priv; struct gprs_rlcmac_bts *bts = ctx->ms->bts; struct gprs_pcu *pcu = bts->pcu; const struct osmo_cell_global_id_ps *cgi_ps; - struct ctrl_cmd *cmd = NULL; - int rc; /* First try to find the value in the cache */ cgi_ps = neigh_cache_lookup_value(pcu->neigh_cache, &ctx->neigh_key); @@ -383,45 +441,8 @@ LOGPFSML(fi, LOGL_DEBUG, "No CGI-PS found in cache, resolving " NEIGH_CACHE_ENTRY_KEY_FMT "...\n", NEIGH_CACHE_ENTRY_KEY_ARGS(&ctx->neigh_key)); - /* We may have changed to this state previously (eg: we are handling - * another Pkt cell Change Notify with different target). Avoid - * re-creating the socket in that case. */ - if (ctx->neigh_ctrl_conn->write_queue.bfd.fd == -1) { - rc = osmo_sock_init2_ofd(&ctx->neigh_ctrl_conn->write_queue.bfd, - AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, - NULL, 0, pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port, - OSMO_SOCK_F_CONNECT); - if (rc < 0) { - LOGPFSML(fi, LOGL_ERROR, - "Failed to establish CTRL (neighbor resolution) connection to BSC r=%s:%u\n\n", - pcu->vty.neigh_ctrl_addr, pcu->vty.neigh_ctrl_port); - goto err_term; - } - } - - cmd = ctrl_cmd_create(ctx, CTRL_TYPE_GET); - if (!cmd) { - LOGPFSML(fi, LOGL_ERROR, "CTRL msg creation failed\n"); - goto err_term; - } - - cmd->id = talloc_asprintf(cmd, "%u", arfcn_bsic_2_ctrl_id(ctx->neigh_key.tgt_arfcn, - ctx->neigh_key.tgt_bsic)); - cmd->variable = talloc_asprintf(cmd, "neighbor_resolve_cgi_ps_from_lac_ci.%d.%d.%d.%d", - ctx->neigh_key.local_lac, ctx->neigh_key.local_ci, - ctx->neigh_key.tgt_arfcn, ctx->neigh_key.tgt_bsic); - rc = ctrl_cmd_send(&ctx->neigh_ctrl_conn->write_queue, cmd); - if (rc) { - LOGPFSML(fi, LOGL_ERROR, "CTRL msg sent failed: %d\n", rc); - goto err_term; - } - - talloc_free(cmd); - return; - -err_term: - talloc_free(cmd); - nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + if (send_neigh_addr_req(ctx) < 0) + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); } static void st_wait_resolve_rac_ci(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -435,8 +456,13 @@ handle_retrans_pkt_cell_chg_notif(ctx, notif); break; case NACC_EV_RX_RAC_CI: - /* Assumption: ctx->cgi_ps has been filled by caller of the event */ - nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + /* data is NULL upon failure */ + if (data) { + ctx->cgi_ps = *(struct osmo_cell_global_id_ps *)data; + nacc_fsm_state_chg(fi, NACC_ST_WAIT_REQUEST_SI); + } else { + nacc_fsm_state_chg(fi, NACC_ST_TX_CELL_CHG_CONTINUE); + } break; default: OSMO_ASSERT(0); @@ -740,12 +766,13 @@ struct nacc_fsm_ctx *ctx = (struct nacc_fsm_ctx *)data; char *tmp = NULL, *tok, *saveptr; unsigned int exp_id; + struct osmo_cell_global_id_ps cgi_ps; LOGPFSML(ctx->fi, LOGL_NOTICE, "Received CTRL message: type=%d %s %s: %s\n", cmd->type, cmd->variable, cmd->id, osmo_escape_str(cmd->reply, -1)); if (cmd->type != CTRL_TYPE_GET_REPLY || !cmd->reply) { - nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); return; } @@ -771,33 +798,33 @@ if (!(tok = strtok_r(tmp, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.lac.plmn.mcc = atoi(tok); + cgi_ps.rai.lac.plmn.mcc = atoi(tok); if (!(tok = strtok_r(NULL, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.lac.plmn.mnc = atoi(tok); + cgi_ps.rai.lac.plmn.mnc = atoi(tok); if (!(tok = strtok_r(NULL, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.lac.lac = atoi(tok); + cgi_ps.rai.lac.lac = atoi(tok); if (!(tok = strtok_r(NULL, "-", &saveptr))) goto free_ret; - ctx->cgi_ps.rai.rac = atoi(tok); + cgi_ps.rai.rac = atoi(tok); if (!(tok = strtok_r(NULL, "\0", &saveptr))) goto free_ret; - ctx->cgi_ps.cell_identity = atoi(tok); + cgi_ps.cell_identity = atoi(tok); /* Cache the cgi_ps so we can avoid requesting again same resolution for a while */ - neigh_cache_add(ctx->ms->bts->pcu->neigh_cache, &ctx->neigh_key, &ctx->cgi_ps); + neigh_cache_add(ctx->ms->bts->pcu->neigh_cache, &ctx->neigh_key, &cgi_ps); - osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, &cgi_ps); return; free_ret: talloc_free(tmp); - nacc_fsm_state_chg(ctx->fi, NACC_ST_TX_CELL_CHG_CONTINUE); + osmo_fsm_inst_dispatch(ctx->fi, NACC_EV_RX_RAC_CI, NULL); return; } @@ -834,18 +861,29 @@ if (!ctx->fi) goto free_ret; - ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); - ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; - ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); - if (!ctx->neigh_ctrl_conn) - goto free_ret; - /* Older versions of osmo_ctrl_conn_alloc didn't properly initialize fd to -1, - * so make sure to do it here otherwise fd may be valid fd 0 and cause trouble */ - ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; - llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); + /* If CTRL ip present, use the old CTRL interface for neighbor resolution */ + if (ms->bts->pcu->vty.neigh_ctrl_addr) { + ctx->neigh_ctrl = ctrl_handle_alloc(ctx, ctx, NULL); + ctx->neigh_ctrl->reply_cb = nacc_fsm_ctrl_reply_cb; + ctx->neigh_ctrl_conn = osmo_ctrl_conn_alloc(ctx, ctx->neigh_ctrl); + if (!ctx->neigh_ctrl_conn) + goto free_ret; + /* Older versions of osmo_ctrl_conn_alloc didn't properly initialize fd to -1, + * so make sure to do it here otherwise fd may be valid fd 0 and cause trouble */ + ctx->neigh_ctrl_conn->write_queue.bfd.fd = -1; + llist_add(&ctx->neigh_ctrl_conn->list_entry, &ctx->neigh_ctrl->ccon_list); + } return ctx; free_ret: talloc_free(ctx); return NULL; } + +bool nacc_fsm_is_waiting_addr_resolution(const struct nacc_fsm_ctx *ctx, + const struct neigh_cache_entry_key *neigh_key) +{ + if (ctx->fi->state != NACC_ST_WAIT_RESOLVE_RAC_CI) + return false; + return neigh_cache_entry_key_eq(&ctx->neigh_key, neigh_key); +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h index 7b0adfd..04c9ba4 100644 --- a/src/nacc_fsm.h +++ b/src/nacc_fsm.h @@ -29,7 +29,7 @@ enum nacc_fsm_event { NACC_EV_RX_CELL_CHG_NOTIFICATION, /* data: Packet_Cell_Change_Notification_t* */ - NACC_EV_RX_RAC_CI, /* no data passed, RAC_CI became available in neigh_cache */ + NACC_EV_RX_RAC_CI, /* RAC_CI became available in neigh_cache. NULL on failure, pointer to ctx->cgi_ps on success */ NACC_EV_RX_SI, /* data: struct si_cache_entry* */ NACC_EV_CREATE_RLCMAC_MSG, /* data: struct nacc_ev_create_rlcmac_msg_ctx* */ NACC_EV_RX_CELL_CHG_CONTINUE_ACK, @@ -69,3 +69,6 @@ }; struct nacc_fsm_ctx *nacc_fsm_alloc(struct GprsMs* ms); + +bool nacc_fsm_is_waiting_addr_resolution(const struct nacc_fsm_ctx *ctx, + const struct neigh_cache_entry_key *neigh_key); diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 4530e1a..25c1933 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -44,6 +44,8 @@ #include #include #include + +#include } #include @@ -95,6 +97,7 @@ * PCU messages */ +/* Can be used to allocate message with non-variable size */ struct msgb *pcu_msgb_alloc(uint8_t msg_type, uint8_t bts_nr) { struct msgb *msg; @@ -111,6 +114,21 @@ return msg; } +/* Allocate message with extra size, only reserve pcuif msg hdr */ +static struct msgb *pcu_msgb_alloc_ext_size(uint8_t msg_type, uint8_t bts_nr, size_t extra_size) +{ + struct msgb *msg; + struct gsm_pcu_if *pcu_prim; + msg = msgb_alloc(sizeof(struct gsm_pcu_if) + extra_size, "pcu_sock_tx"); + /* Only header is filled, caller is responible for reserving + filling + * message type specific contents: */ + msgb_put(msg, PCUIF_HDR_SIZE); + pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + pcu_prim->msg_type = msg_type; + pcu_prim->bts_nr = bts_nr; + return msg; +} + const struct value_string gsm_pcu_if_text_type_names[] = { OSMO_VALUE_STRING(PCU_VERSION), OSMO_VALUE_STRING(PCU_OML_ALERT), @@ -271,6 +289,33 @@ pcu_tx_data_req(bts, 0, 0, PCU_IF_SAPI_PCH, 0, 0, 0, data, PAGING_GROUP_LEN + GSM_MACBLOCK_LEN); } +int pcu_tx_neigh_addr_res_req(struct gprs_rlcmac_bts *bts, const struct neigh_cache_entry_key *neigh_key) +{ + struct msgb *msg; + struct gsm_pcu_if *pcu_prim; + struct gsm_pcu_if_neigh_addr_req *naddr_req; + + LOGP(DL1IF, LOGL_DEBUG, "(bts=%u) Tx Neighbor Address Resolution Request: " NEIGH_CACHE_ENTRY_KEY_FMT "\n", + bts->nr, NEIGH_CACHE_ENTRY_KEY_ARGS(neigh_key)); + + msg = pcu_msgb_alloc_ext_size(PCU_IF_MSG_CONTAINER, bts->nr, sizeof(struct gsm_pcu_if_neigh_addr_req)); + if (!msg) + return -ENOMEM; + pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + naddr_req = (struct gsm_pcu_if_neigh_addr_req *)&pcu_prim->u.container.data[0]; + + msgb_put(msg, sizeof(pcu_prim->u.container) + sizeof(struct gsm_pcu_if_neigh_addr_req)); + pcu_prim->u.container.msg_type = PCU_IF_MSG_NEIGH_ADDR_REQ; + osmo_store16be(sizeof(struct gsm_pcu_if_neigh_addr_req), &pcu_prim->u.container.length); + + osmo_store16be(neigh_key->local_lac, &naddr_req->local_lac); + osmo_store16be(neigh_key->local_ci, &naddr_req->local_ci); + osmo_store16be(neigh_key->tgt_arfcn, &naddr_req->tgt_arfcn); + naddr_req->tgt_bsic = neigh_key->tgt_bsic; + + return pcu_sock_send(msg); +} + void pcu_rx_block_time(struct gprs_rlcmac_bts *bts, uint16_t arfcn, uint32_t fn, uint8_t ts_no) { bts_set_current_block_frame_number(bts, fn); @@ -955,11 +1000,60 @@ return 0; } +static int pcu_rx_neigh_addr_cnf(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_neigh_addr_cnf *naddr_cnf) +{ + struct llist_head *tmp; + struct osmo_cell_global_id_ps cgi_ps; + struct osmo_cell_global_id_ps *cgi_ps_ptr = &cgi_ps; + + struct neigh_cache_entry_key neigh_key = { + .local_lac = osmo_load16be(&naddr_cnf->orig_req.local_lac), + .local_ci = osmo_load16be(&naddr_cnf->orig_req.local_ci), + .tgt_arfcn = osmo_load16be(&naddr_cnf->orig_req.tgt_arfcn), + .tgt_bsic = naddr_cnf->orig_req.tgt_bsic, + }; + + if (naddr_cnf->err_code == 0) { + cgi_ps.rai.lac.plmn.mcc = osmo_load16be(&naddr_cnf->cgi_ps.mcc); + cgi_ps.rai.lac.plmn.mnc = osmo_load16be(&naddr_cnf->cgi_ps.mnc); + cgi_ps.rai.lac.plmn.mnc_3_digits = naddr_cnf->cgi_ps.mnc_3_digits; + cgi_ps.rai.lac.lac = osmo_load16be(&naddr_cnf->cgi_ps.lac); + cgi_ps.rai.rac = naddr_cnf->cgi_ps.rac; + cgi_ps.cell_identity = osmo_load16be(&naddr_cnf->cgi_ps.cell_identity); + + LOGP(DL1IF, LOGL_INFO, "Rx Neighbor Address Resolution Confirmation for " NEIGH_CACHE_ENTRY_KEY_FMT ": %s\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(&neigh_key), osmo_cgi_ps_name(&cgi_ps)); + + /* Cache the cgi_ps so we can avoid requesting again same resolution for a while */ + neigh_cache_add(bts->pcu->neigh_cache, &neigh_key, &cgi_ps); + } else { + cgi_ps_ptr = NULL; + LOGP(DL1IF, LOGL_INFO, "Rx Neighbor Address Resolution Confirmation for " NEIGH_CACHE_ENTRY_KEY_FMT ": failed with err_code=%u\n", + NEIGH_CACHE_ENTRY_KEY_ARGS(&neigh_key), naddr_cnf->err_code); + } + + llist_for_each(tmp, bts_ms_store(bts)->ms_list()) { + GprsMs *ms = llist_entry(tmp, typeof(*ms), list); + if (ms->nacc && nacc_fsm_is_waiting_addr_resolution(ms->nacc, &neigh_key)) + osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_RAC_CI, cgi_ps_ptr); + } + return 0; +} + static int pcu_rx_container(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_container *container) { int rc; + uint16_t data_length = osmo_load16be(&container->length); switch (container->msg_type) { + case PCU_IF_MSG_NEIGH_ADDR_CNF: + if (data_length < sizeof(struct gsm_pcu_if_neigh_addr_cnf)) { + LOGP(DL1IF, LOGL_ERROR, "Rx container(NEIGH_ADDR_CNF) message too short: %u vs exp %zu\n", + data_length, sizeof(struct gsm_pcu_if_neigh_addr_cnf)); + return -EINVAL; + } + rc = pcu_rx_neigh_addr_cnf(bts, (struct gsm_pcu_if_neigh_addr_cnf*)&container->data); + break; default: LOGP(DL1IF, LOGL_NOTICE, "(bts=%d) Rx unexpected msg type (%u) inside container!\n", bts->nr, container->msg_type); diff --git a/src/pcu_l1_if.h b/src/pcu_l1_if.h index 2a4f0ea..7d48feb 100644 --- a/src/pcu_l1_if.h +++ b/src/pcu_l1_if.h @@ -160,6 +160,8 @@ #endif struct gprs_rlcmac_bts; +int pcu_tx_neigh_addr_res_req(struct gprs_rlcmac_bts *bts, const struct neigh_cache_entry_key *neigh_key); + int pcu_rx(struct gsm_pcu_if *pcu_prim, size_t pcu_prim_length); int pcu_l1if_open(void); void pcu_l1if_close(void); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 1ca6376..c85e324 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -1067,6 +1067,10 @@ "IPv4 address to connect to\n" "IPv6 address to connect to\n" "Port to connect to (default 4248)\n") { + vty_out(vty, "%% Warning: The CTRL interface for Neighbor Address Resolution is now deprecated." + "Upgrade osmo-bsc and drop the 'neighbor resolution " VTY_IPV46_CMD " [<0-65535>]' VTY " + "option in order to let osmo-pcu use the new resoluton method using the PCUIF over IPA " + "multiplex, which will work out of the box without required configuration.%s", VTY_NEWLINE); osmo_talloc_replace_string(the_pcu, &the_pcu->vty.neigh_ctrl_addr, argv[0]); if (argc > 1) the_pcu->vty.neigh_ctrl_port = atoi(argv[1]); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I6ad33c7ab10202840cf804dea9ba595978d0e920 Gerrit-Change-Number: 25404 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:31:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:31:59 +0000 Subject: Change in osmo-pcu[master]: nacc_fsm: Move logic checking if SI is being waited for to a func helper In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25405 ) Change subject: nacc_fsm: Move logic checking if SI is being waited for to a func helper ...................................................................... nacc_fsm: Move logic checking if SI is being waited for to a func helper We already have a similar function for Neighbor Address Resolution. This way we keep as much as possible internal state related logic into the nacc_fsm.c file. Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 --- M src/gprs_bssgp_rim.c M src/nacc_fsm.c M src/nacc_fsm.h 3 files changed, 13 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/src/gprs_bssgp_rim.c b/src/gprs_bssgp_rim.c index c19ed81..f1679a6 100644 --- a/src/gprs_bssgp_rim.c +++ b/src/gprs_bssgp_rim.c @@ -158,13 +158,8 @@ llist_for_each(tmp, bts_ms_list(bts)) { struct GprsMs *ms = llist_entry(tmp, typeof(*ms), list); - if (!ms->nacc) - continue; - if (ms->nacc->fi->state != NACC_ST_WAIT_REQUEST_SI) - continue; - if (osmo_cgi_ps_cmp(&nacc->reprt_cell, &ms->nacc->cgi_ps) != 0) - continue; - osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_SI, entry); + if (ms->nacc && nacc_fsm_is_waiting_si_resolution(ms->nacc, &nacc->reprt_cell)) + osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_SI, entry); } return 0; } diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index ca226ac..df38927 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -887,3 +887,11 @@ return false; return neigh_cache_entry_key_eq(&ctx->neigh_key, neigh_key); } + +bool nacc_fsm_is_waiting_si_resolution(const struct nacc_fsm_ctx *ctx, + const struct osmo_cell_global_id_ps *cgi_ps) +{ + if (ctx->fi->state != NACC_ST_WAIT_REQUEST_SI) + return false; + return !osmo_cgi_ps_cmp(&ctx->cgi_ps, cgi_ps); +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h index 04c9ba4..68ebd52 100644 --- a/src/nacc_fsm.h +++ b/src/nacc_fsm.h @@ -72,3 +72,6 @@ bool nacc_fsm_is_waiting_addr_resolution(const struct nacc_fsm_ctx *ctx, const struct neigh_cache_entry_key *neigh_key); + +bool nacc_fsm_is_waiting_si_resolution(const struct nacc_fsm_ctx *ctx, + const struct osmo_cell_global_id_ps *cgi_ps); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7378939825cc3ec3280f76bc51233c0a172d8a27 Gerrit-Change-Number: 25405 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:32:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:32:53 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: pespin has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:33:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 13:33:24 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25436 ) Change subject: Support configuring TA loop SACCH block rate ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 13:33:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:33:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:33:52 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... Patch Set 3: Code-Review+2 RE-adding laforge's +1 after fixup and review from osmith and merging. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 13:33:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:34:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:34:03 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25434 ) Change subject: ta_control: Allow switching TA quicker ...................................................................... Patch Set 2: Code-Review+2 RE-adding laforge's +1 after fixup and review from osmith and merging. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 13:34:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:34:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:34:22 +0000 Subject: Change in osmo-bts[master]: TA loop: Take into account UL SACCH 'Actual Timing advance' field In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... TA loop: Take into account UL SACCH 'Actual Timing advance' field First step improving and reworking TA loop: Move trigger of the loop to similar place done by BS/MS Power Control Loop, that is, upon receivial of UL SACCH block, which contains information about the TA used to transmit the block encode in L1SACCH Header. Hence, from computed received TOA and TA used when transmitting from the MS, we can infer the desired TA to be used by the MS, which will send back to it later during DL SACCH block. The values taken are actually the ones calculated for the previous SACCH block and stored in lchan->meas.ms_toa256. That's because L1SACCH contains the TA used for the previous reporting period, similarly to what's specified for MS Power Control loop (TS 45.008 sec 4.2): """ The MS shall confirm the power control level that it is currently employing in the SACCH L1 header on each uplink channel. The indicated value shall be the power control level actually used by the mobile for the last burst of the previous SACCH period. """ (The reader may observe that currently this is not properly done for MS Power Control loop when calling lchan_ms_pwr_ctrl(): this is a bug.) This new method also permits changing TA quicker, since we have more confidence that the TA we request is aligned with the one used to transmit, and we don't simply increment/decrement based on the value we request to transmit. Related: SYS#5371 Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc --- M include/osmo-bts/ta_control.h M src/common/l1sap.c M src/common/measurement.c M src/common/ta_control.c M tests/ta_control/ta_control_test.c 5 files changed, 74 insertions(+), 28 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/include/osmo-bts/ta_control.h b/include/osmo-bts/ta_control.h index 168f14a..bf99331 100644 --- a/include/osmo-bts/ta_control.h +++ b/include/osmo-bts/ta_control.h @@ -2,4 +2,4 @@ #include -void lchan_ms_ta_ctrl(struct gsm_lchan *lchan); +void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256); diff --git a/src/common/l1sap.c b/src/common/l1sap.c index e9d58ce..92abbff 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -1604,6 +1605,7 @@ rsl_tx_meas_res(lchan, NULL, 0, le); radio_link_timeout(lchan, true); + lchan_ms_ta_ctrl(lchan, lchan->rqd_ta, lchan->meas.ms_toa256); lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi, data_ind->lqual_cb); } return -EINVAL; @@ -1632,6 +1634,19 @@ lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; + /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and + * MS_PWR used "for the last burst of the previous SACCH + * period". Since MS must use the values provided in DL SACCH + * starting at next meas period, the value of the "last burst" + * is actually the value used in the entire meas period. Since + * it contains info about the previous meas period, we want to + * feed the Control Loop with the measurements for the same + * period (the previous one), which is stored in lchan->meas(.ul_res): */ + lchan_ms_ta_ctrl(lchan, l1_hdr->ta, lchan->meas.ms_toa256); + /* FIXME: lchan_ms_pwr_ctrl() is currently being passed data_ind->lqual_cb, which is wrong because: + * 1- It contains measurement data for 1 SACCH block only, not the average over the entire period + * 2- It contains measurement data for *current* meas period, not *previous* one. + */ lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else diff --git a/src/common/measurement.c b/src/common/measurement.c index 4c49dc9..a4cc668 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -10,7 +10,6 @@ #include #include #include -#include /* Tables as per TS 45.008 Section 8.3 */ static const uint8_t ts45008_83_tch_f[] = { 52, 53, 54, 55, 56, 57, 58, 59 }; @@ -739,11 +738,6 @@ lchan_meas_compute_extended(lchan); - /* Compute new ta_req value. This has to be done here since the value - * in lchan->meas.num_ul_meas together with lchan->meas.ms_toa256 - * is needed for the computation. */ - lchan_ms_ta_ctrl(lchan); - lchan->meas.num_ul_meas = 0; /* return 1 to indicate that the computation has been done and the next diff --git a/src/common/ta_control.c b/src/common/ta_control.c index ccb60e2..ac9f255 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -1,6 +1,7 @@ /* Loop control for Timing Advance */ /* (C) 2013 by Andreas Eversberg + * (C) 2021 by sysmocom - s.m.f.c. GmbH * * All Rights Reserved * @@ -19,6 +20,8 @@ * */ +/* Related specs: 3GPP TS 45.010 sections 5.5, 5.6 */ + #include #include @@ -29,22 +32,60 @@ #define TA_MIN 0 #define TA_MAX 63 -void lchan_ms_ta_ctrl(struct gsm_lchan *lchan) -{ - int16_t toa256 = lchan->meas.ms_toa256; +/* TODO: make configurable over osmo-bts VTY? Pass it BSC->BTS? */ +#define TA_MAX_INC_STEP 1 +#define TA_MAX_DEC_STEP 1 - if (toa256 < -TOA256_9OPERCENT && lchan->rqd_ta > TA_MIN) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "TOA is too early (%d), now lowering TA from %d to %d\n", - toa256, lchan->rqd_ta, lchan->rqd_ta - 1); - lchan->rqd_ta--; - } else if (toa256 > TOA256_9OPERCENT && lchan->rqd_ta < TA_MAX) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "TOA is too late (%d), now raising TA from %d to %d\n", - toa256, lchan->rqd_ta, lchan->rqd_ta + 1); - lchan->rqd_ta++; - } else + +/*! compute the new "Ordered Timing Advance" communicated to the MS and store it in lchan. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] ms_tx_ta The TA used by the MS and reported in L1SACCH, see struct gsm_sacch_l1_hdr field "ta". + * \param[in] toa256 Time of Arrival (in 1/256th bits) computed at Rx side + */ +void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256) +{ + int16_t new_ta; + /* Shall we skip current block based on configured interval? */ + + /*TODO: implement P_CON_INTERVAL for TA loop */ + + int16_t delta_ta = toa256/256; + if (toa256 >= 0) { + if ((toa256 - (256 * delta_ta)) > TOA256_9OPERCENT) + delta_ta++; + if (delta_ta > TA_MAX_INC_STEP) + delta_ta = TA_MAX_INC_STEP; + } else { + if ((toa256 - (256 * delta_ta)) < -TOA256_9OPERCENT) + delta_ta--; + if (delta_ta < -TA_MAX_DEC_STEP) + delta_ta = -TA_MAX_DEC_STEP; + } + + new_ta = ms_tx_ta + delta_ta; + + /* Make sure new_ta is never negative: */ + if (new_ta < TA_MIN) + new_ta = TA_MIN; + + /* Don't ask for out of range TA: */ + if (new_ta > TA_MAX) + new_ta = TA_MAX; + + if (lchan->rqd_ta == (uint8_t)new_ta) { LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, - "TOA is correct (%d), keeping current TA of %d\n", - toa256, lchan->rqd_ta); + "Keeping current TA at %u: TOA was %d\n", + lchan->rqd_ta, toa256); + return; + } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, + "%s TA %u => %u: TOA was too %s (%d)\n", + (uint8_t)new_ta > lchan->rqd_ta ? "Raising" : "Lowering", + lchan->rqd_ta, (uint8_t)new_ta, + (uint8_t)new_ta > lchan->rqd_ta ? "late" : "early", + toa256); + + /* store the resulting new TA in the lchan */ + lchan->rqd_ta = (uint8_t)new_ta; } diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 2e981b3..12305cb 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -35,9 +35,6 @@ uint8_t rqd_ta_before; int16_t toa256 = toa256_start; - /* Arbitrary value, high enough so that a computation can happen. */ - lchan.meas.num_ul_meas = 10; - printf("toa256_start = %u / 256 = %u, steps = %u\n", toa256_start, toa256_start / 256, steps); @@ -49,8 +46,7 @@ rqd_ta_before = lchan.rqd_ta; - lchan.meas.ms_toa256 = toa256; - lchan_ms_ta_ctrl(&lchan); + lchan_ms_ta_ctrl(&lchan, rqd_ta_before, toa256); rqd_ta_after = lchan.rqd_ta; toa256 -= (rqd_ta_after - rqd_ta_before) * 256; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:34:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:34:22 +0000 Subject: Change in osmo-bts[master]: ta_control: Allow switching TA quicker In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25434 ) Change subject: ta_control: Allow switching TA quicker ...................................................................... ta_control: Allow switching TA quicker >From TS 45.010 5.6.1 (delay tracking for circuit switched channels): """ Restricting the change in timing advance to 1 symbol period at a time gives the simplest implementation of the BTS. However the BTS may use a larger change than this but great care must then be used in the BTS design. """ In general 1 TA at a time (every 480ms of SACCH block) should be enough, since section 5.6.3 states: """ The control loop for the timing advance shall be implemented in such a way that it will cope with MSs moving at a speed up to 500 km/h """ Which is ~140 m/s, and 1 TA step around 500m, so most of the time we should be save and no steps of more than 1 TA should be required. However, unlikely changes from reflected to direct signal or vice versa could produce higher increments, so let's increase the maximum step size allowed to 2 in order to give more room. Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 --- M src/common/ta_control.c M tests/ta_control/ta_control_test.ok 2 files changed, 232 insertions(+), 232 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/common/ta_control.c b/src/common/ta_control.c index ac9f255..e80391d 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -33,8 +33,8 @@ #define TA_MAX 63 /* TODO: make configurable over osmo-bts VTY? Pass it BSC->BTS? */ -#define TA_MAX_INC_STEP 1 -#define TA_MAX_DEC_STEP 1 +#define TA_MAX_INC_STEP 2 +#define TA_MAX_DEC_STEP 2 /*! compute the new "Ordered Timing Advance" communicated to the MS and store it in lchan. diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok index 8ebe5d5..79de8ad 100644 --- a/tests/ta_control/ta_control_test.ok +++ b/tests/ta_control/ta_control_test.ok @@ -2,81 +2,81 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4096 / 256 = 16 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3840 / 256 = 15 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3840 / 256 = 15 lchan.rqd_ta (after) = 2 toa256 (after) = 3584 / 256 = 14 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3584 / 256 = 14 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3328 / 256 = 13 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3328 / 256 = 13 lchan.rqd_ta (after) = 4 toa256 (after) = 3072 / 256 = 12 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 3072 / 256 = 12 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2816 / 256 = 11 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2816 / 256 = 11 lchan.rqd_ta (after) = 6 toa256 (after) = 2560 / 256 = 10 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2560 / 256 = 10 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2304 / 256 = 9 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2304 / 256 = 9 lchan.rqd_ta (after) = 8 toa256 (after) = 2048 / 256 = 8 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 2048 / 256 = 8 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1792 / 256 = 7 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1792 / 256 = 7 lchan.rqd_ta (after) = 10 toa256 (after) = 1536 / 256 = 6 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1536 / 256 = 6 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1280 / 256 = 5 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1280 / 256 = 5 lchan.rqd_ta (after) = 12 toa256 (after) = 1024 / 256 = 4 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 1024 / 256 = 4 - lchan.rqd_ta (after) = 13 - toa256 (after) = 768 / 256 = 3 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 768 / 256 = 3 lchan.rqd_ta (after) = 14 toa256 (after) = 512 / 256 = 2 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 512 / 256 = 2 - lchan.rqd_ta (after) = 15 - toa256 (after) = 256 / 256 = 1 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 256 / 256 = 1 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 lchan.rqd_ta (after) = 16 toa256 (after) = 0 / 256 = 0 Step #16 @@ -105,78 +105,78 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4000 / 256 = 15 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3744 / 256 = 14 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3744 / 256 = 14 lchan.rqd_ta (after) = 2 toa256 (after) = 3488 / 256 = 13 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3488 / 256 = 13 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3232 / 256 = 12 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3232 / 256 = 12 lchan.rqd_ta (after) = 4 toa256 (after) = 2976 / 256 = 11 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 2976 / 256 = 11 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2720 / 256 = 10 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2720 / 256 = 10 lchan.rqd_ta (after) = 6 toa256 (after) = 2464 / 256 = 9 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2464 / 256 = 9 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2208 / 256 = 8 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2208 / 256 = 8 lchan.rqd_ta (after) = 8 toa256 (after) = 1952 / 256 = 7 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 1952 / 256 = 7 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1696 / 256 = 6 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1696 / 256 = 6 lchan.rqd_ta (after) = 10 toa256 (after) = 1440 / 256 = 5 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1440 / 256 = 5 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1184 / 256 = 4 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1184 / 256 = 4 lchan.rqd_ta (after) = 12 toa256 (after) = 928 / 256 = 3 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 928 / 256 = 3 - lchan.rqd_ta (after) = 13 - toa256 (after) = 672 / 256 = 2 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 672 / 256 = 2 lchan.rqd_ta (after) = 14 toa256 (after) = 416 / 256 = 1 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 416 / 256 = 1 lchan.rqd_ta (after) = 15 toa256 (after) = 160 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 Step #15 lchan.rqd_ta (before) = 15 toa256 (before) = 160 / 256 = 0 @@ -358,241 +358,241 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 12345 / 256 = 48 - lchan.rqd_ta (after) = 1 - toa256 (after) = 12089 / 256 = 47 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 12089 / 256 = 47 lchan.rqd_ta (after) = 2 toa256 (after) = 11833 / 256 = 46 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 11833 / 256 = 46 - lchan.rqd_ta (after) = 3 - toa256 (after) = 11577 / 256 = 45 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 11577 / 256 = 45 lchan.rqd_ta (after) = 4 toa256 (after) = 11321 / 256 = 44 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 11321 / 256 = 44 - lchan.rqd_ta (after) = 5 - toa256 (after) = 11065 / 256 = 43 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 11065 / 256 = 43 lchan.rqd_ta (after) = 6 toa256 (after) = 10809 / 256 = 42 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 10809 / 256 = 42 - lchan.rqd_ta (after) = 7 - toa256 (after) = 10553 / 256 = 41 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 10553 / 256 = 41 lchan.rqd_ta (after) = 8 toa256 (after) = 10297 / 256 = 40 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 10297 / 256 = 40 - lchan.rqd_ta (after) = 9 - toa256 (after) = 10041 / 256 = 39 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 10041 / 256 = 39 lchan.rqd_ta (after) = 10 toa256 (after) = 9785 / 256 = 38 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 9785 / 256 = 38 - lchan.rqd_ta (after) = 11 - toa256 (after) = 9529 / 256 = 37 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 9529 / 256 = 37 lchan.rqd_ta (after) = 12 toa256 (after) = 9273 / 256 = 36 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 9273 / 256 = 36 - lchan.rqd_ta (after) = 13 - toa256 (after) = 9017 / 256 = 35 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 9017 / 256 = 35 lchan.rqd_ta (after) = 14 toa256 (after) = 8761 / 256 = 34 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 8761 / 256 = 34 - lchan.rqd_ta (after) = 15 - toa256 (after) = 8505 / 256 = 33 -Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 8505 / 256 = 33 lchan.rqd_ta (after) = 16 toa256 (after) = 8249 / 256 = 32 -Step #16 +Step #8 lchan.rqd_ta (before) = 16 toa256 (before) = 8249 / 256 = 32 - lchan.rqd_ta (after) = 17 - toa256 (after) = 7993 / 256 = 31 -Step #17 - lchan.rqd_ta (before) = 17 - toa256 (before) = 7993 / 256 = 31 lchan.rqd_ta (after) = 18 toa256 (after) = 7737 / 256 = 30 -Step #18 +Step #9 lchan.rqd_ta (before) = 18 toa256 (before) = 7737 / 256 = 30 - lchan.rqd_ta (after) = 19 - toa256 (after) = 7481 / 256 = 29 -Step #19 - lchan.rqd_ta (before) = 19 - toa256 (before) = 7481 / 256 = 29 lchan.rqd_ta (after) = 20 toa256 (after) = 7225 / 256 = 28 -Step #20 +Step #10 lchan.rqd_ta (before) = 20 toa256 (before) = 7225 / 256 = 28 - lchan.rqd_ta (after) = 21 - toa256 (after) = 6969 / 256 = 27 -Step #21 - lchan.rqd_ta (before) = 21 - toa256 (before) = 6969 / 256 = 27 lchan.rqd_ta (after) = 22 toa256 (after) = 6713 / 256 = 26 -Step #22 +Step #11 lchan.rqd_ta (before) = 22 toa256 (before) = 6713 / 256 = 26 - lchan.rqd_ta (after) = 23 - toa256 (after) = 6457 / 256 = 25 -Step #23 - lchan.rqd_ta (before) = 23 - toa256 (before) = 6457 / 256 = 25 lchan.rqd_ta (after) = 24 toa256 (after) = 6201 / 256 = 24 -Step #24 +Step #12 lchan.rqd_ta (before) = 24 toa256 (before) = 6201 / 256 = 24 - lchan.rqd_ta (after) = 25 - toa256 (after) = 5945 / 256 = 23 -Step #25 - lchan.rqd_ta (before) = 25 - toa256 (before) = 5945 / 256 = 23 lchan.rqd_ta (after) = 26 toa256 (after) = 5689 / 256 = 22 -Step #26 +Step #13 lchan.rqd_ta (before) = 26 toa256 (before) = 5689 / 256 = 22 - lchan.rqd_ta (after) = 27 - toa256 (after) = 5433 / 256 = 21 -Step #27 - lchan.rqd_ta (before) = 27 - toa256 (before) = 5433 / 256 = 21 lchan.rqd_ta (after) = 28 toa256 (after) = 5177 / 256 = 20 -Step #28 +Step #14 lchan.rqd_ta (before) = 28 toa256 (before) = 5177 / 256 = 20 - lchan.rqd_ta (after) = 29 - toa256 (after) = 4921 / 256 = 19 -Step #29 - lchan.rqd_ta (before) = 29 - toa256 (before) = 4921 / 256 = 19 lchan.rqd_ta (after) = 30 toa256 (after) = 4665 / 256 = 18 -Step #30 +Step #15 lchan.rqd_ta (before) = 30 toa256 (before) = 4665 / 256 = 18 - lchan.rqd_ta (after) = 31 - toa256 (after) = 4409 / 256 = 17 -Step #31 - lchan.rqd_ta (before) = 31 - toa256 (before) = 4409 / 256 = 17 lchan.rqd_ta (after) = 32 toa256 (after) = 4153 / 256 = 16 -Step #32 +Step #16 lchan.rqd_ta (before) = 32 toa256 (before) = 4153 / 256 = 16 - lchan.rqd_ta (after) = 33 - toa256 (after) = 3897 / 256 = 15 -Step #33 - lchan.rqd_ta (before) = 33 - toa256 (before) = 3897 / 256 = 15 lchan.rqd_ta (after) = 34 toa256 (after) = 3641 / 256 = 14 -Step #34 +Step #17 lchan.rqd_ta (before) = 34 toa256 (before) = 3641 / 256 = 14 - lchan.rqd_ta (after) = 35 - toa256 (after) = 3385 / 256 = 13 -Step #35 - lchan.rqd_ta (before) = 35 - toa256 (before) = 3385 / 256 = 13 lchan.rqd_ta (after) = 36 toa256 (after) = 3129 / 256 = 12 -Step #36 +Step #18 lchan.rqd_ta (before) = 36 toa256 (before) = 3129 / 256 = 12 - lchan.rqd_ta (after) = 37 - toa256 (after) = 2873 / 256 = 11 -Step #37 - lchan.rqd_ta (before) = 37 - toa256 (before) = 2873 / 256 = 11 lchan.rqd_ta (after) = 38 toa256 (after) = 2617 / 256 = 10 -Step #38 +Step #19 lchan.rqd_ta (before) = 38 toa256 (before) = 2617 / 256 = 10 - lchan.rqd_ta (after) = 39 - toa256 (after) = 2361 / 256 = 9 -Step #39 - lchan.rqd_ta (before) = 39 - toa256 (before) = 2361 / 256 = 9 lchan.rqd_ta (after) = 40 toa256 (after) = 2105 / 256 = 8 -Step #40 +Step #20 lchan.rqd_ta (before) = 40 toa256 (before) = 2105 / 256 = 8 - lchan.rqd_ta (after) = 41 - toa256 (after) = 1849 / 256 = 7 -Step #41 - lchan.rqd_ta (before) = 41 - toa256 (before) = 1849 / 256 = 7 lchan.rqd_ta (after) = 42 toa256 (after) = 1593 / 256 = 6 -Step #42 +Step #21 lchan.rqd_ta (before) = 42 toa256 (before) = 1593 / 256 = 6 - lchan.rqd_ta (after) = 43 - toa256 (after) = 1337 / 256 = 5 -Step #43 - lchan.rqd_ta (before) = 43 - toa256 (before) = 1337 / 256 = 5 lchan.rqd_ta (after) = 44 toa256 (after) = 1081 / 256 = 4 -Step #44 +Step #22 lchan.rqd_ta (before) = 44 toa256 (before) = 1081 / 256 = 4 - lchan.rqd_ta (after) = 45 - toa256 (after) = 825 / 256 = 3 -Step #45 - lchan.rqd_ta (before) = 45 - toa256 (before) = 825 / 256 = 3 lchan.rqd_ta (after) = 46 toa256 (after) = 569 / 256 = 2 -Step #46 +Step #23 lchan.rqd_ta (before) = 46 toa256 (before) = 569 / 256 = 2 - lchan.rqd_ta (after) = 47 - toa256 (after) = 313 / 256 = 1 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #24 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #25 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #26 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #27 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #28 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #29 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #30 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #31 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #32 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #33 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #34 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #35 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #36 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #37 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #38 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #39 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #40 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #41 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #42 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #43 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #44 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #45 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #46 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 47 - toa256 (before) = 313 / 256 = 1 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 lchan.rqd_ta (after) = 48 toa256 (after) = 57 / 256 = 0 Step #48 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9e48faabf3090588233e274b2b39065cf85fbec7 Gerrit-Change-Number: 25434 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:34:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 13:34:23 +0000 Subject: Change in osmo-bts[master]: lchan: Move TA CTRL param to its own substruct In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25435 ) Change subject: lchan: Move TA CTRL param to its own substruct ...................................................................... lchan: Move TA CTRL param to its own substruct Field is renamed to look similar to similar fields in power control loop. This is a preparation commit, next one will add functionality to skip SACCH blocksi (P_CON_INTERVAL). Related: SYS#5371 Change-Id: I169ce58ab827e38b64f4b15f935097a9118fa118 --- M include/osmo-bts/gsm_data.h M src/common/handover.c M src/common/l1sap.c M src/common/rsl.c M src/common/ta_control.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-virtual/l1_if.c M tests/ta_control/ta_control_test.c M tests/ta_control/ta_control_test.ok 9 files changed, 269 insertions(+), 263 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve dexter: Looks good to me, approved diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index fa6ea02..e2a1ae9 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -254,6 +254,11 @@ uint8_t max; }; +struct lchan_ta_ctrl_state { + /* Currently requested TA */ + uint8_t current; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -288,8 +293,6 @@ struct osmo_rtp_socket *rtp_socket; } abis_ip; - uint8_t rqd_ta; - char *name; /* For handover, activation is described in 3GPP TS 48.058 4.1.3 and 4.1.4: @@ -403,6 +406,9 @@ /* RTP header Marker bit to indicate beginning of speech after pause */ bool rtp_tx_marker; + /* TA Control Loop */ + struct lchan_ta_ctrl_state ta_ctrl; + /* MS/BS power control state */ struct lchan_power_ctrl_state ms_power_ctrl; struct lchan_power_ctrl_state bs_power_ctrl; diff --git a/src/common/handover.c b/src/common/handover.c index 888649d..922c514 100644 --- a/src/common/handover.c +++ b/src/common/handover.c @@ -51,7 +51,7 @@ gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); gh->proto_discr = GSM48_PDISC_RR; gh->msg_type = GSM48_MT_RR_HANDO_INFO; - msgb_put_u8(msg, lchan->rqd_ta); + msgb_put_u8(msg, lchan->ta_ctrl.current); rsl_rll_push_l3(msg, RSL_MT_UNIT_DATA_REQ, gsm_lchan2chan_nr(lchan), 0x00, 0); @@ -111,7 +111,7 @@ "TA=%u, ref=%u\n", gsm_lchant_name(lchan->type), acc_delay, ra); /* Set timing advance */ - lchan->rqd_ta = acc_delay; + lchan->ta_ctrl.current = acc_delay; lchan->want_dl_sacch_active = true; /* Stop handover detection, wait for valid frame */ @@ -123,7 +123,7 @@ } /* Send HANDover DETect to BSC */ - rsl_tx_hando_det(lchan, &lchan->rqd_ta); + rsl_tx_hando_det(lchan, &lchan->ta_ctrl.current); /* Send PHYS INFO */ lchan->ho.phys_info_count = 1; diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 92abbff..2e122e3 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1186,7 +1186,7 @@ p[0] = lchan->ms_power_ctrl.current; if (lchan->repeated_ul_sacch_active) p[0] |= 0x40; /* See also: 3GPP TS 44.004, section 7.1 */ - p[1] = lchan->rqd_ta; + p[1] = lchan->ta_ctrl.current; le = &lchan->lapdm_ch.lapdm_acch; if (lchan->repeated_acch_capability.dl_sacch) { /* Check if MS requests SACCH repetition and update state accordingly */ @@ -1605,7 +1605,7 @@ rsl_tx_meas_res(lchan, NULL, 0, le); radio_link_timeout(lchan, true); - lchan_ms_ta_ctrl(lchan, lchan->rqd_ta, lchan->meas.ms_toa256); + lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi, data_ind->lqual_cb); } return -EINVAL; diff --git a/src/common/rsl.c b/src/common/rsl.c index f585ec4..ca40e49 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1512,7 +1512,7 @@ memset(&lchan->ho, 0, sizeof(lchan->ho)); memset(&lchan->ms_power_ctrl, 0, sizeof(lchan->ms_power_ctrl)); memset(&lchan->bs_power_ctrl, 0, sizeof(lchan->bs_power_ctrl)); - lchan->rqd_ta = 0; + lchan->ta_ctrl.current = 0; copy_sacch_si_to_lchan(lchan); memset(&lchan->tch, 0, sizeof(lchan->tch)); } @@ -1721,7 +1721,7 @@ } /* 9.3.24 Timing Advance */ if (TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1)) - lchan->rqd_ta = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); + lchan->ta_ctrl.current = *TLVP_VAL(&tp, RSL_IE_TIMING_ADVANCE); /* 9.3.31 (TLV) MS Power Parameters IE (vendor specific) */ if ((ie = TLVP_GET(&tp, RSL_IE_MS_POWER_PARAM)) != NULL) { diff --git a/src/common/ta_control.c b/src/common/ta_control.c index e80391d..6cef545 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -72,20 +72,20 @@ if (new_ta > TA_MAX) new_ta = TA_MAX; - if (lchan->rqd_ta == (uint8_t)new_ta) { + if (lchan->ta_ctrl.current == (uint8_t)new_ta) { LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, "Keeping current TA at %u: TOA was %d\n", - lchan->rqd_ta, toa256); + lchan->ta_ctrl.current, toa256); return; } LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s TA %u => %u: TOA was too %s (%d)\n", - (uint8_t)new_ta > lchan->rqd_ta ? "Raising" : "Lowering", - lchan->rqd_ta, (uint8_t)new_ta, - (uint8_t)new_ta > lchan->rqd_ta ? "late" : "early", + (uint8_t)new_ta > lchan->ta_ctrl.current ? "Raising" : "Lowering", + lchan->ta_ctrl.current, (uint8_t)new_ta, + (uint8_t)new_ta > lchan->ta_ctrl.current ? "late" : "early", toa256); /* store the resulting new TA in the lchan */ - lchan->rqd_ta = (uint8_t)new_ta; + lchan->ta_ctrl.current = (uint8_t)new_ta; } diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 5b48b2e..1e2f89d 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -459,7 +459,7 @@ lac->LchId.bySAPI = cmd->sapi; lac->LchId.byDirection = cmd->dir; - lac->Config.byTimingAdvance = lchan->rqd_ta; + lac->Config.byTimingAdvance = lchan->ta_ctrl.current; lac->Config.byBSIC = lchan->ts->trx->bts->bsic; if ((rc = lchan2lch_par(lchan, &lac->Config)) != 0) { talloc_free(msg); diff --git a/src/osmo-bts-virtual/l1_if.c b/src/osmo-bts-virtual/l1_if.c index 444d6ad..a4a81bd 100644 --- a/src/osmo-bts-virtual/l1_if.c +++ b/src/osmo-bts-virtual/l1_if.c @@ -320,11 +320,11 @@ float ber = n_bits_total==0 ? 1.0 : (float)n_errors / (float)n_bits_total; DEBUGPFN(DMEAS, fn, "RX L1 frame %s chan_nr=0x%02x MS pwr=%ddBm rssi=%.1f dBFS " - "ber=%.2f%% (%d/%d bits) L1_ta=%d rqd_ta=%d toa=%.2f\n", + "ber=%.2f%% (%d/%d bits) L1_ta=%d ta_ctrl.current=%d toa=%.2f\n", gsm_lchan_name(lchan), chan_nr, ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max), - rssi, ber*100, n_errors, n_bits_total, lchan->meas.l1_info.ta, lchan->rqd_ta, toa); + rssi, ber*100, n_errors, n_bits_total, lchan->meas.l1_info.ta, lchan->ta_ctrl.current, toa); - l1if_fill_meas_res(&l1sap, chan_nr, lchan->rqd_ta + toa, ber, rssi, fn); + l1if_fill_meas_res(&l1sap, chan_nr, lchan->ta_ctrl.current + toa, ber, rssi, fn); return l1sap_up(trx, &l1sap); } diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 12305cb..200fd31 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -40,18 +40,18 @@ for (i = 0; i < steps; i++) { printf("Step #%u\n", i); - printf(" lchan.rqd_ta (before) = %u\n", lchan.rqd_ta); + printf(" lchan.ta_ctrl.current (before) = %u\n", lchan.ta_ctrl.current); printf(" toa256 (before) = %u / 256 = %u\n", toa256, toa256 / 256); - rqd_ta_before = lchan.rqd_ta; + rqd_ta_before = lchan.ta_ctrl.current; lchan_ms_ta_ctrl(&lchan, rqd_ta_before, toa256); - rqd_ta_after = lchan.rqd_ta; + rqd_ta_after = lchan.ta_ctrl.current; toa256 -= (rqd_ta_after - rqd_ta_before) * 256; - printf(" lchan.rqd_ta (after) = %u\n", lchan.rqd_ta); + printf(" lchan.ta_ctrl.current (after) = %u\n", lchan.ta_ctrl.current); printf(" toa256 (after) = %u / 256 = %u\n", toa256, toa256 / 256); } diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok index 79de8ad..a158675 100644 --- a/tests/ta_control/ta_control_test.ok +++ b/tests/ta_control/ta_control_test.ok @@ -1,609 +1,609 @@ toa256_start = 4096 / 256 = 16, steps = 20 Step #0 - lchan.rqd_ta (before) = 0 + lchan.ta_ctrl.current (before) = 0 toa256 (before) = 4096 / 256 = 16 - lchan.rqd_ta (after) = 2 + lchan.ta_ctrl.current (after) = 2 toa256 (after) = 3584 / 256 = 14 Step #1 - lchan.rqd_ta (before) = 2 + lchan.ta_ctrl.current (before) = 2 toa256 (before) = 3584 / 256 = 14 - lchan.rqd_ta (after) = 4 + lchan.ta_ctrl.current (after) = 4 toa256 (after) = 3072 / 256 = 12 Step #2 - lchan.rqd_ta (before) = 4 + lchan.ta_ctrl.current (before) = 4 toa256 (before) = 3072 / 256 = 12 - lchan.rqd_ta (after) = 6 + lchan.ta_ctrl.current (after) = 6 toa256 (after) = 2560 / 256 = 10 Step #3 - lchan.rqd_ta (before) = 6 + lchan.ta_ctrl.current (before) = 6 toa256 (before) = 2560 / 256 = 10 - lchan.rqd_ta (after) = 8 + lchan.ta_ctrl.current (after) = 8 toa256 (after) = 2048 / 256 = 8 Step #4 - lchan.rqd_ta (before) = 8 + lchan.ta_ctrl.current (before) = 8 toa256 (before) = 2048 / 256 = 8 - lchan.rqd_ta (after) = 10 + lchan.ta_ctrl.current (after) = 10 toa256 (after) = 1536 / 256 = 6 Step #5 - lchan.rqd_ta (before) = 10 + lchan.ta_ctrl.current (before) = 10 toa256 (before) = 1536 / 256 = 6 - lchan.rqd_ta (after) = 12 + lchan.ta_ctrl.current (after) = 12 toa256 (after) = 1024 / 256 = 4 Step #6 - lchan.rqd_ta (before) = 12 + lchan.ta_ctrl.current (before) = 12 toa256 (before) = 1024 / 256 = 4 - lchan.rqd_ta (after) = 14 + lchan.ta_ctrl.current (after) = 14 toa256 (after) = 512 / 256 = 2 Step #7 - lchan.rqd_ta (before) = 14 + lchan.ta_ctrl.current (before) = 14 toa256 (before) = 512 / 256 = 2 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #8 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #9 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #10 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #11 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #12 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #13 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #14 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #16 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #17 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #18 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Step #19 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 0 / 256 = 0 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 0 / 256 = 0 Done. toa256_start = 4000 / 256 = 15, steps = 50 Step #0 - lchan.rqd_ta (before) = 0 + lchan.ta_ctrl.current (before) = 0 toa256 (before) = 4000 / 256 = 15 - lchan.rqd_ta (after) = 2 + lchan.ta_ctrl.current (after) = 2 toa256 (after) = 3488 / 256 = 13 Step #1 - lchan.rqd_ta (before) = 2 + lchan.ta_ctrl.current (before) = 2 toa256 (before) = 3488 / 256 = 13 - lchan.rqd_ta (after) = 4 + lchan.ta_ctrl.current (after) = 4 toa256 (after) = 2976 / 256 = 11 Step #2 - lchan.rqd_ta (before) = 4 + lchan.ta_ctrl.current (before) = 4 toa256 (before) = 2976 / 256 = 11 - lchan.rqd_ta (after) = 6 + lchan.ta_ctrl.current (after) = 6 toa256 (after) = 2464 / 256 = 9 Step #3 - lchan.rqd_ta (before) = 6 + lchan.ta_ctrl.current (before) = 6 toa256 (before) = 2464 / 256 = 9 - lchan.rqd_ta (after) = 8 + lchan.ta_ctrl.current (after) = 8 toa256 (after) = 1952 / 256 = 7 Step #4 - lchan.rqd_ta (before) = 8 + lchan.ta_ctrl.current (before) = 8 toa256 (before) = 1952 / 256 = 7 - lchan.rqd_ta (after) = 10 + lchan.ta_ctrl.current (after) = 10 toa256 (after) = 1440 / 256 = 5 Step #5 - lchan.rqd_ta (before) = 10 + lchan.ta_ctrl.current (before) = 10 toa256 (before) = 1440 / 256 = 5 - lchan.rqd_ta (after) = 12 + lchan.ta_ctrl.current (after) = 12 toa256 (after) = 928 / 256 = 3 Step #6 - lchan.rqd_ta (before) = 12 + lchan.ta_ctrl.current (before) = 12 toa256 (before) = 928 / 256 = 3 - lchan.rqd_ta (after) = 14 + lchan.ta_ctrl.current (after) = 14 toa256 (after) = 416 / 256 = 1 Step #7 - lchan.rqd_ta (before) = 14 + lchan.ta_ctrl.current (before) = 14 toa256 (before) = 416 / 256 = 1 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #8 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #9 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #10 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #11 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #12 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #13 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #14 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #16 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #17 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #18 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #19 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #20 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #21 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #22 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #23 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #24 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #25 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #26 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #27 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #28 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #29 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #30 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #31 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #32 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #33 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #34 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #35 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #36 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #37 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #38 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #39 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #40 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #41 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #42 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #43 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #44 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #45 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #46 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #48 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Step #49 - lchan.rqd_ta (before) = 15 + lchan.ta_ctrl.current (before) = 15 toa256 (before) = 160 / 256 = 0 - lchan.rqd_ta (after) = 15 + lchan.ta_ctrl.current (after) = 15 toa256 (after) = 160 / 256 = 0 Done. toa256_start = 12345 / 256 = 48, steps = 50 Step #0 - lchan.rqd_ta (before) = 0 + lchan.ta_ctrl.current (before) = 0 toa256 (before) = 12345 / 256 = 48 - lchan.rqd_ta (after) = 2 + lchan.ta_ctrl.current (after) = 2 toa256 (after) = 11833 / 256 = 46 Step #1 - lchan.rqd_ta (before) = 2 + lchan.ta_ctrl.current (before) = 2 toa256 (before) = 11833 / 256 = 46 - lchan.rqd_ta (after) = 4 + lchan.ta_ctrl.current (after) = 4 toa256 (after) = 11321 / 256 = 44 Step #2 - lchan.rqd_ta (before) = 4 + lchan.ta_ctrl.current (before) = 4 toa256 (before) = 11321 / 256 = 44 - lchan.rqd_ta (after) = 6 + lchan.ta_ctrl.current (after) = 6 toa256 (after) = 10809 / 256 = 42 Step #3 - lchan.rqd_ta (before) = 6 + lchan.ta_ctrl.current (before) = 6 toa256 (before) = 10809 / 256 = 42 - lchan.rqd_ta (after) = 8 + lchan.ta_ctrl.current (after) = 8 toa256 (after) = 10297 / 256 = 40 Step #4 - lchan.rqd_ta (before) = 8 + lchan.ta_ctrl.current (before) = 8 toa256 (before) = 10297 / 256 = 40 - lchan.rqd_ta (after) = 10 + lchan.ta_ctrl.current (after) = 10 toa256 (after) = 9785 / 256 = 38 Step #5 - lchan.rqd_ta (before) = 10 + lchan.ta_ctrl.current (before) = 10 toa256 (before) = 9785 / 256 = 38 - lchan.rqd_ta (after) = 12 + lchan.ta_ctrl.current (after) = 12 toa256 (after) = 9273 / 256 = 36 Step #6 - lchan.rqd_ta (before) = 12 + lchan.ta_ctrl.current (before) = 12 toa256 (before) = 9273 / 256 = 36 - lchan.rqd_ta (after) = 14 + lchan.ta_ctrl.current (after) = 14 toa256 (after) = 8761 / 256 = 34 Step #7 - lchan.rqd_ta (before) = 14 + lchan.ta_ctrl.current (before) = 14 toa256 (before) = 8761 / 256 = 34 - lchan.rqd_ta (after) = 16 + lchan.ta_ctrl.current (after) = 16 toa256 (after) = 8249 / 256 = 32 Step #8 - lchan.rqd_ta (before) = 16 + lchan.ta_ctrl.current (before) = 16 toa256 (before) = 8249 / 256 = 32 - lchan.rqd_ta (after) = 18 + lchan.ta_ctrl.current (after) = 18 toa256 (after) = 7737 / 256 = 30 Step #9 - lchan.rqd_ta (before) = 18 + lchan.ta_ctrl.current (before) = 18 toa256 (before) = 7737 / 256 = 30 - lchan.rqd_ta (after) = 20 + lchan.ta_ctrl.current (after) = 20 toa256 (after) = 7225 / 256 = 28 Step #10 - lchan.rqd_ta (before) = 20 + lchan.ta_ctrl.current (before) = 20 toa256 (before) = 7225 / 256 = 28 - lchan.rqd_ta (after) = 22 + lchan.ta_ctrl.current (after) = 22 toa256 (after) = 6713 / 256 = 26 Step #11 - lchan.rqd_ta (before) = 22 + lchan.ta_ctrl.current (before) = 22 toa256 (before) = 6713 / 256 = 26 - lchan.rqd_ta (after) = 24 + lchan.ta_ctrl.current (after) = 24 toa256 (after) = 6201 / 256 = 24 Step #12 - lchan.rqd_ta (before) = 24 + lchan.ta_ctrl.current (before) = 24 toa256 (before) = 6201 / 256 = 24 - lchan.rqd_ta (after) = 26 + lchan.ta_ctrl.current (after) = 26 toa256 (after) = 5689 / 256 = 22 Step #13 - lchan.rqd_ta (before) = 26 + lchan.ta_ctrl.current (before) = 26 toa256 (before) = 5689 / 256 = 22 - lchan.rqd_ta (after) = 28 + lchan.ta_ctrl.current (after) = 28 toa256 (after) = 5177 / 256 = 20 Step #14 - lchan.rqd_ta (before) = 28 + lchan.ta_ctrl.current (before) = 28 toa256 (before) = 5177 / 256 = 20 - lchan.rqd_ta (after) = 30 + lchan.ta_ctrl.current (after) = 30 toa256 (after) = 4665 / 256 = 18 Step #15 - lchan.rqd_ta (before) = 30 + lchan.ta_ctrl.current (before) = 30 toa256 (before) = 4665 / 256 = 18 - lchan.rqd_ta (after) = 32 + lchan.ta_ctrl.current (after) = 32 toa256 (after) = 4153 / 256 = 16 Step #16 - lchan.rqd_ta (before) = 32 + lchan.ta_ctrl.current (before) = 32 toa256 (before) = 4153 / 256 = 16 - lchan.rqd_ta (after) = 34 + lchan.ta_ctrl.current (after) = 34 toa256 (after) = 3641 / 256 = 14 Step #17 - lchan.rqd_ta (before) = 34 + lchan.ta_ctrl.current (before) = 34 toa256 (before) = 3641 / 256 = 14 - lchan.rqd_ta (after) = 36 + lchan.ta_ctrl.current (after) = 36 toa256 (after) = 3129 / 256 = 12 Step #18 - lchan.rqd_ta (before) = 36 + lchan.ta_ctrl.current (before) = 36 toa256 (before) = 3129 / 256 = 12 - lchan.rqd_ta (after) = 38 + lchan.ta_ctrl.current (after) = 38 toa256 (after) = 2617 / 256 = 10 Step #19 - lchan.rqd_ta (before) = 38 + lchan.ta_ctrl.current (before) = 38 toa256 (before) = 2617 / 256 = 10 - lchan.rqd_ta (after) = 40 + lchan.ta_ctrl.current (after) = 40 toa256 (after) = 2105 / 256 = 8 Step #20 - lchan.rqd_ta (before) = 40 + lchan.ta_ctrl.current (before) = 40 toa256 (before) = 2105 / 256 = 8 - lchan.rqd_ta (after) = 42 + lchan.ta_ctrl.current (after) = 42 toa256 (after) = 1593 / 256 = 6 Step #21 - lchan.rqd_ta (before) = 42 + lchan.ta_ctrl.current (before) = 42 toa256 (before) = 1593 / 256 = 6 - lchan.rqd_ta (after) = 44 + lchan.ta_ctrl.current (after) = 44 toa256 (after) = 1081 / 256 = 4 Step #22 - lchan.rqd_ta (before) = 44 + lchan.ta_ctrl.current (before) = 44 toa256 (before) = 1081 / 256 = 4 - lchan.rqd_ta (after) = 46 + lchan.ta_ctrl.current (after) = 46 toa256 (after) = 569 / 256 = 2 Step #23 - lchan.rqd_ta (before) = 46 + lchan.ta_ctrl.current (before) = 46 toa256 (before) = 569 / 256 = 2 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #24 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #25 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #26 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #27 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #28 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #29 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #30 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #31 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #32 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #33 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #34 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #35 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #36 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #37 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #38 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #39 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #40 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #41 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #42 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #43 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #44 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #45 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #46 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #48 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Step #49 - lchan.rqd_ta (before) = 48 + lchan.ta_ctrl.current (before) = 48 toa256 (before) = 57 / 256 = 0 - lchan.rqd_ta (after) = 48 + lchan.ta_ctrl.current (after) = 48 toa256 (after) = 57 / 256 = 0 Done. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I169ce58ab827e38b64f4b15f935097a9118fa118 Gerrit-Change-Number: 25435 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 13:57:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 13:57:42 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25408 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 3: (3 comments) code looks good https://gerrit.osmocom.org/c/osmo-bsc/+/25408/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bsc/+/25408/3//COMMIT_MSG at 9 PS3, Line 9: initiall initially https://gerrit.osmocom.org/c/osmo-bsc/+/25408/3//COMMIT_MSG at 32 PS3, Line 32: rbeaking breaking https://gerrit.osmocom.org/c/osmo-bsc/+/25408/3/doc/manuals/chapters/handover.adoc File doc/manuals/chapters/handover.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/25408/3/doc/manuals/chapters/handover.adoc at 770 PS3, Line 770: OsmoBTs OsmoBTS -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 13:57:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:02:18 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 14:02:18 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 to look at the new patch set (#5). Change subject: mgcp_client: add MGW name as logging context ...................................................................... mgcp_client: add MGW name as logging context Usually only one MGCP client per application is present. Then the log lines from mgcp_client.c will be distinguishable without additional information. When the application is using a pool of MGWs, then the various MGCP Client instances become hard to distinguish. - Add a possibility to set a description (name) for each MGW pool member. When no description is set, use the domain name. - Output the pool member name on each log line in mgcp_client.c and mgcp_client_pool.c Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Related: SYS#5091 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_pool_internal.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_pool.c M src/libosmo-mgcp-client/mgcp_client_vty.c M tests/mgcp_client/mgcp_client_test.err 6 files changed, 175 insertions(+), 109 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/35/25335/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:02:39 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 13 Sep 2021 14:02:39 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25335 ) Change subject: mgcp_client: add MGW name as logging context ...................................................................... Patch Set 4: (3 comments) thanks for reviewing this. https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4//COMMIT_MSG at 18 PS4, Line 18: and mgcp_client_pool.c > (Two logical changes in one commit, reviewing would have been easier if they were separate. [?] I think it is better to have both in one commit. The naming feature is introduced and then used. Introducing it without using it then would also not have been optimal. https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client.c File src/libosmo-mgcp-client/mgcp_client.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client.c at 1513 PS4, Line 1513: mame > name Done https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client_pool.c File src/libosmo-mgcp-client/mgcp_client_pool.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4/src/libosmo-mgcp-client/mgcp_client_pool.c at 54 PS4, Line 54: snprintf(name, sizeof(name), "%d:%s", pool_member->nr, description); > the code to obtain description seems to be duplicated in mgcp_client_name(). [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 14:02:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:04:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 14:04:09 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 to look at the new patch set (#4). Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initially developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid breaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Change-Id: I9073a121564503f483c84263ac72476041e47c03 Related: SYS#4971 --- M doc/manuals/chapters/handover.adoc M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/pcuif_proto.h M src/osmo-bsc/abis_osmo.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c 6 files changed, 190 insertions(+), 50 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/08/25408/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:12:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 14:12:31 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25335 ) Change subject: mgcp_client: add MGW name as logging context ...................................................................... Patch Set 5: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25335/4//COMMIT_MSG at 18 PS4, Line 18: and mgcp_client_pool.c > I think it is better to have both in one commit. The naming feature is introduced and then used. [?] agreed, but it would have been used in vty output already. anyway, it's fine as is :) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 14:12:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:13:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 14:13:37 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25408 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 14:13: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 Sep 13 14:14:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 14:14:17 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25408 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 14: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 Mon Sep 13 14:14:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 14:14:21 +0000 Subject: Change in osmo-bsc[master]: Support Neighbor Address Resolution over PCUIF IPA multiplex In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25408 ) Change subject: Support Neighbor Address Resolution over PCUIF IPA multiplex ...................................................................... Support Neighbor Address Resolution over PCUIF IPA multiplex While NACC was initially developed, it became clear there was need for a way to interact PCU<->BSC in order resolve ARFCN+BSIC into CGI-PS for later RIM usage. Hence, this resolution was first (until today) implemented using an out of bands RPC system using the CTRL interface, which required specific config to be written and matches in osmo-pcu and osmo-bsc VTY (ip+port of the CTRL interface to use). However, this has several shortcomings: * As explained above, specific configuration is required * Since recently, we do support BSC redundancy in osmo-bts. Hence the BTS may switch to a BSC other than first one. If that happened, that'd mean the CTRL interface would still point to the initially configured one, which may not be the same currently serving the PCU. During recent development of ANR related features, a similar need for PCU<->BSC was required, but this time it was decided to extend the IPA multiplex of the Abis OML connection to pass PCUIF messages, transparently forwarded to each side by the BTS. This has the advantage that connection PCU<->BTS is handled by BTS and both sides send messages transparently. Let's switch by default to using this new interface, while still maintaing the old way for a while (announcing them as deprecated) to avoid breaking existing deployments until they are upgraded to new versions of osmo-pcu and osmo-bsc. Change-Id: I9073a121564503f483c84263ac72476041e47c03 Related: SYS#4971 --- M doc/manuals/chapters/handover.adoc M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/pcuif_proto.h M src/osmo-bsc/abis_osmo.c M src/osmo-bsc/neighbor_ident.c M src/osmo-bsc/neighbor_ident_vty.c 6 files changed, 190 insertions(+), 50 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index ab0b1fa..f567259 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -747,19 +747,41 @@ This PS information is solely used by the Neighbor Resolution Service, aimed at nodes other than BSC itself, and described below. -=== Neighbor Resolution Service CTRL interface +=== Neighbor Address Resolution Service -This service is provided in order to provide the PCU a way to translate +This service is provided in order to provide the PCU with a way to translate ARCFCN+BSIC into CGI-PS in order to use RIM services and accomplish PS Handovers. This interface is Osmocom specific, since the standard doesn't provide any specifications on how to provide this kind of information to the PCU. -Since the PCU can be either BSC-colocated or BTS-colocated (hence on a different -host than BSC), this must be a network-based interface. Since the service is -Osmocom-specific, it was decided to re-use the CTRL interface available in most -Osmocom processes (see <>). +Since the PCU can be either BSC co-located or BTS co-located (hence on a +different host than BSC), messages may need to be sent over the network at some +point. + +In consequence, it was decided implement a new _Container_ type message in +PCUIF which the PCU can use to directly communicate with the BSC. If the PCU is +BSC co-located, then the BSC can directly communicate over the unix socket. If +the PCU is BTS co-located, then PCU sends PCUIF messages over the unix socket to +the BTS, and the BTS forwards the PCUIF messages transparently over the the IPA +multiplex of the OML connection towards the BSC and back. + +Support for this interface is available by default nowadays in OsmoPCU, OsmoBTS +and OsmoBSC, and requires no specific configuration, it will just work out of +the box. + +==== Neighbor Address Resolution Service CTRL interface (deprecated) + +Before the existence of the PCUIF forwarded over IPA multiplex interface (see +above), the Neighbor Address Resolution Service was implemented by means of a +CTRL interface, similar to the one used in most Osmocom processes (see +<>). + +CAUTION: This interface is nowadays considered deprecated and should not be used +anymore. Any related VTY options should be dropped from configuration files, to +let OsmoPCU use the new interface instead. This section is kept here for a while +as a reference for old deployments using old versions of the programs. Due to security concerns, the set of CTRL commands available in this service is configured in a different IP address and port, since the service diff --git a/include/osmocom/bsc/neighbor_ident.h b/include/osmocom/bsc/neighbor_ident.h index 0565d52..58300ba 100644 --- a/include/osmocom/bsc/neighbor_ident.h +++ b/include/osmocom/bsc/neighbor_ident.h @@ -86,6 +86,10 @@ "for all BSICs / use any BSIC in this ARFCN\n" void neighbor_ident_vty_parse_arfcn_bsic(struct cell_ab *ab, const char **argv); +int neighbor_address_resolution(const struct gsm_network *net, const struct cell_ab *ab, + uint16_t lac, uint16_t cell_id, + struct osmo_cell_global_id_ps *res_cgi_ps); + struct ctrl_handle *neighbor_controlif_setup(struct gsm_network *net); int neighbor_ctrl_cmds_install(struct gsm_network *net); diff --git a/include/osmocom/bsc/pcuif_proto.h b/include/osmocom/bsc/pcuif_proto.h index 3e6f651..4921fc3 100644 --- a/include/osmocom/bsc/pcuif_proto.h +++ b/include/osmocom/bsc/pcuif_proto.h @@ -26,6 +26,10 @@ #define PCU_IF_MSG_TXT_IND 0x70 /* Text indication for BTS */ #define PCU_IF_MSG_CONTAINER 0x80 /* Transparent container message */ +/* msg_type coming from BSC (inside PCU_IF_MSG_CONTAINER) */ +#define PCU_IF_MSG_NEIGH_ADDR_REQ 0x81 /* Neighbor Address Resolution Request */ +#define PCU_IF_MSG_NEIGH_ADDR_CNF 0x82 /* Neighbor Address Resolution Confirmation */ + /* sapi */ #define PCU_IF_SAPI_RACH 0x01 /* channel request on CCCH */ #define PCU_IF_SAPI_AGCH 0x02 /* assignment on AGCH */ @@ -226,6 +230,30 @@ uint8_t data[0]; } __attribute__ ((packed)); +/*** Used inside container: NOTE: values must be network byte order here! ***/ +/* Neighbor Address Resolution Request */ +struct gsm_pcu_if_neigh_addr_req { + uint16_t local_lac; + uint16_t local_ci; + uint16_t tgt_arfcn; + uint8_t tgt_bsic; +} __attribute__ ((packed)); + +/* Neighbor Address Resolution Confirmation */ +struct gsm_pcu_if_neigh_addr_cnf { + struct gsm_pcu_if_neigh_addr_req orig_req; + uint8_t err_code; /* 0 success, !0 failed & below unset */ + /* RAI + CI (CGI-PS): */ + struct __attribute__ ((packed)) { + uint16_t mcc; + uint16_t mnc; + uint8_t mnc_3_digits; + uint16_t lac; + uint8_t rac; + uint16_t cell_identity; + } cgi_ps; +} __attribute__ ((packed)); + struct gsm_pcu_if { /* context based information */ uint8_t msg_type; /* message type */ diff --git a/src/osmo-bsc/abis_osmo.c b/src/osmo-bsc/abis_osmo.c index 39caac6..48774b4 100644 --- a/src/osmo-bsc/abis_osmo.c +++ b/src/osmo-bsc/abis_osmo.c @@ -32,6 +32,7 @@ #include #include #include +#include #define OM_HEADROOM_SIZE 128 @@ -40,7 +41,6 @@ /////////////////////////////////////// #define PCUIF_HDR_SIZE ( sizeof(struct gsm_pcu_if) - sizeof(((struct gsm_pcu_if *)0)->u) ) -#if 0 static struct msgb *abis_osmo_pcu_msgb_alloc(uint8_t msg_type, uint8_t bts_nr, size_t extra_size) { struct msgb *msg; @@ -62,7 +62,65 @@ ipa_prepend_header_ext(msg, IPAC_PROTO_EXT_PCU); return abis_osmo_sendmsg(bts, msg); } -#endif + +static int abis_osmo_pcu_tx_neigh_addr_cnf(struct gsm_bts *bts, const struct gsm_pcu_if_neigh_addr_req *naddr_req, + uint8_t err_code, const struct osmo_cell_global_id_ps *cgi_ps) +{ + struct msgb *msg = abis_osmo_pcu_msgb_alloc(PCU_IF_MSG_CONTAINER, bts->bts_nr, sizeof(struct gsm_pcu_if_neigh_addr_cnf)); + struct gsm_pcu_if *pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + struct gsm_pcu_if_neigh_addr_cnf *naddr_cnf = (struct gsm_pcu_if_neigh_addr_cnf *)&pcu_prim->u.container.data[0]; + + msgb_put(msg, sizeof(pcu_prim->u.container) + sizeof(struct gsm_pcu_if_neigh_addr_cnf)); + pcu_prim->u.container.msg_type = PCU_IF_MSG_NEIGH_ADDR_CNF; + osmo_store16be(sizeof(struct gsm_pcu_if_neigh_addr_cnf), &pcu_prim->u.container.length); + + naddr_cnf->orig_req = *naddr_req; + naddr_cnf->err_code = err_code; + if (err_code == 0) { + osmo_store16be(cgi_ps->rai.lac.plmn.mcc, &naddr_cnf->cgi_ps.mcc); + osmo_store16be(cgi_ps->rai.lac.plmn.mnc, &naddr_cnf->cgi_ps.mnc); + naddr_cnf->cgi_ps.mnc_3_digits = cgi_ps->rai.lac.plmn.mnc_3_digits; + osmo_store16be(cgi_ps->rai.lac.lac, &naddr_cnf->cgi_ps.lac); + naddr_cnf->cgi_ps.rac = cgi_ps->rai.rac; + osmo_store16be(cgi_ps->cell_identity, &naddr_cnf->cgi_ps.cell_identity); + } + + return abis_osmo_pcu_sendmsg(bts, msg); +} + +static int rcvmsg_pcu_neigh_addr_req(struct gsm_bts *bts, const struct gsm_pcu_if_neigh_addr_req *naddr_req) +{ + + struct cell_ab ab; + uint16_t local_lac, local_ci; + struct osmo_cell_global_id_ps cgi_ps; + int rc; + + local_lac = osmo_load16be(&naddr_req->local_lac); + local_ci = osmo_load16be(&naddr_req->local_ci); + ab = (struct cell_ab){ + .arfcn = osmo_load16be(&naddr_req->tgt_arfcn), + .bsic = naddr_req->tgt_bsic, + }; + + LOGP(DNM, LOGL_INFO, "(bts=%d) Rx Neighbor Address Resolution Req (ARFCN=%u,BSIC=%u) from (LAC=%u,CI=%u)\n", + bts->nr, ab.arfcn, ab.bsic, local_lac, local_ci); + + if (!cell_ab_valid(&ab)) { + rc = 2; + goto do_fail; + } + + if (neighbor_address_resolution(bts->network, &ab, local_lac, local_ci, &cgi_ps) < 0) { + rc = 1; + goto do_fail; + } + return abis_osmo_pcu_tx_neigh_addr_cnf(bts, naddr_req, 0, &cgi_ps); + +do_fail: + return abis_osmo_pcu_tx_neigh_addr_cnf(bts, naddr_req, rc, NULL); +} + static int rcvmsg_pcu_container(struct gsm_bts *bts, struct gsm_pcu_if_container *container, size_t container_len) { @@ -79,6 +137,13 @@ bts->nr, container->msg_type); switch (container->msg_type) { + case PCU_IF_MSG_NEIGH_ADDR_REQ: + if (data_length < sizeof(struct gsm_pcu_if_neigh_addr_req)) { + LOGP(DNM, LOGL_ERROR, "ABIS_OSMO_PCU CONTAINER ANR_CNF message too short\n"); + return -EINVAL; + } + rc = rcvmsg_pcu_neigh_addr_req(bts, (struct gsm_pcu_if_neigh_addr_req *)&container->data); + break; default: LOGP(DNM, LOGL_NOTICE, "(bts=%d) Rx ABIS_OSMO_PCU unexpected msg type (%u) inside container!\n", bts->nr, container->msg_type); diff --git a/src/osmo-bsc/neighbor_ident.c b/src/osmo-bsc/neighbor_ident.c index 6e70625..c66d3ac 100644 --- a/src/osmo-bsc/neighbor_ident.c +++ b/src/osmo-bsc/neighbor_ident.c @@ -366,18 +366,70 @@ return 0; } -static int get_neighbor_resolve_cgi_ps_from_lac_ci(struct ctrl_cmd *cmd, void *data) +/* Attempt resolution of cgi_ps from ARFCN+BSIC of neighbor from BTS identified by LAC+CI */ +int neighbor_address_resolution(const struct gsm_network *net, const struct cell_ab *ab, + uint16_t lac, uint16_t cell_id, + struct osmo_cell_global_id_ps *res_cgi_ps) { - struct gsm_network *net = (struct gsm_network *)data; struct gsm_bts *bts_tmp, *bts_found = NULL; - char *tmp = NULL, *tok, *saveptr; - struct cell_ab ab; - unsigned lac, cell_id; struct osmo_cell_global_id_ps local_cgi_ps; const struct osmo_cell_global_id_ps *cgi_ps = NULL; struct gsm_bts *local_neighbor = NULL; struct gsm0808_cell_id_list2 remote_neighbors = { 0 }; + llist_for_each_entry(bts_tmp, &net->bts_list, list) { + if (bts_tmp->location_area_code != lac) + continue; + if (bts_tmp->cell_identity != cell_id) + continue; + bts_found = bts_tmp; + break; + } + + if (!bts_found) + goto notfound_err; + + LOG_BTS(bts_found, DLINP, LOGL_DEBUG, "Resolving neighbor BTS %u -> %s\n", bts_found->nr, + cell_ab_to_str_c(OTC_SELECT, ab)); + + if (resolve_neighbors(&local_neighbor, &remote_neighbors, bts_found, ab, true)) + goto notfound_err; + + /* resolve_neighbors() returns either a local_neighbor or remote_neighbors. + * Local-BSS neighbor? */ + if (local_neighbor) { + /* Supporting GPRS? */ + if (gsm_bts_get_cgi_ps(local_neighbor, &local_cgi_ps) >= 0) + cgi_ps = &local_cgi_ps; + } + + /* Remote-BSS neighbor? + * By spec, there can be multiple remote neighbors for a given ARFCN+BSIC, but so far osmo-bsc enforces only a + * single remote neighbor. */ + if (remote_neighbors.id_list_len + && remote_neighbors.id_discr == CELL_IDENT_WHOLE_GLOBAL_PS) { + cgi_ps = &remote_neighbors.id_list[0].global_ps; + } + + /* No neighbor found */ + if (!cgi_ps) + goto notfound_err; + + *res_cgi_ps = *cgi_ps; + return 0; + +notfound_err: + return -1; +} + +static int get_neighbor_resolve_cgi_ps_from_lac_ci(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_network *net = (struct gsm_network *)data; + char *tmp = NULL, *tok, *saveptr; + struct cell_ab ab; + unsigned int lac, cell_id; + struct osmo_cell_global_id_ps cgi_ps; + if (!cmd->variable) goto fmt_err; @@ -407,48 +459,13 @@ goto fmt_err; ab.bsic = atoi(tok); - llist_for_each_entry(bts_tmp, &net->bts_list, list) { - if (bts_tmp->location_area_code != lac) - continue; - if (bts_tmp->cell_identity != cell_id) - continue; - bts_found = bts_tmp; - break; - } - - if (!bts_found) - goto notfound_err; - - LOG_BTS(bts_found, DLINP, LOGL_DEBUG, "Resolving neighbor BTS %u -> %s\n", bts_found->nr, - cell_ab_to_str_c(OTC_SELECT, &ab)); - if (!cell_ab_valid(&ab)) goto fmt_err; - if (resolve_neighbors(&local_neighbor, &remote_neighbors, bts_found, &ab, true)) + if (neighbor_address_resolution(net, &ab, lac, cell_id, &cgi_ps) < 0) goto notfound_err; - /* resolve_neighbors() returns either a local_neighbor or remote_neighbors. - * Local-BSS neighbor? */ - if (local_neighbor) { - /* Supporting GPRS? */ - if (gsm_bts_get_cgi_ps(local_neighbor, &local_cgi_ps) >= 0) - cgi_ps = &local_cgi_ps; - } - - /* Remote-BSS neighbor? - * By spec, there can be multiple remote neighbors for a given ARFCN+BSIC, but so far osmo-bsc enforces only a - * single remote neighbor. */ - if (remote_neighbors.id_list_len - && remote_neighbors.id_discr == CELL_IDENT_WHOLE_GLOBAL_PS) { - cgi_ps = &remote_neighbors.id_list[0].global_ps; - } - - /* No neighbor found */ - if (!cgi_ps) - goto notfound_err; - - ctrl_cmd_reply_printf(cmd, "%s", osmo_cgi_ps_name(cgi_ps)); + ctrl_cmd_reply_printf(cmd, "%s", osmo_cgi_ps_name(&cgi_ps)); talloc_free(tmp); return CTRL_CMD_REPLY; diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c index b9160ec..b500b34 100644 --- a/src/osmo-bsc/neighbor_ident_vty.c +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -481,6 +481,10 @@ NEIGHBOR_DOC "Bind Neighbor Resolution Service (CTRL interface) to given ip and port\n" IP_STR IPV6_STR "Port to bind the service to [defaults to 4248 if not provided]\n") { + vty_out(vty, "%% Warning: The CTRL interface for Neighbor Address Resolution is now deprecated." + "Upgrade osmo-pcu and drop the 'neighbor-resolution bind " VTY_IPV46_CMD " [<0-65535>]' VTY " + "option in order to let osmo-pcu use the new resoluton method using the PCUIF over IPA " + "multiplex, which will work out of the box without required configuration.%s", VTY_NEWLINE); osmo_talloc_replace_string(bsc_gsmnet, &bsc_gsmnet->neigh_ctrl.addr, argv[0]); if (argc > 1) bsc_gsmnet->neigh_ctrl.port = atoi(argv[1]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I9073a121564503f483c84263ac72476041e47c03 Gerrit-Change-Number: 25408 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:29:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 14:29:33 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25436 ) Change subject: Support configuring TA loop SACCH block rate ...................................................................... Patch Set 3: I'm not really sure if this commit/feature is really useful. For MS Power it makes sense due to the MS having to increase its tx power level at small steps hence provoking bad matches between measured rxlev/rxqual and announced MS_POWR in L1SACCH header (see TS45.008 sec 4.7.1). However, I don't think this is the case for TA? Can the MS simply change TA to whatever requested version immediately without steps? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 14:29:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:35:48 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 14:35:48 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25421/6/include/osmocom/mgcp/mgcp_network.h File include/osmocom/mgcp/mgcp_network.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25421/6/include/osmocom/mgcp/mgcp_network.h at 85 PS6, Line 85: char subtype_name[64]; > Maybe add a comment where in the spec the exact length of 64 is specified? I know codec names are ra [?] Nowhere - there was previously a char audio_codec[64]; variable on the stack that limited the codec string, so that is where I got that from, and the patch does not change that. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Mon, 13 Sep 2021 14:35:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:40:57 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 13 Sep 2021 14:40:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn at 4558 PS2, Line 4558: var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; Why did you decide to have this a configuration variable, instead of creating two tests (one with ctrl interface, one with new interface) wherever you have use_old_ctrl_iface? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 14:40: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 Sep 13 14:53:26 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 14:53:26 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/c/osmo-mgw/+/25422/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25422/6//COMMIT_MSG at 11 PS6, Line 11: > It may be obvious but at least I do not understand why the rate counter indexes must be atomic. [?] This was just a straightforward port of static in single threaded case to still static in a multithreaded case where multiple threads will now concurrently modify the same variables, so they need to be atomic to ensure that they are increased as expected and one thread does not just increment some old value because another one already incremented it between loading and storing the value. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 6 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 14:53:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 14:55:56 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 14:55:56 +0000 Subject: Change in osmo-mgw[master]: e1: one thread per e1 trunk == e1 line In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25425 ) Change subject: e1: one thread per e1 trunk == e1 line ...................................................................... Patch Set 10: > Patch Set 10: Code-Review-1 > > (2 comments) > > I fear there is a problem with this. This this_trunk variable will limit us to use only one E1 trunk in osmo-mgw but when I get it right we already support multiple E1 trunks. One E1 line can have (NUM_E1_TS-1) usable timeslots. That is one physical line on the E1 card. If you have multiple physical lines, each one will get its own trunk. Yes, this is what I pointed out above, previously every e1 thrunk had one and only one thread so this was fine, but I changed that at the last minute to have no threads for e1, so this needs fixing. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Iabee6375dc521397d605549e3d869d5c8048fac3 Gerrit-Change-Number: 25425 Gerrit-PatchSet: 10 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 14:55:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 15:02:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 15:02:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn at 4558 PS2, Line 4558: var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; > Why did you decide to have this a configuration variable, instead of creating two tests (one with ct [?] Because: * That would be hell a lot more lines * Having to maintain both set of tests * The tests for the old iface will eventually be dropped, hopefully not in a far future. We don't really care much about the old interface anymore in current master, since it's marked as deprecated. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 15:02:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 15:50:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 15:50:14 +0000 Subject: Change in osmo-bsc[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25444 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Power Control Loop: Set P_CON_INTERVAL to 1 by default TS 45.008 section 4.7.1: """ Upon receipt of a command from an SACCH to change its power level on the corresponding uplink channel, the MS shall change to the new level at a rate of one nominal 2 dB power control step every 60 ms (13 TDMA frames), i.e. a range change of 15 steps should take about 900 ms. The change shall commence at the first TDMA frame belonging to the next reporting period (as specified in subclause 8.4). The MS shall change the power one nominal 2 dB step at a time, at a rate of one step every 60 ms following the initial change, irrespective of whether actual transmission takes place or not. """ Since the reported MS_PWR in L1 SACCH Header is, according to specs, the one used for the last block of the previous SACCH period, it becomes clear the first SACCH block after a requested MS Power Level change by the network may contain mismatches between the announced MS_PWR by the MS and the measured Rxlev/RxQual. Hence, let's better use a P_CON_INTERVAL of 1 which retriggers the MS Power Control Loop every second SACCH block. Related: SYS#5371 Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 4 files changed, 47 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/44/25444/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 95adbb1..54cbd5b 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -150,20 +150,46 @@ be suspended for a certain number of SACCH multiframes defined by VTY parameter `ctrl-interval`. Given that SACCH is relatively slow and transmission of a data block takes 480 ms, suspension allows an observation of the effect of one power control -decision before initiating the next one. +decision before initiating the next one. This is mostly important due to the +fact that MS must change the transmit power at nominal steps of 2dB every 60ms +(TS 45.008 sec 4.7.1). As a result, if the network requests the MS to change its +transmit power by several MS Power Levels at a time, the MS will do so gradually +over the next measurement period. Hence, upon next received L1 SACCH block, the +_MS_PWR_ value announced by the MS will match only the one used to transmit the +last block, and so the related measured RxLevel/RxQual values will be +inaccurate. By skipping one or several SACCH blocks, the algorithm will always +use values which match correctly the announced _MS_PWR_ and the measured +RxLevel/RxQual (because the _MS_PWR_ will already have changed and hence will be +kept stable over that measurement period). ---- OsmoBSC(config-bs-power-ctrl)# ctrl-interval ? <0-31> P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds) ---- -By default, the suspension interval is set to 0 for both MS/BS power control loops, -therefore the power control decision is taken every 480 ms (one SACCH block period). -Setting `ctrl-interval` to 1 increases the interval to 960 ms, so basically every -second Uplink SACCH block is skipped; value 2 corresponds to the interval of -1920 ms, so 3/4 received SACCH blocks are skipped. +The value to use for this parameter is closely related to that of VTY option +`step-size inc <2-6> red <2-4>`, which configures the maximum step (in dB) at +which the MS Power can be requested to changed when the MS Power Control Loop is +triggered. The higher the `step-size`, the more time it will need the MS to do +the necessary ramping of 2 dB steps, and hence the amount of time required for +the MS to settle on the requested MS Power Level for an entire SACCH block. Or +equally, the time the network can start using the full measurement period to +trigger the MS Power Control Loop again with reliable measurements +(`P_CON_INTERVAL`). -3GPP TS 45.008 briefly mentions this parameter in table A.1 (P_Con_INTERVAL). +By default, increment `step-size` is set to 4 dB and the decrement `step-size` +is set to 2 dB, hence the MS requiring `4 * 60 = 240` milliseconds. That's less +than 1 measurement period (480 ms), hence only the first measurement period +needs to be skipped. Therefore, the suspension interval is set to 1 for both +MS/BS power control loops, and so the power control decision is taken every 960 +ms (every second SACCH block period). + +Setting `ctrl-interval` to 0 increases the interval to 480 ms, so basically no +SACCH block is skipped and MS Power Control loop is triggered upon receival of +every UL SACCH block. Value 2 corresponds to the interval of 1920 ms, so 3/4 +received SACCH blocks are skipped. + +3GPP TS 45.008 briefly mentions this parameter in table A.1 (`P_Con_INTERVAL`). A small time graph is depicted below for better understanding of the meaning of values for this parameter, since it is not obvious at all. @@ -173,8 +199,8 @@ |<-->| - one SACCH multi-frame period | | |----|----|----|----|----|----|----|----|----> SACCH multi-frames -a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s, default) -b) * * * * * P_CON_INTERVAL=1 (0.96 s) +a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s) +b) * * * * * P_CON_INTERVAL=1 (0.96 s, default) c) * * * P_CON_INTERVAL=2 (1.92 s) d) * * P_CON_INTERVAL=3 (2.88 s) e) * * P_CON_INTERVAL=4 (3.84 s) diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index dbfe5e4..3774344 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -2978,7 +2978,7 @@ X(BSC_VTY_ATTR_NEW_LCHAN), "ctrl-interval <0-31>", "Set power control interval (for dynamic mode)\n" - "P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds)\n") + "P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds)(default=1)\n") { struct gsm_power_ctrl_params *params = vty->index; @@ -3928,8 +3928,7 @@ if (cp->dir == GSM_PWR_CTRL_DIR_DL) cfg_out(" bs-power dyn-max %u%s", cp->bs_power_max_db, VTY_NEWLINE); - if (cp->ctrl_interval > 0) - cfg_out(" ctrl-interval %u%s", cp->ctrl_interval, VTY_NEWLINE); + cfg_out(" ctrl-interval %u%s", cp->ctrl_interval, VTY_NEWLINE); cfg_out(" step-size inc %u red %u%s", cp->inc_step_size_db, cp->red_step_size_db, VTY_NEWLINE); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 02d9fd7..a6c54d8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1142,6 +1142,8 @@ .inc_step_size_db = 4, /* 2, 4, or 6 dB */ .red_step_size_db = 2, /* 2 or 4 dB */ + .ctrl_interval = 1, /* Trigger loop every second SACCH block. TS 45.008 sec 4.7.1 */ + /* RxLev measurement parameters */ .rxlev_meas = { /* Thresholds for RxLev (see 3GPP TS 45.008, A.3.2.1) */ diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 8cb695f..af02cd4 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -7,6 +7,7 @@ mode static ms-power-control mode dyn-bts + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -70,6 +71,7 @@ bs-power-control mode dyn-bts bs-power dyn-max 12 + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -96,9 +98,11 @@ bs-power-control ... ctrl-interval 31 -... !ctrl-interval +... ms-power-control -... !ctrl-interval +... + ctrl-interval 1 +... OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control @@ -131,6 +135,7 @@ ... ms-power-control mode dyn-bts + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -283,6 +288,7 @@ mode static ms-power-control mode dyn-bts + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f Gerrit-Change-Number: 25444 Gerrit-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 Sep 13 16:17:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 16:17:43 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25445 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Power Control Loop: Set P_CON_INTERVAL to 1 by default TS 45.008 section 4.7.1: """ Upon receipt of a command from an SACCH to change its power level on the corresponding uplink channel, the MS shall change to the new level at a rate of one nominal 2 dB power control step every 60 ms (13 TDMA frames), i.e. a range change of 15 steps should take about 900 ms. The change shall commence at the first TDMA frame belonging to the next reporting period (as specified in subclause 8.4). The MS shall change the power one nominal 2 dB step at a time, at a rate of one step every 60 ms following the initial change, irrespective of whether actual transmission takes place or not. """ Since the reported MS_PWR in L1 SACCH Header is, according to specs, the one used for the last block of the previous SACCH period, it becomes clear the first SACCH block after a requested MS Power Level change by the network may contain mismatches between the announced MS_PWR by the MS and the measured Rxlev/RxQual. Hence, let's better use a P_CON_INTERVAL of 1 which retriggers the MS Power Control Loop every second SACCH block. Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Related: SYS#5371 --- M src/common/gsm_data.c M tests/power/bs_power_loop_test.c M tests/power/ms_power_loop_test.c 3 files changed, 14 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/25445/1 diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 76292f7..ee6e693 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -504,6 +504,9 @@ /* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ const struct gsm_power_ctrl_params power_ctrl_params_def = { + + .ctrl_interval = 1, /* Trigger loop every second SACCH block. TS 45.008 sec 4.7.1 */ + /* Power increasing/reducing step size (optimal defaults) */ .inc_step_size_db = 4, /* quickly increase MS/BS power */ .red_step_size_db = 2, /* slowly decrease MS/BS power */ diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 53fdbba..6b67ba2 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -112,6 +112,14 @@ g_bts->band = GSM_BAND_900; g_bts->c0 = g_trx; + /* Init defaultBS power control parameters, enable dynamic power control */ + struct gsm_power_ctrl_params *params = &g_trx->ts[0].lchan[0].bs_dpc_params; + g_trx->ts[0].lchan[0].bs_power_ctrl.dpc_params = params; + *params = power_ctrl_params_def; + + /* Disable loop SACCH block skip by default: */ + params->ctrl_interval = 0; + printf("\nStarting test case '%s'\n", name); } @@ -219,9 +227,6 @@ struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; struct gsm_power_ctrl_params *params = &lchan->bs_dpc_params; - /* Default BS power control parameters */ - memcpy(params, &power_ctrl_params_def, sizeof(*params)); - /* No RxLev hysteresis: lower == upper */ params->rxlev_meas.lower_thresh = PWR_TEST_RXLEV_TARGET; params->rxlev_meas.upper_thresh = PWR_TEST_RXLEV_TARGET; diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 5f83329..559eacc 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -59,6 +59,9 @@ g_trx->ts[0].lchan[0].ms_power_ctrl.dpc_params = params; *params = power_ctrl_params_def; + /* Disable loop SACCH block skip by default: */ + params->ctrl_interval = 0; + /* Disable RxLev pre-processing and hysteresis by default */ struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; mp->lower_thresh = mp->upper_thresh = PWR_TEST_RXLEV_TARGET; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Gerrit-Change-Number: 25445 Gerrit-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 Sep 13 16:38:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 13 Sep 2021 16:38:55 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: pespin has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:09 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 to look at the new patch set (#13). Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer There is no obvious reason why we would want to complicate the code by caching pointers, since pointer traversal is probably not a performance bottleneck, and if it is we should rather take a look at our dozens of linked lists first.. Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/28/25428/13 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 13 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:09 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 to look at the new patch set (#13). Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 20 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/13 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 13 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:09 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 to look at the new patch set (#14). Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 2 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/14 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:09 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#15). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 220 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/15 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:49:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:09 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#17). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,208 insertions(+), 352 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/17 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 17 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:49:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:13 +0000 Subject: Change in osmo-mgw[master]: stats: make saitizers happy References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25446 ) Change subject: stats: make saitizers happy ...................................................................... stats: make saitizers happy The test expects wrapping here, but the undefined sanitizer is not happy with that, so disable it. Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf --- M src/libosmo-mgcp/mgcp_stat.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/46/25446/1 diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 89891b5..357b593 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -30,6 +30,11 @@ #include /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ +#if defined(__has_attribute) +#if __has_attribute(no_sanitize) +__attribute__((no_sanitize("integer"))) +#endif +#endif void calc_loss(struct mgcp_conn_rtp *conn, uint32_t *expected, int *loss) { struct mgcp_rtp_state *state = &conn->state; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf Gerrit-Change-Number: 25446 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 Sep 13 16:49:13 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:49:13 +0000 Subject: Change in osmo-mgw[master]: adjust mgcp response context References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25447 ) Change subject: adjust mgcp response context ...................................................................... adjust mgcp response context This patch also prepares for threading. Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 57 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/47/25447/1 diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 6341f07..ecb1aff 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -173,12 +173,18 @@ } /* Helper function to allocate some memory for responses and retransmissions */ -static struct msgb *mgcp_msgb_alloc(void) +static struct msgb *mgcp_msgb_alloc(void *ctx) { struct msgb *msg; - msg = msgb_alloc_headroom(4096, 128, "MGCP msg"); - if (!msg) + msg = msgb_alloc_c(ctx, 4096, "MGCP msg"); + + if (!msg) { LOGP(DLMGCP, LOGL_ERROR, "Failed to msgb for MGCP data.\n"); + return NULL; + } + + /* headroom */ + msgb_reserve(msg, 128); return msg; } @@ -186,7 +192,7 @@ /* Helper function for do_retransmission() and create_resp() */ static struct msgb *create_retransmission_response(const struct mgcp_endpoint *endp) { - struct msgb *msg = mgcp_msgb_alloc(); + struct msgb *msg = mgcp_msgb_alloc(endp->trunk); if (!msg) return NULL; @@ -196,7 +202,7 @@ return msg; } -static struct msgb *create_resp(struct mgcp_endpoint *endp, int code, +static struct msgb *create_resp(void* msgctx, struct mgcp_endpoint *endp, int code, const char *txt, const char *msg, const char *trans, const char *param, const char *sdp) @@ -204,7 +210,8 @@ int len; struct msgb *res; - res = mgcp_msgb_alloc(); + OSMO_ASSERT(msgctx != 0); + res = mgcp_msgb_alloc(msgctx); if (!res) return NULL; @@ -236,26 +243,26 @@ return res; } -static struct msgb *create_ok_resp_with_param(struct mgcp_endpoint *endp, +static struct msgb *create_ok_resp_with_param(void* msgctx, struct mgcp_endpoint *endp, int code, const char *msg, const char *trans, const char *param) { - return create_resp(endp, code, " OK", msg, trans, param, NULL); + return create_resp(msgctx, endp, code, " OK", msg, trans, param, NULL); } -static struct msgb *create_ok_response(struct mgcp_endpoint *endp, +static struct msgb *create_ok_response(void* msgctx, struct mgcp_endpoint *endp, int code, const char *msg, const char *trans) { - return create_ok_resp_with_param(endp, code, msg, trans, NULL); + return create_ok_resp_with_param(msgctx, endp, code, msg, trans, NULL); } -static struct msgb *create_err_response(struct mgcp_endpoint *endp, +static struct msgb *create_err_response(void* msgctx, struct mgcp_endpoint *endp, int code, const char *msg, const char *trans) { - return create_resp(endp, code, " FAIL", msg, trans, NULL, NULL); + return create_resp(msgctx, endp, code, " FAIL", msg, trans, NULL, NULL); } /* Format MGCP response string (with SDP attached) */ @@ -278,10 +285,13 @@ int rc; struct msgb *result; - sdp = msgb_alloc_headroom(4096, 128, "sdp record"); + sdp = msgb_alloc_c(endp->trunk, 4096, "sdp record"); if (!sdp) return NULL; + /* headroom */ + msgb_reserve(sdp, 128); + /* Attach optional endpoint name */ if (add_epname) { rc = msgb_printf(sdp, "Z: %s\r\n", endp->name); @@ -309,7 +319,7 @@ rc = mgcp_write_response_sdp(endp, conn, sdp, addr); if (rc < 0) goto error; - result = create_resp(endp, 200, " OK", msg, trans_id, NULL, (char*) sdp->data); + result = create_resp(endp->trunk, endp, 200, " OK", msg, trans_id, NULL, (char*) sdp->data); msgb_free(sdp); return result; error: @@ -376,7 +386,7 @@ if (rc < 0) { LOGP(DLMGCP, LOGL_ERROR, "%s: failed to parse MCGP message\n", rq.name); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_GENERAL_RX_FAIL_MSG_PARSE)); - return create_err_response(NULL, -rc, rq.name, "000000"); + return create_err_response(cfg, NULL, -rc, rq.name, "000000"); } /* Locate endpoint and trunk, if no endpoint can be located try at least to identify the trunk. */ @@ -397,7 +407,7 @@ if (!rq.trunk) { LOGP(DLMGCP, LOGL_ERROR, "%s: failed to identify trunk for endpoint \"%s\" -- abort\n", rq.name, pdata.epname); - return create_err_response(NULL, -rq.mgcp_cause, rq.name, pdata.trans); + return create_err_response(cfg, NULL, -rq.mgcp_cause, rq.name, pdata.trans); } } else { /* If the endpoint name suggests that the request refers to a specific endpoint, then the @@ -405,7 +415,7 @@ LOGP(DLMGCP, LOGL_NOTICE, "%s: cannot find endpoint \"%s\", cause=%d -- abort\n", rq.name, pdata.epname, -rq.mgcp_cause); - return create_err_response(NULL, -rq.mgcp_cause, rq.name, pdata.trans); + return create_err_response(cfg, NULL, -rq.mgcp_cause, rq.name, pdata.trans); } } else { osmo_strlcpy(debug_last_endpoint_name, rq.endp->name, sizeof(debug_last_endpoint_name)); @@ -428,7 +438,7 @@ LOGP(DLMGCP, LOGL_ERROR, "%s: the request handler \"%s\" requires an endpoint resource for \"%s\", which is not available -- abort\n", rq.name, mgcp_requests[i].debug_name, pdata.epname); - return create_err_response(NULL, -rq.mgcp_cause, rq.name, pdata.trans); + return create_err_response(rq.trunk, NULL, -rq.mgcp_cause, rq.name, pdata.trans); } /* Execute request handler */ @@ -461,7 +471,7 @@ static struct msgb *handle_audit_endpoint(struct mgcp_request_data *rq) { LOGPENDP(rq->endp, DLMGCP, LOGL_NOTICE, "AUEP: auditing endpoint ...\n"); - return create_ok_response(rq->endp, 200, "AUEP", rq->pdata->trans); + return create_ok_response(rq->trunk, rq->endp, 200, "AUEP", rq->pdata->trans); } /* Try to find a free port by attempting to bind on it. Also handle the @@ -859,7 +869,7 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_AVAIL)); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: selected endpoint not available!\n"); - return create_err_response(NULL, 501, "CRCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 501, "CRCX", pdata->trans); } /* parse CallID C: and LocalParameters L: */ @@ -879,7 +889,7 @@ * together with a CRCX, the MGW will assign the * connection identifier by itself on CRCX */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_BAD_ACTION)); - return create_err_response(NULL, 523, "CRCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 523, "CRCX", pdata->trans); break; case 'M': mode = (const char *)line + 3; @@ -905,7 +915,7 @@ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: unhandled option: '%c'/%d\n", *line, *line); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "CRCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "CRCX", pdata->trans); break; } } @@ -916,14 +926,14 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: insufficient parameters, missing callid\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_MISSING_CALLID)); - return create_err_response(endp, 516, "CRCX", pdata->trans); + return create_err_response(endp, endp, 516, "CRCX", pdata->trans); } if (!mode) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "CRCX: insufficient parameters, missing mode\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_INVALID_MODE)); - return create_err_response(endp, 517, "CRCX", pdata->trans); + return create_err_response(endp, endp, 517, "CRCX", pdata->trans); } /* Check if we are able to accept the creation of another connection */ @@ -940,7 +950,7 @@ /* There is no more room for a connection, leave * everything as it is and return with an error */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_LIMIT_EXCEEDED)); - return create_err_response(endp, 540, "CRCX", pdata->trans); + return create_err_response(endp, endp, 540, "CRCX", pdata->trans); } } @@ -958,7 +968,7 @@ /* This is not our call, leave everything as it is and * return with an error. */ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_UNKNOWN_CALLID)); - return create_err_response(endp, 400, "CRCX", pdata->trans); + return create_err_response(endp, endp, 400, "CRCX", pdata->trans); } } @@ -969,7 +979,7 @@ rc = mgcp_endp_claim(endp, callid); if (rc != 0) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_CLAIM)); - return create_err_response(endp, 502, "CRCX", pdata->trans); + return create_err_response(endp, endp, 502, "CRCX", pdata->trans); } } @@ -1088,7 +1098,7 @@ mgcp_endp_release(endp); LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: unable to create connection\n"); - return create_err_response(endp, error_code, "CRCX", pdata->trans); + return create_err_response(endp, endp, error_code, "CRCX", pdata->trans); } /* MDCX command handler, processes the received command */ @@ -1116,7 +1126,7 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_AVAIL)); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: selected endpoint not available!\n"); - return create_err_response(NULL, 501, "MDCX", pdata->trans); + return create_err_response(endp, NULL, 501, "MDCX", pdata->trans); } /* Prohibit wildcarded requests */ @@ -1124,14 +1134,14 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: wildcarded endpoint names not supported.\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_WILDCARD)); - return create_err_response(endp, 507, "MDCX", pdata->trans); + return create_err_response(rq->trunk, endp, 507, "MDCX", pdata->trans); } if (llist_count(&endp->conns) <= 0) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: endpoint is not holding a connection.\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_NO_CONN)); - return create_err_response(endp, 400, "MDCX", pdata->trans); + return create_err_response(endp, endp, 400, "MDCX", pdata->trans); } for_each_line(line, pdata->save) { @@ -1181,7 +1191,7 @@ "MDCX: Unhandled MGCP option: '%c'/%d\n", line[0], line[0]); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "MDCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "MDCX", pdata->trans); break; } } @@ -1191,13 +1201,13 @@ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "MDCX: insufficient parameters, missing ci (connectionIdentifier)\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_NO_CONNID)); - return create_err_response(endp, 515, "MDCX", pdata->trans); + return create_err_response(endp, endp, 515, "MDCX", pdata->trans); } conn = mgcp_conn_get_rtp(endp, conn_id); if (!conn) { rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_MDCX_FAIL_CONN_NOT_FOUND)); - return create_err_response(endp, 400, "MDCX", pdata->trans); + return create_err_response(endp, endp, 400, "MDCX", pdata->trans); } mgcp_conn_watchdog_kick(conn->conn); @@ -1304,7 +1314,7 @@ mgcp_endp_update(endp); return create_response_with_sdp(endp, conn, "MDCX", pdata->trans, false, false); error3: - return create_err_response(endp, error_code, "MDCX", pdata->trans); + return create_err_response(endp, endp, error_code, "MDCX", pdata->trans); out_silent: LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "MDCX: silent exit\n"); @@ -1335,14 +1345,14 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_AVAIL)); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "DLCX: selected endpoint not available!\n"); - return create_err_response(NULL, 501, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 501, "DLCX", pdata->trans); } if (endp && !rq->wildcarded && llist_empty(&endp->conns)) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "DLCX: endpoint is not holding a connection.\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_NO_CONN)); - return create_err_response(endp, 515, "DLCX", pdata->trans); + return create_err_response(endp, endp, 515, "DLCX", pdata->trans); } for_each_line(line, pdata->save) { @@ -1357,7 +1367,7 @@ LOGPTRUNK(trunk, DLMGCP, LOGL_NOTICE, "cannot handle requests with call-id (C) without endpoint -- abort!"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "DLCX", pdata->trans); } if (mgcp_verify_call_id(endp, line + 3) != 0) { @@ -1373,7 +1383,7 @@ LOGPTRUNK(trunk, DLMGCP, LOGL_NOTICE, "cannot handle requests with conn-id (I) without endpoint -- abort!"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "DLCX", pdata->trans); } conn_id = (const char *)line + 3; @@ -1389,7 +1399,7 @@ LOGPEPTR(endp, trunk, DLMGCP, LOGL_NOTICE, "DLCX: Unhandled MGCP option: '%c'/%d\n", line[0], line[0]); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_FAIL_UNHANDLED_PARAM)); - return create_err_response(NULL, 539, "DLCX", pdata->trans); + return create_err_response(rq->trunk, NULL, 539, "DLCX", pdata->trans); break; } } @@ -1404,7 +1414,7 @@ mgcp_endp_release(trunk->endpoints[i]); } rate_ctr_add(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_SUCCESS), num_conns); - return create_ok_response(NULL, 200, "DLCX", pdata->trans); + return create_ok_response(trunk, NULL, 200, "DLCX", pdata->trans); } /* The logic does not permit to go past this point without having the @@ -1429,7 +1439,7 @@ /* Note: In this case we do not return any statistics, * as we assume that the client is not interested in * this case. */ - return create_ok_response(endp, 200, "DLCX", pdata->trans); + return create_ok_response(endp, endp, 200, "DLCX", pdata->trans); } /* Find the connection */ @@ -1458,10 +1468,10 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_DLCX_SUCCESS)); if (silent) goto out_silent; - return create_ok_resp_with_param(endp, 250, "DLCX", pdata->trans, stats); + return create_ok_resp_with_param(endp, endp, 250, "DLCX", pdata->trans, stats); error3: - return create_err_response(endp, error_code, "DLCX", pdata->trans); + return create_err_response(endp, endp, error_code, "DLCX", pdata->trans); out_silent: LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "DLCX: silent exit\n"); @@ -1516,14 +1526,14 @@ /* we didn't see a signal request with a tone */ if (tone == CHAR_MAX) - return create_ok_response(rq->endp, 200, "RQNT", rq->pdata->trans); + return create_ok_response(rq->endp, rq->endp, 200, "RQNT", rq->pdata->trans); if (rq->pdata->cfg->rqnt_cb) res = rq->pdata->cfg->rqnt_cb(rq->endp, tone); return res == 0 ? - create_ok_response(rq->endp, 200, "RQNT", rq->pdata->trans) : - create_err_response(rq->endp, res, "RQNT", rq->pdata->trans); + create_ok_response(rq->endp, rq->endp, 200, "RQNT", rq->pdata->trans) : + create_err_response(rq->endp, rq->endp, res, "RQNT", rq->pdata->trans); } /* Connection keepalive timer, will take care that dummy packets are send -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 Gerrit-Change-Number: 25447 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: stats: make sanitizers happy In-Reply-To: References: Message-ID: Hoernchen has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-mgw/+/25446 ) Change subject: stats: make sanitizers happy ...................................................................... stats: make sanitizers happy The test expects wrapping here, but the undefined sanitizer is not happy with that, so disable it. Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf --- M src/libosmo-mgcp/mgcp_stat.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/46/25446/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf Gerrit-Change-Number: 25446 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 to look at the new patch set (#8). Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... libosmo-mgcp: cleanup audio codex alloc No need to complicate audio codes with pointers, our "usual" string is barely larger than a poointer, five times smaller than a talloc header, and most importantly not really optional anyway... Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 --- M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_sdp.c 3 files changed, 18 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/21/25421/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 to look at the new patch set (#8). Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... libosmo-mgcp: atomic rate counter group indexes Postfix++ on atomics is specified as rmw operation with memory_order_seq_cst. Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 --- M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_ratectr.c 2 files changed, 15 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/22/25422/8 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 to look at the new patch set (#9). Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... libosmo-mgcp: do not use the default msgb talloc context Trunk is safe, since it will not disappear sooner than the endpoints or connections. osmux still missing! Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_network.c 2 files changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/23/25423/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 to look at the new patch set (#12). Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... globally lock the portrange when trying to grab a port to prep for multithreading Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 --- M configure.ac M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_protocol.c 3 files changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/24/25424/12 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 to look at the new patch set (#12). Change subject: embed strings into structs ...................................................................... embed strings into structs They are mostly not even as large as the talloc header used to dynamically allocate them, and they are also not "shared" by anything. Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c 5 files changed, 26 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/26/25426/12 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 to look at the new patch set (#13). Change subject: adjust talloc context ...................................................................... adjust talloc context there is no obvious reason why the endpoints that belong to a trunk would have the (global) config as parent context, you can't really have endpoints without a trunk anyway. Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 --- 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/27/25427/13 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 13 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 to look at the new patch set (#14). Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer There is no obvious reason why we would want to complicate the code by caching pointers, since pointer traversal is probably not a performance bottleneck, and if it is we should rather take a look at our dozens of linked lists first.. Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/28/25428/14 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 to look at the new patch set (#14). Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 20 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/14 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 to look at the new patch set (#15). Change subject: fix mgcp_conn_free_all ...................................................................... fix mgcp_conn_free_all It calls itself recursively which messes with the list an ep, so ubsan complains. Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 2 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/25430/15 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#16). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 220 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/16 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 16 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: adjust mgcp response context In-Reply-To: References: Message-ID: Hoernchen has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-mgw/+/25447 ) Change subject: adjust mgcp response context ...................................................................... adjust mgcp response context This patch also prepares for threading. Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 57 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/47/25447/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 Gerrit-Change-Number: 25447 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:50:01 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#18). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,208 insertions(+), 352 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/18 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 18 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:59:07 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 to look at the new patch set (#15). Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... rename strip_epname and find_specific_endpoint and make them available Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_endp.c 2 files changed, 20 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/29/25429/15 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 16:59:07 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 16:59:07 +0000 Subject: Change in osmo-mgw[master]: adjust mgcp response context 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/+/25447 to look at the new patch set (#3). Change subject: adjust mgcp response context ...................................................................... adjust mgcp response context This patch also prepares for threading. Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 57 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/47/25447/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 Gerrit-Change-Number: 25447 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 17:08:45 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 17:08:45 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#20). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,209 insertions(+), 352 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/20 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 20 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 17:15:52 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 17:15:52 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#21). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,208 insertions(+), 352 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/21 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 21 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 17:20:24 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 17:20:24 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#22). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,209 insertions(+), 352 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/22 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 22 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 17:23:08 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 17:23:08 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#23). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,208 insertions(+), 352 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/23 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 23 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 17:27:23 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 17:27:23 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#24). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Depends: libosmocore Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,208 insertions(+), 353 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/24 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 24 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 17:49:20 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 13 Sep 2021 17:49:20 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25432 ) Change subject: Add multithreading for the virtual trunk ...................................................................... Patch Set 24: (2 comments) > Patch Set 16: > > (6 comments) > > The patch is quite large. I think it will need some cleanup here and there. I have tested this with TTCN3 and my test network. It seems to work fine. I saw TC_two_crcx_and_rtp_osmux_bidir_ipv6_ipv4 and TC_two_crcx_mdcx_and_rtp_osmux_ipv6_ipv4 failing though, but that may also be a local issue. > > It probably may make sense to add a section about how to configure threads to the manual. Manual is missing since there is apparently still a lot to discuss... https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/include/osmocom/mgcp/mgcp_threads.h File include/osmocom/mgcp/mgcp_threads.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/include/osmocom/mgcp/mgcp_threads.h at 62 PS16, Line 62: }; > maybe struct mgcp_request_data should go into mgcp_protocol.h. [?] I've put it here since it is now part of the threading feature, and only used as part of the messages passed to the threads after partially parsing the request. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/16/src/libosmo-mgcp/mgcp_protocol.c at 475 PS16, Line 475: #if 0 > Is there any problem with that part? It should not interfere much much with the threads since it exi [?] This is related to the discovery that the endp find part did not work as expected, because the rq.endp = mgcp_endp_by_name_trunk(&rc, pdata.epname, rq.trunk); call returns empty usable eps if the req is wildcaded - even in the case of a dlcx * or something like that, so basically in cases where there should not be a EP nor should one be required. Addiotnally the error codes returned so far differ depending on the actual mgcp command, so this was reworked and basically keeps the current error codes (and therefore behavior related to the ttcn3 tests) while making sure it now works as expected. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 24 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Mon, 13 Sep 2021 17:49:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:03:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:03:28 +0000 Subject: Change in osmo-mgw[master]: stats: make sanitizers happy In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25446 ) Change subject: stats: make sanitizers happy ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf Gerrit-Change-Number: 25446 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 13 Sep 2021 19:03:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:04:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:04:11 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 19:04: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 Sep 13 19:05:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:04 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... Patch Set 12: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 19: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 Mon Sep 13 19:05:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:29 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 14: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 19:05:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:51 +0000 Subject: Change in osmo-mgw[master]: stats: make sanitizers happy In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25446 ) Change subject: stats: make sanitizers happy ...................................................................... stats: make sanitizers happy The test expects wrapping here, but the undefined sanitizer is not happy with that, so disable it. Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf --- M src/libosmo-mgcp/mgcp_stat.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 89891b5..357b593 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -30,6 +30,11 @@ #include /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ +#if defined(__has_attribute) +#if __has_attribute(no_sanitize) +__attribute__((no_sanitize("integer"))) +#endif +#endif void calc_loss(struct mgcp_conn_rtp *conn, uint32_t *expected, int *loss) { struct mgcp_rtp_state *state = &conn->state; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I59ec65519ea028d4628ba4b56c939aef70794abf Gerrit-Change-Number: 25446 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:51 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:51 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: cleanup audio codex alloc In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25421 ) Change subject: libosmo-mgcp: cleanup audio codex alloc ...................................................................... libosmo-mgcp: cleanup audio codex alloc No need to complicate audio codes with pointers, our "usual" string is barely larger than a poointer, five times smaller than a talloc header, and most importantly not really optional anyway... Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 --- M include/osmocom/mgcp/mgcp_network.h M src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_sdp.c 3 files changed, 18 insertions(+), 22 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/mgcp/mgcp_network.h b/include/osmocom/mgcp/mgcp_network.h index d6d90dd..b9cf5e3 100644 --- a/include/osmocom/mgcp/mgcp_network.h +++ b/include/osmocom/mgcp/mgcp_network.h @@ -81,8 +81,8 @@ uint32_t frame_duration_den; int payload_type; - char *audio_name; - char *subtype_name; + char audio_name[64]; + char subtype_name[64]; bool param_present; struct mgcp_codec_param param; diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c index f237e38..06dcedc 100644 --- a/src/libosmo-mgcp/mgcp_codec.c +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -89,15 +89,13 @@ .frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN, .rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE, .channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS, + .subtype_name = "", + .audio_name = "", }; } static void codec_free(struct mgcp_rtp_codec *codec) { - if (codec->subtype_name) - talloc_free(codec->subtype_name); - if (codec->audio_name) - talloc_free(codec->audio_name); *codec = (struct mgcp_rtp_codec){}; } @@ -124,10 +122,8 @@ { int rate; int channels; - char audio_codec[64]; struct mgcp_rtp_codec *codec; unsigned int pt_offset = conn->end.codecs_assigned; - void *ctx = conn->conn; /* The amount of codecs we can store is limited, make sure we do not * overrun this limit. */ @@ -160,16 +156,16 @@ if (!audio_name) { switch (payload_type) { case 0: - audio_name = talloc_strdup(ctx, "PCMU/8000/1"); + strcpy(codec->audio_name, "PCMU/8000/1"); break; case 3: - audio_name = talloc_strdup(ctx, "GSM/8000/1"); + strcpy(codec->audio_name, "GSM/8000/1"); break; case 8: - audio_name = talloc_strdup(ctx, "PCMA/8000/1"); + strcpy(codec->audio_name, "PCMA/8000/1"); break; case 18: - audio_name = talloc_strdup(ctx, "G729/8000/1"); + strcpy(codec->audio_name, "G729/8000/1"); break; default: /* The given payload type is not known to us, or it @@ -179,36 +175,36 @@ payload_type); goto error; } + } else { + strncpy(codec->audio_name, audio_name, sizeof(codec->audio_name)); } /* Now we extract the codec subtype name, rate and channels. The latter * two are optional. If they are not present we use the safe defaults * above. */ - if (strlen(audio_name) >= sizeof(audio_codec)) { - LOGP(DLMGCP, LOGL_ERROR, "Audio codec too long: %s\n", osmo_quote_str(audio_name, -1)); + if (strlen(codec->audio_name) >= sizeof(codec->subtype_name)) { + LOGP(DLMGCP, LOGL_ERROR, "Audio codec too long: %s\n", osmo_quote_str(codec->audio_name, -1)); goto error; } channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; - if (sscanf(audio_name, "%63[^/]/%d/%d", audio_codec, &rate, &channels) < 1) { - LOGP(DLMGCP, LOGL_ERROR, "Invalid audio codec: %s\n", osmo_quote_str(audio_name, -1)); + if (sscanf(codec->audio_name, "%63[^/]/%d/%d", codec->subtype_name, &rate, &channels) < 1) { + LOGP(DLMGCP, LOGL_ERROR, "Invalid audio codec: %s\n", osmo_quote_str(codec->audio_name, -1)); goto error; } /* Note: We only accept configurations with one audio channel! */ if (channels != 1) { LOGP(DLMGCP, LOGL_ERROR, "Cannot handle audio codec with more than one channel: %s\n", - osmo_quote_str(audio_name, -1)); + osmo_quote_str(codec->audio_name, -1)); goto error; } codec->rate = rate; codec->channels = channels; - codec->subtype_name = talloc_strdup(ctx, audio_codec); - codec->audio_name = talloc_strdup(ctx, audio_name); codec->payload_type = payload_type; - if (!strcmp(audio_codec, "G729")) { + if (!strcmp(codec->subtype_name, "G729")) { codec->frame_duration_num = 10; codec->frame_duration_den = 1000; } else { @@ -287,7 +283,7 @@ /* 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) + if (!strlen(codec->subtype_name)) return false; /* FIXME: implement meaningful checks to make sure that the given codec diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index eabaf53..077ac96 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -439,7 +439,7 @@ for (i = 0; i < codecs_used; i++) { LOGPC(DLMGCP, LOGL_NOTICE, "%d=%s", rtp->codecs[i].payload_type, - rtp->codecs[i].subtype_name ? rtp-> codecs[i].subtype_name : "unknown"); + strlen(rtp->codecs[i].subtype_name) ? rtp->codecs[i].subtype_name : "unknown"); LOGPC(DLMGCP, LOGL_NOTICE, " "); } LOGPC(DLMGCP, LOGL_NOTICE, "\n"); -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Icc41643050a5e1ca3c66f307d60b6911ba1b8032 Gerrit-Change-Number: 25421 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:52 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: atomic rate counter group indexes In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25422 ) Change subject: libosmo-mgcp: atomic rate counter group indexes ...................................................................... libosmo-mgcp: atomic rate counter group indexes Postfix++ on atomics is specified as rmw operation with memory_order_seq_cst. Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 --- M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_ratectr.c 2 files changed, 15 insertions(+), 20 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 7988c48..ca12347 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -21,6 +21,7 @@ * */ +#include #include #include #include @@ -89,7 +90,7 @@ /* FIXME: Each new rate counter group requires an unique index. At the * moment we generate this index using this counter, but perhaps there * is a more concious way to assign the indexes. */ - static unsigned int rate_ctr_index = 0; + static atomic_uint rate_ctr_index = 0; conn_rtp->type = MGCP_RTP_DEFAULT; conn_rtp->osmux.cid_allocated = false; @@ -110,13 +111,12 @@ end->output_enabled = 0; end->maximum_packet_time = -1; - conn_rtp->rate_ctr_group = rate_ctr_group_alloc(conn, &rate_ctr_group_desc, rate_ctr_index); + conn_rtp->rate_ctr_group = rate_ctr_group_alloc(conn, &rate_ctr_group_desc, rate_ctr_index++); if (!conn_rtp->rate_ctr_group) return -1; conn_rtp->state.in_stream.err_ts_ctr = rate_ctr_group_get_ctr(conn_rtp->rate_ctr_group, IN_STREAM_ERR_TSTMP_CTR); conn_rtp->state.out_stream.err_ts_ctr = rate_ctr_group_get_ctr(conn_rtp->rate_ctr_group, OUT_STREAM_ERR_TSTMP_CTR); - rate_ctr_index++; /* Make sure codec table is reset */ mgcp_codec_reset_all(conn_rtp); diff --git a/src/libosmo-mgcp/mgcp_ratectr.c b/src/libosmo-mgcp/mgcp_ratectr.c index 040dbb5..6030ce2 100644 --- a/src/libosmo-mgcp/mgcp_ratectr.c +++ b/src/libosmo-mgcp/mgcp_ratectr.c @@ -22,6 +22,7 @@ * */ +#include #include #include #include @@ -152,17 +153,16 @@ int mgcp_ratectr_global_alloc(struct mgcp_config *cfg) { struct mgcp_ratectr_global *ratectr = &cfg->ratectr; - static unsigned int general_rate_ctr_index = 0; + static atomic_uint general_rate_ctr_index = 0; char ctr_name[512]; if (ratectr->mgcp_general_ctr_group == NULL) { ratectr->mgcp_general_ctr_group = - rate_ctr_group_alloc(cfg, &mgcp_general_ctr_group_desc, general_rate_ctr_index); + rate_ctr_group_alloc(cfg, &mgcp_general_ctr_group_desc, general_rate_ctr_index++); if (!ratectr->mgcp_general_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s:general", cfg->domain); rate_ctr_group_set_name(ratectr->mgcp_general_ctr_group, ctr_name); - general_rate_ctr_index++; } return 0; } @@ -187,62 +187,57 @@ int mgcp_ratectr_trunk_alloc(struct mgcp_trunk *trunk) { struct mgcp_ratectr_trunk *ratectr = &trunk->ratectr; - 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; + static atomic_uint crcx_rate_ctr_index = 0; + static atomic_uint mdcx_rate_ctr_index = 0; + static atomic_uint dlcx_rate_ctr_index = 0; + static atomic_uint all_rtp_conn_rate_ctr_index = 0; char ctr_name[256]; if (ratectr->mgcp_crcx_ctr_group == NULL) { ratectr->mgcp_crcx_ctr_group = - rate_ctr_group_alloc(trunk, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index); + rate_ctr_group_alloc(trunk, &mgcp_crcx_ctr_group_desc, crcx_rate_ctr_index++); if (!ratectr->mgcp_crcx_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:crcx", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->mgcp_crcx_ctr_group, ctr_name); - crcx_rate_ctr_index++; } if (ratectr->mgcp_mdcx_ctr_group == NULL) { ratectr->mgcp_mdcx_ctr_group = - rate_ctr_group_alloc(trunk, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index); + rate_ctr_group_alloc(trunk, &mgcp_mdcx_ctr_group_desc, mdcx_rate_ctr_index++); if (!ratectr->mgcp_mdcx_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:mdcx", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->mgcp_mdcx_ctr_group, ctr_name); - mdcx_rate_ctr_index++; } if (ratectr->mgcp_dlcx_ctr_group == NULL) { ratectr->mgcp_dlcx_ctr_group = - rate_ctr_group_alloc(trunk, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index); + rate_ctr_group_alloc(trunk, &mgcp_dlcx_ctr_group_desc, dlcx_rate_ctr_index++); if (!ratectr->mgcp_dlcx_ctr_group) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:dlcx", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->mgcp_dlcx_ctr_group, ctr_name); - dlcx_rate_ctr_index++; } if (ratectr->all_rtp_conn_stats == NULL) { ratectr->all_rtp_conn_stats = rate_ctr_group_alloc(trunk, &all_rtp_conn_rate_ctr_group_desc, - all_rtp_conn_rate_ctr_index); + all_rtp_conn_rate_ctr_index++); if (!ratectr->all_rtp_conn_stats) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:rtp_conn", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->all_rtp_conn_stats, ctr_name); - all_rtp_conn_rate_ctr_index++; } /* E1 specific */ if (trunk->trunk_type == MGCP_TRUNK_E1 && ratectr->e1_stats == NULL) { - ratectr->e1_stats = rate_ctr_group_alloc(trunk, &e1_rate_ctr_group_desc, mdcx_rate_ctr_index); + ratectr->e1_stats = rate_ctr_group_alloc(trunk, &e1_rate_ctr_group_desc, mdcx_rate_ctr_index++); if (!ratectr->e1_stats) return -EINVAL; snprintf(ctr_name, sizeof(ctr_name), "%s-%u:e1", mgcp_trunk_type_strs_str(trunk->trunk_type), trunk->trunk_nr); rate_ctr_group_set_name(ratectr->e1_stats, ctr_name); - mdcx_rate_ctr_index++; } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ib82d15aab2b3ba25827f9cf8751dbf87ee92a444 Gerrit-Change-Number: 25422 Gerrit-PatchSet: 8 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:52 +0000 Subject: Change in osmo-mgw[master]: libosmo-mgcp: do not use the default msgb talloc context In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25423 ) Change subject: libosmo-mgcp: do not use the default msgb talloc context ...................................................................... libosmo-mgcp: do not use the default msgb talloc context Trunk is safe, since it will not disappear sooner than the endpoints or connections. osmux still missing! Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c --- M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_network.c 2 files changed, 6 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_e1.c b/src/libosmo-mgcp/mgcp_e1.c index effbe77..e88b8c5 100644 --- a/src/libosmo-mgcp/mgcp_e1.c +++ b/src/libosmo-mgcp/mgcp_e1.c @@ -192,7 +192,7 @@ { struct mgcp_endpoint *endp = user_data; struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.e1_stats; - struct msgb *msg = msgb_alloc(E1_TRAU_BITS_MSGB, "E1-I.460-IDLE-TX-TRAU-frame"); + struct msgb *msg = msgb_alloc_c(endp->trunk, E1_TRAU_BITS_MSGB, "E1-I.460-IDLE-TX-TRAU-frame"); uint8_t *ptr; const uint8_t *ptr_ft; enum osmo_trau_frame_type ft; @@ -238,9 +238,9 @@ * (the resulting frame will be prepended with an all-zero (12-byte) rtp header) */ static void sync_frame_out_cb(void *user_data, const ubit_t *bits, unsigned int num_bits) { - struct msgb *msg = msgb_alloc(RTP_BUF_SIZE, "RTP-rx-from-E1"); unsigned int rtp_hdr_len = sizeof(struct rtp_hdr); struct mgcp_endpoint *endp = user_data; + struct msgb *msg = msgb_alloc_c(endp->trunk, RTP_BUF_SIZE, "RTP-rx-from-E1"); struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.e1_stats; struct mgcp_conn *conn_dst; struct osmo_trau_frame fr; @@ -312,7 +312,7 @@ /* Function to handle outgoing E1 traffic */ static void e1_send(struct e1inp_ts *ts, struct mgcp_trunk *trunk) { - struct msgb *msg = msgb_alloc(E1_TS_BYTES, "E1-TX-timeslot-bytes"); + struct msgb *msg = msgb_alloc_c(trunk, E1_TS_BYTES, "E1-TX-timeslot-bytes"); uint8_t *ptr; /* Get E1 frame from I.460 multiplexer */ @@ -622,7 +622,7 @@ * \returns 0 on success, -1 on ERROR. */ int mgcp_e1_send_rtp(struct mgcp_endpoint *endp, struct mgcp_rtp_codec *codec, struct msgb *msg) { - struct msgb *msg_tf = msgb_alloc(E1_TRAU_BITS_MSGB, "E1-I.460-TX-TRAU-frame"); + struct msgb *msg_tf = msgb_alloc_c(endp->trunk, E1_TRAU_BITS_MSGB, "E1-I.460-TX-TRAU-frame"); struct rate_ctr_group *rate_ctrs = endp->trunk->ratectr.e1_stats; unsigned int rtp_hdr_len = sizeof(struct rtp_hdr); struct osmo_trau_frame tf; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index cb82137..86b0d06 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1448,13 +1448,14 @@ int ret; enum rtp_proto proto; struct osmo_rtp_msg_ctx *mc; - struct msgb *msg = msgb_alloc(RTP_BUF_SIZE, "RTP-rx"); + struct msgb *msg; int rc; conn_src = (struct mgcp_conn_rtp *)fd->data; OSMO_ASSERT(conn_src); endp = conn_src->conn->endp; OSMO_ASSERT(endp); + msg = msgb_alloc_c(endp->trunk, RTP_BUF_SIZE, "RTP-rx"); proto = (fd == &conn_src->end.rtp)? MGCP_PROTO_RTP : MGCP_PROTO_RTCP; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I15b01085f31e9a10a1ad381713ca2275356ca20c Gerrit-Change-Number: 25423 Gerrit-PatchSet: 9 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:52 +0000 Subject: Change in osmo-mgw[master]: globally lock the portrange when trying to grab a port to prep for mu... In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25424 ) Change subject: globally lock the portrange when trying to grab a port to prep for multithreading ...................................................................... globally lock the portrange when trying to grab a port to prep for multithreading Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 --- M configure.ac M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_protocol.c 3 files changed, 10 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve diff --git a/configure.ac b/configure.ac index 192c012..b996e87 100644 --- a/configure.ac +++ b/configure.ac @@ -57,6 +57,9 @@ PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 1.1.0) PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 1.1.0) +CFLAGS="$CFLAGS -pthread" +LDFLAGS="$LDFLAGS -pthread" + AC_ARG_ENABLE(sanitize, [AS_HELP_STRING( [--enable-sanitize], diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index b3f2eb5..228b0b3 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -34,6 +34,7 @@ #include #include #include +#include #include "mgcp_ratectr.h" @@ -92,6 +93,7 @@ * This holds information on how to allocate ports */ struct mgcp_port_range { + pthread_mutex_t lock; /* addr or NULL to fall-back to default */ char *bind_addr_v4; char *bind_addr_v6; diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index ba80d7d..16b7dab 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -478,6 +479,7 @@ range = &endp->cfg->net_ports; + pthread_mutex_lock(&range->lock); /* attempt to find a port */ tries = (range->range_end - range->range_start) / 2; for (i = 0; i < tries; ++i) { @@ -490,11 +492,12 @@ range->last_port += 2; if (rc == 0) { + pthread_mutex_unlock(&range->lock); return 0; } } - + pthread_mutex_unlock(&range->lock); LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Allocating a RTP/RTCP port failed %u times.\n", tries); @@ -1606,6 +1609,7 @@ osmo_strlcpy(cfg->domain, "mgw", sizeof(cfg->domain)); + cfg->net_ports.lock = (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER; cfg->net_ports.range_start = RTP_PORT_DEFAULT_RANGE_START; cfg->net_ports.range_end = RTP_PORT_DEFAULT_RANGE_END; cfg->net_ports.last_port = cfg->net_ports.range_start; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I78ae737b829bb428372f34db7d5bc601b5088b78 Gerrit-Change-Number: 25424 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:53 +0000 Subject: Change in osmo-mgw[master]: embed strings into structs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25426 ) Change subject: embed strings into structs ...................................................................... embed strings into structs They are mostly not even as large as the talloc header used to dynamically allocate them, and they are also not "shared" by anything. Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d --- M include/osmocom/mgcp/mgcp.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M src/osmo-mgw/mgw_main.c 5 files changed, 26 insertions(+), 30 deletions(-) Approvals: laforge: Looks good to me, approved dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 228b0b3..f1e6460 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -95,8 +95,8 @@ struct mgcp_port_range { pthread_mutex_t lock; /* addr or NULL to fall-back to default */ - char *bind_addr_v4; - char *bind_addr_v6; + char bind_addr_v4[INET6_ADDRSTRLEN]; + char bind_addr_v6[INET6_ADDRSTRLEN]; /* dynamically allocated */ int range_start; @@ -129,9 +129,9 @@ struct mgcp_config { int source_port; - char *local_ip; - char *source_addr; - char *call_agent_addr; + char local_ip[INET6_ADDRSTRLEN]; + char source_addr[INET6_ADDRSTRLEN]; + char call_agent_addr[INET6_ADDRSTRLEN]; /* RTP processing */ mgcp_processing rtp_processing_cb; @@ -151,8 +151,6 @@ mgcp_rqnt rqnt_cb; void *data; - uint32_t last_call_id; - /* list holding the trunks */ struct llist_head trunks; @@ -161,7 +159,7 @@ /* osmux translator: 0 means disabled, 1 means enabled */ int osmux; /* addr to bind the server to */ - char *osmux_addr; + char osmux_addr[INET6_ADDRSTRLEN]; /* The BSC-NAT may ask for enabling osmux on demand. This tells us if * the osmux socket is already initialized. */ diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 86b0d06..5249fef 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -135,10 +135,10 @@ } else { /* Choose any of the bind addresses, preferring v6 over v4 */ bind_addr = endp->cfg->net_ports.bind_addr_v6; - if (!bind_addr) + if (!strlen(bind_addr)) bind_addr = endp->cfg->net_ports.bind_addr_v4; } - if (bind_addr) { + if (strlen(bind_addr)) { LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "using configured rtp bind ip as local bind ip %s\n", bind_addr); diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 16b7dab..736b071 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -273,7 +273,7 @@ * us for OSMUX connections. Perhaps adding a new internal API to get it * based on conn type. */ - const char *addr = endp->cfg->local_ip ? : conn->end.local_addr; + const char *addr = strlen(endp->cfg->local_ip) ? endp->cfg->local_ip : conn->end.local_addr; struct msgb *sdp; int rc; struct msgb *result; @@ -1615,8 +1615,8 @@ cfg->net_ports.last_port = cfg->net_ports.range_start; cfg->source_port = 2427; - cfg->source_addr = talloc_strdup(cfg, "0.0.0.0"); - cfg->osmux_addr = talloc_strdup(cfg, "0.0.0.0"); + osmo_strlcpy(cfg->source_addr, "0.0.0.0", sizeof(cfg->source_addr)); + osmo_strlcpy(cfg->osmux_addr, "0.0.0.0", sizeof(cfg->osmux_addr)); cfg->rtp_processing_cb = &mgcp_rtp_processing_default; cfg->setup_rtp_processing_cb = &mgcp_setup_rtp_processing_default; diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 6bc09d0..738bfcc 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -65,17 +65,17 @@ vty_out(vty, "mgcp%s", VTY_NEWLINE); vty_out(vty, " domain %s%s", g_cfg->domain, VTY_NEWLINE); - if (g_cfg->local_ip) + if (strlen(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", g_cfg->net_ports.range_start, g_cfg->net_ports.range_end, VTY_NEWLINE); - if (g_cfg->net_ports.bind_addr_v4) + if (strlen(g_cfg->net_ports.bind_addr_v4)) vty_out(vty, " rtp bind-ip %s%s", g_cfg->net_ports.bind_addr_v4, VTY_NEWLINE); - if (g_cfg->net_ports.bind_addr_v6) + if (strlen(g_cfg->net_ports.bind_addr_v6)) vty_out(vty, " rtp bind-ip-v6 %s%s", g_cfg->net_ports.bind_addr_v6, VTY_NEWLINE); if (g_cfg->net_ports.bind_addr_probe) @@ -122,7 +122,7 @@ trunk->v.vty_number_endpoints, VTY_NEWLINE); vty_out(vty, " %sallow-transcoding%s", trunk->no_audio_transcoding ? "no " : "", VTY_NEWLINE); - if (g_cfg->call_agent_addr) + if (strlen(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) @@ -443,7 +443,7 @@ "IPv4 Address to use in SDP record\n" "IPv6 Address to use in SDP record\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->local_ip, argv[0]); + osmo_strlcpy(g_cfg->local_ip, argv[0], sizeof(g_cfg->local_ip)); return CMD_SUCCESS; } @@ -455,7 +455,7 @@ "IPv4 Address to bind to\n" "IPv6 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->source_addr, argv[0]); + osmo_strlcpy(g_cfg->source_addr, argv[0], sizeof(g_cfg->source_addr)); return CMD_SUCCESS; } @@ -533,7 +533,7 @@ RTP_STR "Bind endpoints facing the Network\n" "IPv4 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->net_ports.bind_addr_v4, argv[0]); + osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, argv[0], sizeof(g_cfg->net_ports.bind_addr_v4)); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_bind_ip, @@ -548,8 +548,7 @@ NO_STR RTP_STR "Bind endpoints facing the Network\n" "Address to bind to\n") { - talloc_free(g_cfg->net_ports.bind_addr_v4); - g_cfg->net_ports.bind_addr_v4 = NULL; + osmo_strlcpy(g_cfg->net_ports.bind_addr_v4, "", sizeof(g_cfg->net_ports.bind_addr_v4)); return CMD_SUCCESS; } ALIAS_DEPRECATED(cfg_mgcp_rtp_no_bind_ip, @@ -565,7 +564,7 @@ RTP_STR "Bind endpoints facing the Network\n" "IPv6 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->net_ports.bind_addr_v6, argv[0]); + osmo_strlcpy(g_cfg->net_ports.bind_addr_v6, argv[0], sizeof(g_cfg->net_ports.bind_addr_v6)); return CMD_SUCCESS; } @@ -576,8 +575,7 @@ NO_STR RTP_STR "Bind endpoints facing the Network\n" "Address to bind to\n") { - talloc_free(g_cfg->net_ports.bind_addr_v6); - g_cfg->net_ports.bind_addr_v6 = NULL; + osmo_strlcpy(g_cfg->net_ports.bind_addr_v6, "", sizeof(g_cfg->net_ports.bind_addr_v6)); return CMD_SUCCESS; } @@ -950,7 +948,7 @@ "IPv4 Address of the call agent\n" "IPv6 Address of the call agent\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->call_agent_addr, argv[0]); + osmo_strlcpy(g_cfg->call_agent_addr, argv[0], sizeof(g_cfg->call_agent_addr)); return CMD_SUCCESS; } @@ -1559,7 +1557,7 @@ "IPv4 Address to bind to\n" "IPv6 Address to bind to\n") { - osmo_talloc_replace_string(g_cfg, &g_cfg->osmux_addr, argv[0]); + osmo_strlcpy(g_cfg->osmux_addr, argv[0], sizeof(g_cfg->osmux_addr)); return CMD_SUCCESS; } @@ -1748,7 +1746,7 @@ return rc; } - if (!g_cfg->source_addr) { + if (!strlen(g_cfg->source_addr)) { fprintf(stderr, "You need to specify a bind address.\n"); return -1; } diff --git a/src/osmo-mgw/mgw_main.c b/src/osmo-mgw/mgw_main.c index 52a1622..d12011c 100644 --- a/src/osmo-mgw/mgw_main.c +++ b/src/osmo-mgw/mgw_main.c @@ -369,12 +369,12 @@ /* we need to bind a socket */ flags = OSMO_SOCK_F_BIND; - if (cfg->call_agent_addr) + if (strlen(cfg->call_agent_addr)) flags |= OSMO_SOCK_F_CONNECT; rc = osmo_sock_init2_ofd(&cfg->gw_fd.bfd, AF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, cfg->source_addr, cfg->source_port, - cfg->call_agent_addr, cfg->call_agent_addr ? 2727 : 0, flags); + cfg->call_agent_addr, strlen(cfg->call_agent_addr) ? 2727 : 0, flags); if (rc < 0) { perror("Gateway failed to bind"); return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I7b46d531c5d3b53984f2ce44538116973f6a074d Gerrit-Change-Number: 25426 Gerrit-PatchSet: 12 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:05:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:05:53 +0000 Subject: Change in osmo-mgw[master]: adjust talloc context In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25427 ) Change subject: adjust talloc context ...................................................................... adjust talloc context there is no obvious reason why the endpoints that belong to a trunk would have the (global) config as parent context, you can't really have endpoints without a trunk anyway. Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 --- M src/libosmo-mgcp/mgcp_trunk.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved dexter: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/libosmo-mgcp/mgcp_trunk.c b/src/libosmo-mgcp/mgcp_trunk.c index c69c242..69750f8 100644 --- a/src/libosmo-mgcp/mgcp_trunk.c +++ b/src/libosmo-mgcp/mgcp_trunk.c @@ -123,7 +123,7 @@ OSMO_ASSERT(number_endpoints < 65534); /* allocate pointer array for the endpoints */ - trunk->endpoints = talloc_zero_array(trunk->cfg, struct mgcp_endpoint*, + trunk->endpoints = talloc_zero_array(trunk, struct mgcp_endpoint*, number_endpoints); if (!trunk->endpoints) return -1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id3d5fefc12b7d442c09c507b3a8b0231e46e3068 Gerrit-Change-Number: 25427 Gerrit-PatchSet: 13 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:06:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:06:48 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 16: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 16 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 13 Sep 2021 19:06: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 Sep 13 19:07:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:07:21 +0000 Subject: Change in osmo-bsc[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25444 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f Gerrit-Change-Number: 25444 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 19:07:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:07:36 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:07:36 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25445 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Gerrit-Change-Number: 25445 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 13 Sep 2021 19:07:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:08:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:08:31 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25443 ) Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 13 Sep 2021 19: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 Mon Sep 13 19:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:08:46 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Mon, 13 Sep 2021 19:08:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 13 19:09:03 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Mon, 13 Sep 2021 19:09:03 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25436 ) Change subject: Support configuring TA loop SACCH block rate ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 13 Sep 2021 19: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 Sep 14 06:26:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 06:26:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn at 4558 PS2, Line 4558: var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; > Because: [?] Ack https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn at 6161 PS2, Line 6161: if (mp_ctrl_neigh_ip != "") { /* PCU using old CTRL neigh addr resolution iface */ What's the thought process here? So you've added code paths to deal with both the old and new way in each function, and here you only enable the tests if the new neighbor address resolution is used? Why not always enable the tests? I'm curious about that, everything else looks good to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 06:26:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 06:33:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 06:33:09 +0000 Subject: Change in osmo-bsc[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25444 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f Gerrit-Change-Number: 25444 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 06:33:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 07:01:04 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 14 Sep 2021 07:01:04 +0000 Subject: Change in osmo-mgw[master]: mgcp_client: add MGW name as logging context In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25335 ) Change subject: mgcp_client: add MGW name as logging context ...................................................................... mgcp_client: add MGW name as logging context Usually only one MGCP client per application is present. Then the log lines from mgcp_client.c will be distinguishable without additional information. When the application is using a pool of MGWs, then the various MGCP Client instances become hard to distinguish. - Add a possibility to set a description (name) for each MGW pool member. When no description is set, use the domain name. - Output the pool member name on each log line in mgcp_client.c and mgcp_client_pool.c Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Related: SYS#5091 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_pool_internal.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_pool.c M src/libosmo-mgcp-client/mgcp_client_vty.c M tests/mgcp_client/mgcp_client_test.err 6 files changed, 175 insertions(+), 109 deletions(-) Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 4d162d0..0405175 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -32,6 +32,9 @@ * 'rtpbridge/(wildcard)' or a number of specific E1 like e.g. * 'ds/e1-0/s-3/su16-4' */ struct llist_head reset_epnames; + + /* human readable name / description */ + char *description; }; typedef unsigned int mgcp_trans_id_t; @@ -173,3 +176,5 @@ enum mgcp_codecs codec); enum mgcp_codecs map_pt_to_codec(struct ptmap *ptmap, unsigned int ptmap_len, unsigned int pt); + +const char *mgcp_client_name(const struct mgcp_client *mgcp); diff --git a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h index c58ec02..95f5525 100644 --- a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h +++ b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h @@ -41,3 +41,5 @@ /* VTY node specification used with this pool. This field is populated by mgcp_client_pool_vty_init() */ struct cmd_node *vty_node; }; + +const char *mgcp_client_pool_member_name(const struct mgcp_client_pool_member *pool_member); diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index 74b9cf7..8c2c118 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -46,6 +46,9 @@ #define OSMUX_CID_MAX 255 /* FIXME: use OSMUX_CID_MAX from libosmo-netif? */ #endif +#define LOGPMGW(mgcp, level, fmt, args...) \ +LOGP(DLMGCP, level, "MGW(%s) " fmt, mgcp_client_name(mgcp), ## args) + /* Codec descripton for dynamic payload types (SDP) */ const struct value_string osmo_mgcpc_codec_names[] = { { CODEC_PCMU_8000_1, "PCMU/8000/1" }, @@ -209,14 +212,13 @@ struct mgcp_response *response) { if (!pending) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot handle NULL response\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot handle NULL response\n"); return; } if (pending->response_cb) pending->response_cb(response, pending->priv); else - LOGP(DLMGCP, LOGL_DEBUG, "MGCP response ignored (NULL cb)\n"); + LOGPMGW(mgcp, LOGL_DEBUG, "MGCP response ignored (NULL cb)\n"); talloc_free(pending); } @@ -673,26 +675,25 @@ rc = mgcp_response_parse_head(r, msg); if (rc) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot parse MGCP response (head)\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot parse MGCP response (head)\n"); rc = 1; goto error; } - LOGP(DLMGCP, LOGL_DEBUG, "MGCP client: Rx %d %u %s\n", + LOGPMGW(mgcp, LOGL_DEBUG, "MGCP client: Rx %d %u %s\n", r->head.response_code, r->head.trans_id, r->head.comment); rc = parse_head_params(r); if (rc) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot parse MGCP response (head parameters)\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot parse MGCP response (head parameters)\n"); rc = 1; goto error; } pending = mgcp_client_response_pending_get(mgcp, r->head.trans_id); if (!pending) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot find matching MGCP transaction for trans_id %d\n", - r->head.trans_id); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot find matching MGCP transaction for trans_id %d\n", + r->head.trans_id); rc = -ENOENT; goto error; } @@ -713,19 +714,19 @@ msg = msgb_alloc_headroom(4096, 128, "mgcp_from_gw"); if (!msg) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to allocate MGCP message.\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Failed to allocate MGCP message.\n"); return -1; } ret = read(fd->fd, msg->data, 4096 - 128); if (ret <= 0) { - LOGP(DLMGCP, LOGL_ERROR, "Failed to read: %s: %d='%s'\n", osmo_sock_get_name2(fd->fd), - errno, strerror(errno)); + LOGPMGW(mgcp, LOGL_ERROR, "Failed to read: %s: %d='%s'\n", + osmo_sock_get_name2(fd->fd), errno, strerror(errno)); msgb_free(msg); return -1; } else if (ret > 4096 - 128) { - LOGP(DLMGCP, LOGL_ERROR, "Too much data: %s: %d\n", osmo_sock_get_name2(fd->fd), ret); + LOGPMGW(mgcp, LOGL_ERROR, "Too much data: %s: %d\n", osmo_sock_get_name2(fd->fd), ret); msgb_free(msg); return -1; } @@ -739,15 +740,17 @@ static int mgcp_do_write(struct osmo_fd *fd, struct msgb *msg) { int ret; + struct mgcp_client *mgcp = fd->data; - LOGP(DLMGCP, LOGL_DEBUG, "Tx MGCP: %s: len=%u '%s'...\n", - osmo_sock_get_name2(fd->fd), msg->len, osmo_escape_str((const char*)msg->data, OSMO_MIN(42, msg->len))); + LOGPMGW(mgcp, LOGL_DEBUG, "Tx MGCP: %s: len=%u '%s'...\n", + osmo_sock_get_name2(fd->fd), msg->len, + osmo_escape_str((const char *)msg->data, OSMO_MIN(42, msg->len))); ret = write(fd->fd, msg->data, msg->len); if (ret != msg->len) - LOGP(DLMGCP, LOGL_ERROR, "Failed to Tx MGCP: %s: %d='%s'; msg: len=%u '%s'...\n", - osmo_sock_get_name2(fd->fd), errno, strerror(errno), - msg->len, osmo_escape_str((const char*)msg->data, OSMO_MIN(42, msg->len))); + LOGPMGW(mgcp, LOGL_ERROR, "Failed to Tx MGCP: %s: %d='%s'; msg: len=%u '%s'...\n", + osmo_sock_get_name2(fd->fd), errno, strerror(errno), + msg->len, osmo_escape_str((const char *)msg->data, OSMO_MIN(42, msg->len))); return ret; } @@ -780,12 +783,12 @@ if (osmo_strlcpy(mgcp->actual.endpoint_domain_name, conf->endpoint_domain_name, sizeof(mgcp->actual.endpoint_domain_name)) >= sizeof(mgcp->actual.endpoint_domain_name)) { - LOGP(DLMGCP, LOGL_ERROR, "MGCP client: endpoint domain name is too long, max length is %zu: '%s'\n", - sizeof(mgcp->actual.endpoint_domain_name) - 1, conf->endpoint_domain_name); + LOGPMGW(mgcp, LOGL_ERROR, "MGCP client: endpoint domain name is too long, max length is %zu: '%s'\n", + sizeof(mgcp->actual.endpoint_domain_name) - 1, conf->endpoint_domain_name); talloc_free(mgcp); return NULL; } - LOGP(DLMGCP, LOGL_NOTICE, "MGCP client: using endpoint domain '@%s'\n", mgcp_client_endpoint_domain(mgcp)); + LOGPMGW(mgcp, LOGL_NOTICE, "MGCP client: using endpoint domain '@%s'\n", mgcp_client_endpoint_domain(mgcp)); INIT_LLIST_HEAD(&mgcp->actual.reset_epnames); llist_for_each_entry(reset_ep, &conf->reset_epnames, list) { @@ -793,6 +796,9 @@ llist_add_tail(&actual_reset_ep->list, &mgcp->actual.reset_epnames); } + if (conf->description) + mgcp->actual.description = talloc_strdup(mgcp, conf->description); + return mgcp; } @@ -821,21 +827,21 @@ if (i == retry_n_ports) { /* Last try failed */ - LOGP(DLMGCP, LOGL_NOTICE, "MGCPGW failed to bind to %s:%d -- check configuration!\n", + LOGPMGW(mgcp, LOGL_NOTICE, "Failed to bind to %s:%d -- check configuration!\n", mgcp->actual.local_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.local_port); if (retry_n_ports == 0) return -EINVAL; } else { /* Choose a new port number to try next */ - LOGP(DLMGCP, LOGL_NOTICE, - "MGCPGW failed to bind to %s:%d, retrying with port %d -- check configuration!\n", + LOGPMGW(mgcp, LOGL_NOTICE, + "Failed to bind to %s:%d, retrying with port %d -- check configuration!\n", mgcp->actual.local_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.local_port, mgcp->actual.local_port + 1); mgcp->actual.local_port++; } } - LOGP(DLMGCP, LOGL_FATAL, "MGCPGW failed to find a port to bind on %u times -- check configuration!\n", i); + LOGPMGW(mgcp, LOGL_FATAL, "Failed to find a port to bind on %u times -- check configuration!\n", i); return -EINVAL; } @@ -862,12 +868,12 @@ rc = snprintf(endpoint, sizeof(endpoint), "%s@%s", name, mgcp_client_endpoint_domain(mgcp)); if (rc > sizeof(endpoint) - 1) { - LOGP(DLMGCP, LOGL_ERROR, "MGCP endpoint exceeds maximum length of %zu: '%s@%s'\n", - sizeof(endpoint) - 1, name, mgcp_client_endpoint_domain(mgcp)); + LOGPMGW(mgcp, LOGL_ERROR, "MGCP endpoint exceeds maximum length of %zu: '%s@%s'\n", + sizeof(endpoint) - 1, name, mgcp_client_endpoint_domain(mgcp)); return NULL; } if (rc < 1) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP endpoint name\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot compose MGCP endpoint name\n"); return NULL; } return endpoint; @@ -885,7 +891,7 @@ const char *epname; if (!mgcp) { - LOGP(DLMGCP, LOGL_FATAL, "MGCPGW client not initialized properly\n"); + LOGPMGW(mgcp, LOGL_FATAL, "Client not initialized properly\n"); return -EINVAL; } @@ -898,21 +904,21 @@ rc = init_socket(mgcp, retry_n_ports); if (rc < 0) { - LOGP(DLMGCP, LOGL_FATAL, - "Failed to initialize socket %s:%u -> %s:%u for MGCP GW: %s\n", + LOGPMGW(mgcp, LOGL_FATAL, + "Failed to initialize socket %s:%u -> %s:%u for MGW: %s\n", mgcp->actual.local_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.local_port, mgcp->actual.remote_addr ? mgcp->actual.local_addr : "(any)", mgcp->actual.remote_port, strerror(errno)); goto error_close_fd; } - LOGP(DLMGCP, LOGL_INFO, "MGCP GW connection: %s\n", osmo_sock_get_name2(wq->bfd.fd)); + LOGPMGW(mgcp, LOGL_INFO, "MGW connection: %s\n", osmo_sock_get_name2(wq->bfd.fd)); /* If configured, send a DLCX message to the endpoints that are configured to * be reset on startup. Usually this is a wildcarded endpoint. */ llist_for_each_entry(reset_ep, &mgcp->actual.reset_epnames, list) { epname = _mgcp_client_name_append_domain(mgcp, reset_ep->name); - LOGP(DLMGCP, LOGL_INFO, "MGCP GW sending DLCX to: %s\n", epname); + LOGPMGW(mgcp, LOGL_INFO, "Sending DLCX to: %s\n", epname); _mgcp_client_send_dlcx(mgcp, epname); } return 0; @@ -938,13 +944,13 @@ struct osmo_wqueue *wq; if (!mgcp) { - LOGP(DLMGCP, LOGL_FATAL, "MGCPGW client not initialized properly\n"); + LOGP(DLMGCP, LOGL_FATAL, "MGCP client not initialized properly\n"); return; } wq = &mgcp->wq; osmo_wqueue_clear(wq); - LOGP(DLMGCP, LOGL_INFO, "MGCP GW connection: %s -- closed!\n", osmo_sock_get_name2(wq->bfd.fd)); + LOGPMGW(mgcp, LOGL_INFO, "MGCP association: %s -- closed!\n", osmo_sock_get_name2(wq->bfd.fd)); close(wq->bfd.fd); wq->bfd.fd = -1; if (osmo_fd_is_registered(&wq->bfd)) @@ -1014,7 +1020,7 @@ talloc_asprintf(ctx, "ds/e1-%u/s-%u/su%u-%u@%s", trunk_id, ts, rate, offset, mgcp_client_endpoint_domain(mgcp)); if (!epname) { - LOGP(DLMGCP, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name!\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot compose MGCP e1-endpoint name!\n"); return NULL; } @@ -1024,9 +1030,9 @@ rate_offs_valid = true; } if (!rate_offs_valid) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot compose MGCP e1-endpoint name (%s), rate(%u)/offset(%u) combination is invalid!\n", epname, - rate, offset); + LOGPMGW(mgcp, LOGL_ERROR, + "Cannot compose MGCP e1-endpoint name (%s), rate(%u)/offset(%u) combination is invalid!\n", + epname, rate, offset); talloc_free(epname); return NULL; } @@ -1034,8 +1040,9 @@ /* An E1 line has a maximum of 32 timeslots, while the first (ts=0) is * reserverd for framing and alignment, so we can not use it here. */ if (ts == 0 || ts > NUM_E1_TS-1) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot compose MGCP e1-endpoint name (%s), E1-timeslot number (%u) is invalid!\n", epname, ts); + LOGPMGW(mgcp, LOGL_ERROR, + "Cannot compose MGCP e1-endpoint name (%s), E1-timeslot number (%u) is invalid!\n", + epname, ts); talloc_free(epname); return NULL; } @@ -1063,7 +1070,7 @@ return pending; } -/* Send the MGCP message in msg to the MGCP GW and handle a response with +/* Send the MGCP message in msg to the MGW and handle a response with * response_cb. NOTE: the response_cb still needs to call * mgcp_response_parse_params(response) to get the parsed parameters -- to * potentially save some CPU cycles, only the head line has been parsed when @@ -1080,8 +1087,8 @@ trans_id = msg->cb[MSGB_CB_MGCP_TRANS_ID]; if (!trans_id) { - LOGP(DLMGCP, LOGL_ERROR, - "Unset transaction id in mgcp send request\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Unset transaction id in mgcp send request\n"); talloc_free(msg); return -EINVAL; } @@ -1096,9 +1103,9 @@ } if (msgb_l2len(msg) > 4096) { - LOGP(DLMGCP, LOGL_ERROR, - "Cannot send, MGCP message too large: %u\n", - msgb_l2len(msg)); + LOGPMGW(mgcp, LOGL_ERROR, + "Cannot send, MGCP message too large: %u\n", + msgb_l2len(msg)); msgb_free(msg); rc = -EINVAL; goto mgcp_tx_error; @@ -1106,12 +1113,12 @@ rc = osmo_wqueue_enqueue(&mgcp->wq, msg); if (rc) { - LOGP(DLMGCP, LOGL_FATAL, "Could not queue message to MGCP GW\n"); + LOGPMGW(mgcp, LOGL_FATAL, "Could not queue message to MGW\n"); msgb_free(msg); goto mgcp_tx_error; } else - LOGP(DLMGCP, LOGL_DEBUG, "Queued %u bytes for MGCP GW\n", - msgb_l2len(msg)); + LOGPMGW(mgcp, LOGL_DEBUG, "Queued %u bytes for MGW\n", + msgb_l2len(msg)); return 0; mgcp_tx_error: @@ -1138,10 +1145,10 @@ struct mgcp_response_pending *pending = mgcp_client_response_pending_get(mgcp, trans_id); if (!pending) { /*! Note: it is not harmful to cancel a transaction twice. */ - LOGP(DLMGCP, LOGL_ERROR, "Cannot cancel, no such transaction: %u\n", trans_id); + LOGPMGW(mgcp, LOGL_ERROR, "Cannot cancel, no such transaction: %u\n", trans_id); return -ENOENT; } - LOGP(DLMGCP, LOGL_DEBUG, "Canceled transaction %u\n", trans_id); + LOGPMGW(mgcp, LOGL_DEBUG, "Canceled transaction %u\n", trans_id); talloc_free(pending); return 0; /*! We don't really need to clean up the wqueue: In all sane cases, the msgb has already been sent @@ -1233,8 +1240,8 @@ /* Determine local IP-Address */ if (osmo_sock_local_ip(local_ip, mgcp->actual.remote_addr) < 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Could not determine local IP-Address!\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Could not determine local IP-Address!\n"); msgb_free(msg); return -EINVAL; } @@ -1259,14 +1266,14 @@ /* Add RTP address and port */ if (mgcp_msg->audio_port == 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Invalid port number, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Invalid port number, can not generate MGCP message\n"); msgb_free(msg); return -EINVAL; } if (strlen(mgcp_msg->audio_ip) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty ip address, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "Empty ip address, can not generate MGCP message\n"); msgb_free(msg); return -EINVAL; } @@ -1323,8 +1330,7 @@ rc |= msgb_printf(msg, "a=ptime:%u\r\n", mgcp_msg->ptime); if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "message buffer to small, can not generate MGCP message (SDP)\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Message buffer to small, can not generate MGCP message (SDP)\n"); msgb_free(msg); return -ENOBUFS; } @@ -1371,16 +1377,15 @@ rc |= msgb_printf(msg, "RSIP %u", trans_id); break; default: - LOGP(DLMGCP, LOGL_ERROR, - "Invalid command verb, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Invalid command verb, can not generate MGCP message\n"); msgb_free(msg); return NULL; } /* Check if mandatory fields are missing */ if (!((mgcp_msg->presence & mandatory_mask) == mandatory_mask)) { - LOGP(DLMGCP, LOGL_ERROR, - "One or more missing mandatory fields, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, + "One or more missing mandatory fields, can not generate MGCP message\n"); msgb_free(msg); return NULL; } @@ -1388,16 +1393,15 @@ /* Add endpoint name */ if (mgcp_msg->presence & MGCP_MSG_PRESENCE_ENDPOINT) { if (strlen(mgcp_msg->endpoint) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty endpoint name, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Empty endpoint name, can not generate MGCP message\n"); msgb_free(msg); return NULL; } if (strstr(mgcp_msg->endpoint, "@") == NULL) { - LOGP(DLMGCP, LOGL_ERROR, - "Endpoint name (%s) lacks separator (@), can not generate MGCP message\n", - mgcp_msg->endpoint); + LOGPMGW(mgcp, LOGL_ERROR, + "Endpoint name (%s) lacks separator (@), can not generate MGCP message\n", + mgcp_msg->endpoint); msgb_free(msg); return NULL; } @@ -1415,8 +1419,7 @@ /* Add connection id */ if (mgcp_msg->presence & MGCP_MSG_PRESENCE_CONN_ID) { if (strlen(mgcp_msg->conn_id) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty connection id, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Empty connection id, can not generate MGCP message\n"); msgb_free(msg); return NULL; } @@ -1453,9 +1456,8 @@ /* Add X-Osmo-Osmux */ if ((mgcp_msg->presence & MGCP_MSG_PRESENCE_X_OSMO_OSMUX_CID)) { if (mgcp_msg->x_osmo_osmux_cid < -1 || mgcp_msg->x_osmo_osmux_cid > OSMUX_CID_MAX) { - LOGP(DLMGCP, LOGL_ERROR, - "Wrong Osmux CID %d, can not generate MGCP message\n", - mgcp_msg->x_osmo_osmux_cid); + LOGPMGW(mgcp, LOGL_ERROR, "Wrong Osmux CID %d, can not generate MGCP message\n", + mgcp_msg->x_osmo_osmux_cid); msgb_free(msg); return NULL; } @@ -1475,8 +1477,7 @@ } if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "message buffer to small, can not generate MGCP message\n"); + LOGPMGW(mgcp, LOGL_ERROR, "Message buffer to small, can not generate MGCP message\n"); msgb_free(msg); msg = NULL; } @@ -1508,3 +1509,22 @@ { MGCP_CONN_LOOPBACK, "loopback" }, { 0, NULL } }; + +/*! Get MGCP client instance name (VTY). + * \param[in] mgcp MGCP client descriptor. + * \returns MGCP client name. + * + * The user can only modify the name of an MGCP client instance when it is + * part of a pool. For single MGCP client instances and MGCP client instance + * where no description is set via the VTY, the MGW domain name will be used + * as name. */ +const char *mgcp_client_name(const struct mgcp_client *mgcp) +{ + if (!mgcp) + return "(null)"; + + if (mgcp->actual.description) + return mgcp->actual.description; + else + return mgcp_client_endpoint_domain(mgcp); +} diff --git a/src/libosmo-mgcp-client/mgcp_client_pool.c b/src/libosmo-mgcp-client/mgcp_client_pool.c index 9311ac9..0531953 100644 --- a/src/libosmo-mgcp-client/mgcp_client_pool.c +++ b/src/libosmo-mgcp-client/mgcp_client_pool.c @@ -24,6 +24,35 @@ #include #include +#define LOGPPMGW(pool_member, level, fmt, args...) \ +LOGP(DLMGCP, level, "MGW-pool(%s) " fmt, mgcp_client_pool_member_name(pool_member), ## args) + +/* Get a human readable name for a given pool member. */ +const char *mgcp_client_pool_member_name(const struct mgcp_client_pool_member *pool_member) +{ + const struct mgcp_client *mpcp_client; + struct mgcp_client mpcp_client_dummy; + static char name[512]; + const char *description; + + if (!pool_member) + return "(null)"; + + /* It is not guranteed that a pool_member has an MGCP client. The client may not yet be initialized or the + * initalization may have been failed. In this case we will generate a dummy MGCP client to work with. */ + if (!pool_member->client) { + memcpy(&mpcp_client_dummy.actual, &pool_member->conf, sizeof(mpcp_client_dummy.actual)); + mpcp_client = &mpcp_client_dummy; + } else { + mpcp_client = pool_member->client; + } + + description = mgcp_client_name(mpcp_client); + snprintf(name, sizeof(name), "%d:%s", pool_member->nr, description); + + return name; +} + /*! Allocate MGCP client pool. This is called once on startup and before the pool is used with * mgcp_client_pool_vty_init(). Since the pool is linked with the VTY it must exist througout the entire runtime. * \param[in] talloc_ctx talloc context. */ @@ -53,7 +82,7 @@ /* Initialize client */ pool_member->client = mgcp_client_init(pool_member, &pool_member->conf); if (!pool_member->client) { - LOGP(DLMGCP, LOGL_ERROR, "MGW %u initialization failed\n", pool_member->nr); + LOGPPMGW(pool_member, LOGL_ERROR, "MGCP client initialization failed\n"); continue; } @@ -63,8 +92,8 @@ /* Connect client */ if (mgcp_client_connect2(pool_member->client, 0)) { - LOGP(DLMGCP, LOGL_ERROR, "MGW %u connect failed at (%s:%u)\n", - pool_member->nr, pool_member->conf.remote_addr, pool_member->conf.remote_port); + LOGPPMGW(pool_member, LOGL_ERROR, "MGCP client connect failed at (%s:%u)\n", + pool_member->conf.remote_addr, pool_member->conf.remote_port); talloc_free(pool_member->client); pool_member->client = NULL; continue; @@ -104,14 +133,14 @@ else if (pool_member_picked->refcount > pool_member->refcount) pool_member_picked = pool_member; } else { - LOGP(DLMGCP, LOGL_DEBUG, "MGW pool has %u members -- MGW %u is unusable\n", n_pool_members, - pool_member->nr); + LOGPPMGW(pool_member, LOGL_DEBUG, "MGW pool has %u members -- MGW %u is unusable\n", n_pool_members, + pool_member->nr); } } if (pool_member_picked) { - LOGP(DLMGCP, LOGL_DEBUG, "MGW pool has %u members -- using MGW %u (active calls: %u)\n", - n_pool_members, pool_member_picked->nr, pool_member_picked->refcount); + LOGPPMGW(pool_member_picked, LOGL_DEBUG, "MGW pool has %u members -- using MGW %u (active calls: %u)\n", + n_pool_members, pool_member_picked->nr, pool_member_picked->refcount); return pool_member_picked; } @@ -135,7 +164,8 @@ /* When the pool is empty, return a single MGCP client if it is registered. */ if (llist_empty(&pool->pool) && pool->mgcp_client_single) { - LOGP(DLMGCP, LOGL_DEBUG, "MGW pool is empty -- using (single) MGW\n"); + LOGP(DLMGCP, LOGL_DEBUG, "MGW pool is empty -- using (single) MGW %s\n", + mgcp_client_name(pool->mgcp_client_single)); return pool->mgcp_client_single; } @@ -177,7 +207,7 @@ llist_for_each_entry(pool_member, &pool->pool, list) { if (pool_member->client == mgcp_client) { if (pool_member->refcount == 0) { - LOGP(DLMGCP, LOGL_ERROR, "MGW %u has invalid refcount\n", pool_member->nr); + LOGPPMGW(pool_member, LOGL_ERROR, "MGW pool member has invalid refcount\n"); return; } pool_member->refcount--; diff --git a/src/libosmo-mgcp-client/mgcp_client_vty.c b/src/libosmo-mgcp-client/mgcp_client_vty.c index 8719e3c..4bf6cd0 100644 --- a/src/libosmo-mgcp-client/mgcp_client_vty.c +++ b/src/libosmo-mgcp-client/mgcp_client_vty.c @@ -242,6 +242,9 @@ int port; struct reset_ep *reset_ep; + if (conf->description) + vty_out(vty, "%sdescription %s%s", indent, conf->description, VTY_NEWLINE); + addr = conf->local_addr; if (addr) vty_out(vty, "%smgw local-ip %s%s", indent, addr, @@ -366,7 +369,7 @@ } vty->index = &pool_member->conf; - vty->index_sub = NULL; + vty->index_sub = &pool_member->conf.description; vty->node = global_mgcp_client_pool->vty_node->node; return CMD_SUCCESS; @@ -387,8 +390,8 @@ /* Make sure that there are no ongoing calls */ if (pool_member->refcount > 0) { - vty_out(vty, "%% MGCP client (MGW %u) is still serving ongoing calls -- can't remove it now!%s", - pool_member->nr, VTY_NEWLINE); + vty_out(vty, "%% MGCP client (MGW %s) is still serving ongoing calls -- can't remove it now!%s", + mgcp_client_pool_member_name(pool_member), VTY_NEWLINE); return CMD_WARNING; } @@ -417,8 +420,8 @@ /* Make sure that there are no ongoing calls */ if (pool_member->refcount > 0) { - vty_out(vty, "%% MGCP client (MGW %u) is still serving ongoing calls -- can't reconnect it now!%s", - pool_member->nr, VTY_NEWLINE); + vty_out(vty, "%% MGCP client (MGW %s) is still serving ongoing calls -- can't reconnect it now!%s", + mgcp_client_pool_member_name(pool_member), VTY_NEWLINE); return CMD_WARNING; } @@ -431,8 +434,10 @@ /* Create a new MGCP client instance with the current config */ pool_member->client = mgcp_client_init(pool_member, &pool_member->conf); if (!pool_member->client) { - LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %u initalization failed\n", pool_member->nr); - vty_out(vty, "%% MGCP client initalization failed ('%s')%s", argv[0], VTY_NEWLINE); + LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %s initalization failed\n", + mgcp_client_pool_member_name(pool_member)); + vty_out(vty, "%% MGCP client (MGW %s) initalization failed ('%s')%s", + mgcp_client_pool_member_name(pool_member), argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -441,11 +446,13 @@ /* Connect client */ if (mgcp_client_connect(pool_member->client)) { - LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %u connect failed at (%s:%u)\n", - pool_member->nr, pool_member->conf.remote_addr, pool_member->conf.remote_port); + LOGP(DLMGCP, LOGL_ERROR, "(manual) MGW %s connect failed at (%s:%u)\n", + mgcp_client_pool_member_name(pool_member), pool_member->conf.remote_addr, + pool_member->conf.remote_port); talloc_free(pool_member->client); pool_member->client = NULL; - vty_out(vty, "%% MGCP client initalization failed ('%s')%s", argv[0], VTY_NEWLINE); + vty_out(vty, "%% MGCP client (MGW %s) initalization failed ('%s')%s", + mgcp_client_pool_member_name(pool_member), argv[0], VTY_NEWLINE); return CMD_WARNING; } @@ -500,7 +507,7 @@ } llist_for_each_entry(pool_member, &global_mgcp_client_pool->pool, list) { - vty_out(vty, "%% MGW %u%s", pool_member->nr, VTY_NEWLINE); + vty_out(vty, "%% MGW %s%s", mgcp_client_pool_member_name(pool_member), VTY_NEWLINE); vty_out(vty, "%% mgcp-client: %s%s", pool_member->client ? "connected" : "disconnected", VTY_NEWLINE); vty_out(vty, "%% service: %s%s", pool_member->blocked ? "blocked" : "unblocked", VTY_NEWLINE); @@ -538,6 +545,8 @@ install_node(pool->vty_node, config_write_pool); vty_init_common(pool, mgw_node); + install_element(mgw_node, &cfg_description_cmd); + install_lib_element(ENABLE_NODE, &mgw_reconnect_cmd); install_lib_element(ENABLE_NODE, &mgw_block_cmd); install_lib_element(ENABLE_NODE, &mgw_unblock_cmd); diff --git a/tests/mgcp_client/mgcp_client_test.err b/tests/mgcp_client/mgcp_client_test.err index e7db23c..4a73f7f 100644 --- a/tests/mgcp_client/mgcp_client_test.err +++ b/tests/mgcp_client/mgcp_client_test.err @@ -1,19 +1,19 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' -DLMGCP message buffer to small, can not generate MGCP message (SDP) +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) Message buffer to small, can not generate MGCP message (SDP) test_mgcp_client_cancel(): -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' - composed msg with trans_id=1 - not in queue yet, cannot cancel yet -DLMGCP Cannot cancel, no such transaction: 1 +DLMGCP MGW(mgw) Cannot cancel, no such transaction: 1 - enqueue - cancel succeeds -DLMGCP Canceled transaction 1 +DLMGCP MGW(mgw) Canceled transaction 1 - late response gets discarded -DLMGCP MGCP client: Rx 200 1 OK -DLMGCP Cannot find matching MGCP transaction for trans_id 1 +DLMGCP MGW(mgw) MGCP client: Rx 200 1 OK +DLMGCP MGW(mgw) Cannot find matching MGCP transaction for trans_id 1 - canceling again does nothing -DLMGCP Cannot cancel, no such transaction: 1 +DLMGCP MGW(mgw) Cannot cancel, no such transaction: 1 test_mgcp_client_cancel() done test_sdp_section_start() test [0]: @@ -130,9 +130,9 @@ DLMGCP ptmap contains illegal mapping: codec=0 maps to pt=100 DLMGCP ptmap contains illegal mapping: codec=113 maps to pt=2 DLMGCP ptmap contains illegal mapping: codec=0 maps to pt=100 -DLMGCP MGCP client: using endpoint domain '@mgw' -DLMGCP Cannot compose MGCP e1-endpoint name (ds/e1-15/s-1/su128-0 at mgw), rate(128)/offset(0) combination is invalid! -DLMGCP Cannot compose MGCP e1-endpoint name (ds/e1-15/s-1/su8-16 at mgw), rate(8)/offset(16) combination is invalid! -DLMGCP Cannot compose MGCP e1-endpoint name (ds/e1-15/s-0/su8-2 at mgw), E1-timeslot number (0) is invalid! -DLMGCP Cannot compose MGCP e1-endpoint name (ds/e1-15/s-64/su8-2 at mgw), E1-timeslot number (64) is invalid! +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) Cannot compose MGCP e1-endpoint name (ds/e1-15/s-1/su128-0 at mgw), rate(128)/offset(0) combination is invalid! +DLMGCP MGW(mgw) Cannot compose MGCP e1-endpoint name (ds/e1-15/s-1/su8-16 at mgw), rate(8)/offset(16) combination is invalid! +DLMGCP MGW(mgw) Cannot compose MGCP e1-endpoint name (ds/e1-15/s-0/su8-2 at mgw), E1-timeslot number (0) is invalid! +DLMGCP MGW(mgw) Cannot compose MGCP e1-endpoint name (ds/e1-15/s-64/su8-2 at mgw), E1-timeslot number (64) is invalid! Done -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25335 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I53ff5445c8e5faffa4ef908ffb1fdb1f47ea2904 Gerrit-Change-Number: 25335 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 07:37:29 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 14 Sep 2021 07:37:29 +0000 Subject: Change in osmo-bsc[master]: doc/mgwpool: update documentation References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25448 ) Change subject: doc/mgwpool: update documentation ...................................................................... doc/mgwpool: update documentation The mgw-pool now allows to set a decription for each MGW /MGCP client instance. Update the documentation so that it reflects the current state. Change-Id: I3026e027bba1a9a12ceca64e96df993b5957cb1d Related: SYS#5091 --- M doc/manuals/chapters/mgwpool.adoc 1 file changed, 23 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/48/25448/1 diff --git a/doc/manuals/chapters/mgwpool.adoc b/doc/manuals/chapters/mgwpool.adoc index 7d9e9a6..2221925 100644 --- a/doc/manuals/chapters/mgwpool.adoc +++ b/doc/manuals/chapters/mgwpool.adoc @@ -47,12 +47,14 @@ Example configuration with two MGCP-Client instances in a pool: ---- mgw 0 + description media-gw-0 <2> mgw remote-ip 127.0.0.1 mgw remote-port 2432 mgw local-ip 127.0.0.1 mgw local-port 2431 mgw endpoint-domain mgw0 <1> mgw 1 + description media-gw-1 <2> mgw remote-ip 127.0.0.1 mgw remote-port 2430 mgw local-ip 127.0.0.1 @@ -65,6 +67,10 @@ endpoint names in the log. It should also be noted that the domain name must match the configuration of the related OsmoMGW instance. +<2> It is also possible to assign a descriptive name to each MGW instance. The +MGCP client specific log lines will then use this name as logging context. If +no description is set, the domain name will be used. + === MGW pool management While it was not possible to change the MGCP-Client configuration under the @@ -80,11 +86,11 @@ ---- OsmoBSC> show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 1 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 0 @@ -116,20 +122,23 @@ ---- % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 2 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 3 -% MGW 2 +% MGW 2:mgw <1> % mgcp-client: disconnected % service: unblocked % ongoing calls: 0 ---- +<1> In this example a description is not set yet, so the domain name ("mgw") +is displayed. + ==== Reconnecting an MGW / MGCP-Client It may become necessary to reconnect an MGCP-Client. This is the case when the @@ -149,15 +158,15 @@ ---- OsmoBSC# show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 2 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 3 -% MGW 2 +% MGW 2:mgw % mgcp-client: connected % service: unblocked % ongoing calls: 0 @@ -191,15 +200,15 @@ OsmoBSC# mgw 2 block OsmoBSC# show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 11 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 12 -% MGW 2 +% MGW 2:mgw % mgcp-client: connected % service: blocked % ongoing calls: 10 @@ -211,15 +220,15 @@ ---- OsmoBSC# show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 15 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 14 -% MGW 2 +% MGW 2:mgw % mgcp-client: connected % service: blocked % ongoing calls: 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3026e027bba1a9a12ceca64e96df993b5957cb1d Gerrit-Change-Number: 25448 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 Sep 14 08:11:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 08:11:40 +0000 Subject: Change in osmo-bsc[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25444 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f Gerrit-Change-Number: 25444 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 08:11: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 Sep 14 08:11:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 08:11:42 +0000 Subject: Change in osmo-bsc[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25444 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Power Control Loop: Set P_CON_INTERVAL to 1 by default TS 45.008 section 4.7.1: """ Upon receipt of a command from an SACCH to change its power level on the corresponding uplink channel, the MS shall change to the new level at a rate of one nominal 2 dB power control step every 60 ms (13 TDMA frames), i.e. a range change of 15 steps should take about 900 ms. The change shall commence at the first TDMA frame belonging to the next reporting period (as specified in subclause 8.4). The MS shall change the power one nominal 2 dB step at a time, at a rate of one step every 60 ms following the initial change, irrespective of whether actual transmission takes place or not. """ Since the reported MS_PWR in L1 SACCH Header is, according to specs, the one used for the last block of the previous SACCH period, it becomes clear the first SACCH block after a requested MS Power Level change by the network may contain mismatches between the announced MS_PWR by the MS and the measured Rxlev/RxQual. Hence, let's better use a P_CON_INTERVAL of 1 which retriggers the MS Power Control Loop every second SACCH block. Related: SYS#5371 Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 4 files changed, 47 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 95adbb1..54cbd5b 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -150,20 +150,46 @@ be suspended for a certain number of SACCH multiframes defined by VTY parameter `ctrl-interval`. Given that SACCH is relatively slow and transmission of a data block takes 480 ms, suspension allows an observation of the effect of one power control -decision before initiating the next one. +decision before initiating the next one. This is mostly important due to the +fact that MS must change the transmit power at nominal steps of 2dB every 60ms +(TS 45.008 sec 4.7.1). As a result, if the network requests the MS to change its +transmit power by several MS Power Levels at a time, the MS will do so gradually +over the next measurement period. Hence, upon next received L1 SACCH block, the +_MS_PWR_ value announced by the MS will match only the one used to transmit the +last block, and so the related measured RxLevel/RxQual values will be +inaccurate. By skipping one or several SACCH blocks, the algorithm will always +use values which match correctly the announced _MS_PWR_ and the measured +RxLevel/RxQual (because the _MS_PWR_ will already have changed and hence will be +kept stable over that measurement period). ---- OsmoBSC(config-bs-power-ctrl)# ctrl-interval ? <0-31> P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds) ---- -By default, the suspension interval is set to 0 for both MS/BS power control loops, -therefore the power control decision is taken every 480 ms (one SACCH block period). -Setting `ctrl-interval` to 1 increases the interval to 960 ms, so basically every -second Uplink SACCH block is skipped; value 2 corresponds to the interval of -1920 ms, so 3/4 received SACCH blocks are skipped. +The value to use for this parameter is closely related to that of VTY option +`step-size inc <2-6> red <2-4>`, which configures the maximum step (in dB) at +which the MS Power can be requested to changed when the MS Power Control Loop is +triggered. The higher the `step-size`, the more time it will need the MS to do +the necessary ramping of 2 dB steps, and hence the amount of time required for +the MS to settle on the requested MS Power Level for an entire SACCH block. Or +equally, the time the network can start using the full measurement period to +trigger the MS Power Control Loop again with reliable measurements +(`P_CON_INTERVAL`). -3GPP TS 45.008 briefly mentions this parameter in table A.1 (P_Con_INTERVAL). +By default, increment `step-size` is set to 4 dB and the decrement `step-size` +is set to 2 dB, hence the MS requiring `4 * 60 = 240` milliseconds. That's less +than 1 measurement period (480 ms), hence only the first measurement period +needs to be skipped. Therefore, the suspension interval is set to 1 for both +MS/BS power control loops, and so the power control decision is taken every 960 +ms (every second SACCH block period). + +Setting `ctrl-interval` to 0 increases the interval to 480 ms, so basically no +SACCH block is skipped and MS Power Control loop is triggered upon receival of +every UL SACCH block. Value 2 corresponds to the interval of 1920 ms, so 3/4 +received SACCH blocks are skipped. + +3GPP TS 45.008 briefly mentions this parameter in table A.1 (`P_Con_INTERVAL`). A small time graph is depicted below for better understanding of the meaning of values for this parameter, since it is not obvious at all. @@ -173,8 +199,8 @@ |<-->| - one SACCH multi-frame period | | |----|----|----|----|----|----|----|----|----> SACCH multi-frames -a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s, default) -b) * * * * * P_CON_INTERVAL=1 (0.96 s) +a) * * * * * * * * * P_CON_INTERVAL=0 (0.48 s) +b) * * * * * P_CON_INTERVAL=1 (0.96 s, default) c) * * * P_CON_INTERVAL=2 (1.92 s) d) * * P_CON_INTERVAL=3 (2.88 s) e) * * P_CON_INTERVAL=4 (3.84 s) diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index dbfe5e4..3774344 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -2978,7 +2978,7 @@ X(BSC_VTY_ATTR_NEW_LCHAN), "ctrl-interval <0-31>", "Set power control interval (for dynamic mode)\n" - "P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds)\n") + "P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds)(default=1)\n") { struct gsm_power_ctrl_params *params = vty->index; @@ -3928,8 +3928,7 @@ if (cp->dir == GSM_PWR_CTRL_DIR_DL) cfg_out(" bs-power dyn-max %u%s", cp->bs_power_max_db, VTY_NEWLINE); - if (cp->ctrl_interval > 0) - cfg_out(" ctrl-interval %u%s", cp->ctrl_interval, VTY_NEWLINE); + cfg_out(" ctrl-interval %u%s", cp->ctrl_interval, VTY_NEWLINE); cfg_out(" step-size inc %u red %u%s", cp->inc_step_size_db, cp->red_step_size_db, VTY_NEWLINE); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 02d9fd7..a6c54d8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1142,6 +1142,8 @@ .inc_step_size_db = 4, /* 2, 4, or 6 dB */ .red_step_size_db = 2, /* 2 or 4 dB */ + .ctrl_interval = 1, /* Trigger loop every second SACCH block. TS 45.008 sec 4.7.1 */ + /* RxLev measurement parameters */ .rxlev_meas = { /* Thresholds for RxLev (see 3GPP TS 45.008, A.3.2.1) */ diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index 8cb695f..af02cd4 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -7,6 +7,7 @@ mode static ms-power-control mode dyn-bts + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -70,6 +71,7 @@ bs-power-control mode dyn-bts bs-power dyn-max 12 + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -96,9 +98,11 @@ bs-power-control ... ctrl-interval 31 -... !ctrl-interval +... ms-power-control -... !ctrl-interval +... + ctrl-interval 1 +... OsmoBSC(config-bs-power-ctrl)# exit OsmoBSC(config-net-bts)# ms-power-control @@ -131,6 +135,7 @@ ... ms-power-control mode dyn-bts + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 @@ -283,6 +288,7 @@ mode static ms-power-control mode dyn-bts + ctrl-interval 1 step-size inc 4 red 2 rxlev-thresh lower 32 upper 38 rxlev-thresh-comp lower 10 12 upper 19 20 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Iade5b597e0e56b07c6d78995fcec7c641e4e643f Gerrit-Change-Number: 25444 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:12:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 08:12:12 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL RSSI from correct measurement period In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25438 ) Change subject: MS Power Control Loop: Feed UL RSSI from correct measurement period ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I00852cb37a3613606e37476c169f5a32d6b5d75e Gerrit-Change-Number: 25438 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 14 Sep 2021 08:12:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:25:48 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:25:48 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... Patch Set 4: Code-Review+2 combine votes -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 08:25: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 Sep 14 08:28:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:28:18 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25346 to look at the new patch set (#5). Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... add osmo_stat_item_get_group_by_name_idxname() Add "missing" API for looking up a stat_item_group by its index-name. A subsequent patch, which adds stat_items to the CTRL interface, will use this to look up stat item groups by object name. In stat item groups, there are group names, having a number of indexes denoting different objects. An object can have, besides the index, also a name that is equivalent to the index. Apologies for the weird function name, it's still the best one I could come up with: "group_by_name" refers to the group name, and "idxname" refers to the name that the object index is associated with. We already have osmo_stat_item_get_group_by_name_idx(). Other contestants for name of this new function were: - osmo_stat_item_get_group_by_name_name() because there is a "name" instead of "idx", but I find it confusing. - osmo_stat_item_get_group_by_name_idx_name() but I find that the last "name" should be closer to the "idx". Related: SYS#5542 Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 --- M include/osmocom/core/stat_item.h M src/stat_item.c 2 files changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/46/25346/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Sep 14 08:28:41 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:28:41 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25346 ) Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... Patch Set 5: Code-Review+2 re-add votes after trivial tweak -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 08:28:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:30:13 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:30:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: make TC_stats_conn_fail less fragile In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 ) Change subject: bsc: make TC_stats_conn_fail less fragile ...................................................................... bsc: make TC_stats_conn_fail less fragile Add a delay between sending the RSL Conn Fail IND and checking the stats values, so that osmo-bsc has a good chance of receiving the message and promoting the failure into the stats values first. Even though jenkins shows no failures, when testing locally, this test fails a lot for me without that bit of delay. Change-Id: Iaf0173239528337283b23f70840d36ad25f14950 --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 74cdaeb..077daba 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1804,6 +1804,8 @@ ts_RSL_CONN_FAIL_IND(g_chan_nr, RSL_ERR_RADIO_LINK_FAIL), IPAC_PROTO_RSL_TRX0)); + f_sleep(1.0); + /* Expect stats to be 1 */ expect := { {name := "TTCN3.bts.0.chan.rf_fail", mtype := "c", min := 1, max := 1}, -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf0173239528337283b23f70840d36ad25f14950 Gerrit-Change-Number: 25396 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 Sep 14 08:30:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:30:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 ) Change subject: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 3: Code-Review+2 combine votes -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb Gerrit-Change-Number: 25388 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 08:30:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:31:04 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:31:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: reset MSC link stati in f_init() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227 ) Change subject: bsc: reset MSC link stati in f_init() ...................................................................... bsc: reset MSC link stati in f_init() I want to add tests that verify the stat items reflecting the MSC connection status. To be able to run a test expecting fewer connected MSC after a test that launched more MSCs requires the links to be reset. Related: SYS#5542 Depends: I1975941b790d2b30d0904d41e456220cba26ecff (osmo-bsc) Change-Id: Ice3056dc46c94f9399f8379db7aeb7193782f2f2 --- M bsc/BSC_Tests.ttcn 1 file changed, 5 insertions(+), 0 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 Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 077daba..00d3d3f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1121,6 +1121,11 @@ var my_BooleanList allow_attach := { false, false, false }; f_init_statsd("VirtMSC", vc_STATSD, mp_test_ip, mp_bsc_statsd_port); + /* Make sure each MSC's internal state is "DISCONNECTED" at first */ + for (bssap_idx := 0; bssap_idx < NUM_MSC; bssap_idx := bssap_idx+1) { + f_vty_transceive(BSCVTY, "msc " & int2str(bssap_idx) & " bssmap reset", strict := false); + } + for (bssap_idx := 0; bssap_idx < nr_msc; bssap_idx := bssap_idx+1) { allow_attach[bssap_idx] := true; /* Call a function of our 'parent component' RAN_Adapter_CT to start the -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25227 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ice3056dc46c94f9399f8379db7aeb7193782f2f2 Gerrit-Change-Number: 25227 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Tue Sep 14 08:31:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:31:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 ) Change subject: bsc: add TC_stat_num_msc_connected* tests ...................................................................... bsc: add TC_stat_num_msc_connected* tests Verify MSC connection count stats. Related: SYS#5542 Depends: Idace66b37492fe96b2f2e133a69cac7960ca279c (libosmocore) Depends: If76bbf9b3adb64c68d5c31c6b526fa71a99996ae (osmo-bsc) Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf --- M bsc/BSC_Tests.ttcn 1 file changed, 53 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 00d3d3f..cb28a20 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2772,6 +2772,56 @@ f_shutdown_helper(); } +/* Verify correct stats on the number of configured and connected MSCs */ +private function f_tc_stat_num_msc_connected_msc_connhdlr(integer expect_num_msc_connected) runs on MSC_ConnHdlr { + g_pars := f_gen_test_hdlr_pars(); + var StatsDExpects expect := { + { name := "TTCN3.bsc.0.num_msc.connected", mtype := "g", min := expect_num_msc_connected, max := expect_num_msc_connected }, + { name := "TTCN3.bsc.0.num_msc.total", mtype := "g", min := NUM_MSC, max := NUM_MSC } + }; + f_statsd_expect(expect); +} + +private function f_tc_stat_num_msc_connected_test_ct(void_fn tc_fn, integer nr_msc) runs on test_CT +{ + var MSC_ConnHdlr vc_conn; + + f_init(nr_bts := 1, handler_mode := true, nr_msc := nr_msc); + f_sleep(1.0); + vc_conn := f_start_handler(tc_fn); + vc_conn.done; + + /* Also verify stat exposed on CTRL interface */ + f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_msc:connected", int2str(nr_msc)); + f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_msc:total", int2str(NUM_MSC)); + + f_shutdown_helper(); +} + +/* Verify that when 1 MSC is active, that num_msc:connected reports 1. */ +private function f_tc_stat_num_msc_connected_1(charstring id) runs on MSC_ConnHdlr { + f_tc_stat_num_msc_connected_msc_connhdlr(1); +} +testcase TC_stat_num_msc_connected_1() runs on test_CT { + f_tc_stat_num_msc_connected_test_ct(refers(f_tc_stat_num_msc_connected_1), 1); +} + +/* Verify that when 2 MSCs are active, that num_msc:connected reports 2. */ +private function f_tc_stat_num_msc_connected_2(charstring id) runs on MSC_ConnHdlr { + f_tc_stat_num_msc_connected_msc_connhdlr(2); +} +testcase TC_stat_num_msc_connected_2() runs on test_CT { + f_tc_stat_num_msc_connected_test_ct(refers(f_tc_stat_num_msc_connected_2), 2); +} + +/* Verify that when 3 MSCs are active, that num_msc:connected reports 3. */ +private function f_tc_stat_num_msc_connected_3(charstring id) runs on MSC_ConnHdlr { + f_tc_stat_num_msc_connected_msc_connhdlr(3); +} +testcase TC_stat_num_msc_connected_3() runs on test_CT { + f_tc_stat_num_msc_connected_test_ct(refers(f_tc_stat_num_msc_connected_3), 3); +} + testcase TC_ctrl() runs on test_CT { var charstring ctrl_resp; @@ -9962,6 +10012,9 @@ /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); execute( TC_ctrl_msc0_connection_status() ); + execute( TC_stat_num_msc_connected_1() ); + execute( TC_stat_num_msc_connected_2() ); + execute( TC_stat_num_msc_connected_3() ); execute( TC_ctrl() ); if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { execute( TC_ctrl_location() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25228 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I178dcf4516606aa561d47b06061b8a416d3c40cf Gerrit-Change-Number: 25228 Gerrit-PatchSet: 9 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:31:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:31:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_bts_connected_* tests In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 ) Change subject: bsc: add TC_stat_num_bts_connected_* tests ...................................................................... bsc: add TC_stat_num_bts_connected_* tests Related: SYS#5542 Depends: I2057a798e681a169cc03243a09b3d6449734c010 (osmo-bsc) Depends: Idace66b37492fe96b2f2e133a69cac7960ca279c (libosmocore) Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 --- M bsc/BSC_Tests.ttcn 1 file changed, 58 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index cb28a20..cbe6bad 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -76,6 +76,7 @@ import from TCCConversion_Functions all; const integer NUM_BTS := 3; +const integer NUM_BTS_CFG := 4; /* we have 4 BTS in the osmo-bsc.cfg (for inter-BSC HO tests) but use only 3 */ const integer NUM_MSC := 3; const float T3101_MAX := 12.0; @@ -2822,6 +2823,60 @@ f_tc_stat_num_msc_connected_test_ct(refers(f_tc_stat_num_msc_connected_3), 3); } +/* Verify correct stats on the number of configured and connected MSCs */ +private function f_tc_stat_num_bts_connected_msc_connhdlr(integer expect_num_bts_connected) runs on MSC_ConnHdlr { + g_pars := f_gen_test_hdlr_pars(); + var StatsDExpects expect := { + { name := "TTCN3.bsc.0.num_bts.oml_connected", mtype := "g", min := expect_num_bts_connected, max := NUM_BTS_CFG }, + { name := "TTCN3.bsc.0.num_bts.all_trx_rsl_connected", mtype := "g", min := expect_num_bts_connected, max := expect_num_bts_connected }, + { name := "TTCN3.bsc.0.num_bts.total", mtype := "g", min := NUM_BTS_CFG, max := NUM_BTS_CFG }, + { name := "TTCN3.bsc.0.num_trx.rsl_connected", mtype := "g", min := expect_num_bts_connected, max := expect_num_bts_connected }, + { name := "TTCN3.bsc.0.num_trx.total", mtype := "g", min := NUM_BTS_CFG, max := NUM_BTS_CFG } + }; + f_statsd_expect(expect); +} + +private function f_tc_stat_num_bts_connected_test_ct(void_fn tc_fn, integer nr_bts) runs on test_CT { + var MSC_ConnHdlr vc_conn; + + f_init(nr_bts := nr_bts, handler_mode := true, nr_msc := 1); + f_sleep(1.0); + vc_conn := f_start_handler(tc_fn); + vc_conn.done; + + /* Also verify stat exposed on CTRL interface */ + f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_bts:all_trx_rsl_connected", int2str(nr_bts)); + f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_bts:total", int2str(NUM_BTS_CFG)); + f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_trx:rsl_connected", int2str(nr_bts)); + f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_trx:total", int2str(NUM_BTS_CFG)); + + f_shutdown_helper(); +} + +/* Verify that when 1 BTS is connected, that num_{bts,trx}:*_connected reports 1. */ +private function f_tc_stat_num_bts_connected_1(charstring id) runs on MSC_ConnHdlr { + f_tc_stat_num_bts_connected_msc_connhdlr(1); +} +testcase TC_stat_num_bts_connected_1() runs on test_CT { + f_tc_stat_num_bts_connected_test_ct(refers(f_tc_stat_num_bts_connected_1), 1); +} + +/* Verify that when 2 BTS is connected, that num_{bts,trx}:*_connected reports 2. */ +private function f_tc_stat_num_bts_connected_2(charstring id) runs on MSC_ConnHdlr { + f_tc_stat_num_bts_connected_msc_connhdlr(2); +} +testcase TC_stat_num_bts_connected_2() runs on test_CT { + f_tc_stat_num_bts_connected_test_ct(refers(f_tc_stat_num_bts_connected_2), 2); +} + +/* Verify that when 3 BTS is connected, that num_{bts,trx}:*_connected reports 3. */ +private function f_tc_stat_num_bts_connected_3(charstring id) runs on MSC_ConnHdlr { + f_tc_stat_num_bts_connected_msc_connhdlr(3); +} +testcase TC_stat_num_bts_connected_3() runs on test_CT { + f_tc_stat_num_bts_connected_test_ct(refers(f_tc_stat_num_bts_connected_3), 3); +} + testcase TC_ctrl() runs on test_CT { var charstring ctrl_resp; @@ -10015,6 +10070,9 @@ execute( TC_stat_num_msc_connected_1() ); execute( TC_stat_num_msc_connected_2() ); execute( TC_stat_num_msc_connected_3() ); + execute( TC_stat_num_bts_connected_1() ); + execute( TC_stat_num_bts_connected_2() ); + execute( TC_stat_num_bts_connected_3() ); execute( TC_ctrl() ); if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_SCCPlite_SERVER) { execute( TC_ctrl_location() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25272 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic1b35b7406547f92818afe399a2383d154576409 Gerrit-Change-Number: 25272 Gerrit-PatchSet: 8 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 Sep 14 08:31:06 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:31:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 ) Change subject: bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... bsc: verify new CTRL 'rf_states' and 'bts.N.rf_states' Related: SYS#5542 Depends: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e (osmo-bsc) Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb --- M bsc/BSC_Tests.ttcn 1 file changed, 25 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved osmith: 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 cbe6bad..965a448 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2850,6 +2850,31 @@ f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_trx:rsl_connected", int2str(nr_bts)); f_ctrl_get_exp(IPA_CTRL, "stat_item.last.bsc.0.num_trx:total", int2str(NUM_BTS_CFG)); + /* Verify rf_states exposed on CTRL interface */ + var charstring expect_net_rf_states := ""; + for (var integer i := 0; i < NUM_BTS_CFG; i := i + 1) { + var charstring expect_bts_rf_states := int2str(i) & ",0,"; + if (i < NUM_BTS) { + /* In these tests, OML for the first NUM_BTS are always connected via osmo-bts-omldummy */ + expect_bts_rf_states := expect_bts_rf_states & "operational,unlocked,"; + } else { + /* For remaining i < NUM_BTS_CFG, OML is not connected, i.e. inoperational */ + expect_bts_rf_states := expect_bts_rf_states & "inoperational,locked,"; + } + /* The RF policy is still global in osmo-bsc, i.e. always "on" */ + expect_bts_rf_states := expect_bts_rf_states & "on,"; + if (i < nr_bts) { + /* For BTS where RSL is connected, the RSL state will be "up" */ + expect_bts_rf_states := expect_bts_rf_states & "rsl-up;"; + } else { + expect_bts_rf_states := expect_bts_rf_states & "rsl-down;"; + } + + f_ctrl_get_exp(IPA_CTRL, "bts." & int2str(i) & ".rf_states", expect_bts_rf_states); + expect_net_rf_states := expect_net_rf_states & expect_bts_rf_states; + } + f_ctrl_get_exp(IPA_CTRL, "rf_states", expect_net_rf_states); + f_shutdown_helper(); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25388 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb Gerrit-Change-Number: 25388 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:31:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:31:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_ctrl_trx_rf_locked In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 ) Change subject: bsc: add TC_ctrl_trx_rf_locked ...................................................................... bsc: add TC_ctrl_trx_rf_locked Related: OS#5542 Depends: Ie46fd730797b64fb185d705c3507e36f5f23ef4b (osmo-bsc) Change-Id: I2bb5096732f75a7341c7e83951e63c5a2038b469 --- M bsc/BSC_Tests.ttcn 1 file changed, 69 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 965a448..7cffac9 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -10088,6 +10088,73 @@ f_shutdown_helper(); } +/* GET and SET the bts.N.trx.M.rf_locked CTRL variable */ +testcase TC_ctrl_trx_rf_locked() runs on test_CT { + var MSC_ConnHdlr vc_conn; + + f_init(nr_bts := 2, handler_mode := true, nr_msc := 1); + f_sleep(1.0); + + /* BTS 0, 1, 2 are OML unlocked, only BTS 0, 1 are actually connected to RSL. */ + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: lock BTS 1 TRX 0"); + f_ctrl_set(IPA_CTRL, "bts.1.trx.0.rf_locked", "1"); + /* give it a moment to settle the FSM status */ + f_sleep(1.0); + + /* Now BTS 1 TRX 0 should reflect "locked". Note the RF policy stays "on", because this is still handled + * globally in osmo-bsc. Probably after sending "rf_locked 1" for a TRX, that TRX should reflect an RF policy + * of "off"? But that's for a future patch if at all. */ + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,locked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: lock the already locked TRX, nothing should change"); + f_ctrl_set(IPA_CTRL, "bts.1.trx.0.rf_locked", "1"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,locked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: unlock BTS 1 TRX 0"); + f_ctrl_set(IPA_CTRL, "bts.1.trx.0.rf_locked", "0"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: unlock an already unlocked TRX, nothing should change"); + f_ctrl_set(IPA_CTRL, "bts.0.trx.0.rf_locked", "0"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_logp(BSCVTY, "TC_ctrl_trx_rf_locked: unlock an inoperational TRX"); + f_ctrl_set(IPA_CTRL, "bts.3.trx.0.rf_locked", "0"); + f_sleep(1.0); + f_ctrl_get_exp(IPA_CTRL, "rf_states", + "0,0,operational,unlocked,on,rsl-up;" & + "1,0,operational,unlocked,on,rsl-up;" & + "2,0,operational,unlocked,on,rsl-down;" & + "3,0,inoperational,locked,on,rsl-down;"); + + f_shutdown_helper(); +} + control { /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); @@ -10389,6 +10456,8 @@ execute( TC_imm_ass_pre_ts_ack() ); execute( TC_imm_ass_pre_chan_ack_dyn_ts() ); execute( TC_imm_ass_pre_ts_ack_dyn_ts() ); + + execute( TC_ctrl_trx_rf_locked() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25393 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2bb5096732f75a7341c7e83951e63c5a2038b469 Gerrit-Change-Number: 25393 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 Sep 14 08:32:12 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:32:12 +0000 Subject: Change in libosmocore[master]: utils: add osmo_str_to_int() and osmo_str_to_int64() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25345 ) Change subject: utils: add osmo_str_to_int() and osmo_str_to_int64() ...................................................................... utils: add osmo_str_to_int() and osmo_str_to_int64() Properly converting a string to an integer while validating against all possible errors is not trivial. It is a recurring theme in code review, and there are places in osmo code that do it wrong. End this by providing a simple API, if for nothing else then as an example of how to use strol() / strtoul() / strtoll() / strtoull() in an airtight way. A subsequent patch, adding stat items to the CTRL interface, uses this to properly validate indexes in CTRL variables and convert them to int. Related: SYS#5542 Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 413 insertions(+), 3 deletions(-) Approvals: dexter: Looks good to me, but someone else must approve neels: Looks good to me, approved; Verified laforge: Looks good to me, but someone else must approve diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 1c60390..85a8cb3 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -283,6 +283,9 @@ int osmo_int_to_float_str_buf(char *buf, size_t buflen, int64_t val, unsigned int precision); char *osmo_int_to_float_str_c(void *ctx, int64_t val, unsigned int precision); +int osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val); +int osmo_str_to_int(int *result, const char *str, int base, int min_val, int max_val); + /*! Translate a buffer function to a talloc context function. * This is the full function body of a char *foo_name_c(void *ctx, val...) function, implemented by an * int foo_name_buf(buf, buflen, val...) function: diff --git a/src/utils.c b/src/utils.c index 721c34a..2b21dcc 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1405,4 +1405,98 @@ OSMO_NAME_C_IMPL(ctx, 16, "ERROR", osmo_int_to_float_str_buf, val, precision) } +/*! Convert a string of a number to int64_t, including all common strtoll() validity checks. + * It's not so trivial to call strtoll() and properly verify that the input string was indeed a valid number string. + * \param[out] result Buffer for the resulting integer number, or NULL if the caller is only interested in the + * validation result (returned rc). + * \param[in] str The string to convert. + * \param[in] base The integer base, i.e. 10 for decimal numbers or 16 for hexadecimal, as in strtoll(). + * \param[in] min_val The smallest valid number expected in the string. + * \param[in] max_val The largest valid number expected in the string. + * \return 0 on success, -EOVERFLOW if the number in the string exceeds int64_t, -ENOTSUPP if the base is not supported, + * -ERANGE if the converted number exceeds the range [min_val..max_val] but is still within int64_t range, -E2BIG if + * surplus characters follow after the number, -EINVAL if the string does not contain a number. In case of -ERANGE and + * -E2BIG, the converted number is still accurately returned in result. In case of -EOVERFLOW, the returned value is + * clamped to INT64_MIN..INT64_MAX. + */ +int osmo_str_to_int64(int64_t *result, const char *str, int base, int64_t min_val, int64_t max_val) +{ + long long int val; + char *endptr; + if (result) + *result = 0; + if (!str || !*str) + return -EINVAL; + errno = 0; + val = strtoll(str, &endptr, base); + /* In case the number string exceeds long long int range, strtoll() clamps the returned value to LLONG_MIN or + * LLONG_MAX. Make sure of the same here with respect to int64_t. */ + if (val < INT64_MIN) { + if (result) + *result = INT64_MIN; + return -ERANGE; + } + if (val > INT64_MAX) { + if (result) + *result = INT64_MAX; + return -ERANGE; + } + if (result) + *result = (int64_t)val; + switch (errno) { + case 0: + break; + case ERANGE: + return -EOVERFLOW; + default: + case EINVAL: + return -ENOTSUP; + } + if (!endptr || *endptr) { + /* No chars were converted */ + if (endptr == str) + return -EINVAL; + /* Or there are surplus chars after the converted number */ + return -E2BIG; + } + if (val < min_val || val > max_val) + return -ERANGE; + return 0; +} + +/*! Convert a string of a number to int, including all common strtoll() validity checks. + * Same as osmo_str_to_int64() but using the plain int data type. + * \param[out] result Buffer for the resulting integer number, or NULL if the caller is only interested in the + * validation result (returned rc). + * \param[in] str The string to convert. + * \param[in] base The integer base, i.e. 10 for decimal numbers or 16 for hexadecimal, as in strtoll(). + * \param[in] min_val The smallest valid number expected in the string. + * \param[in] max_val The largest valid number expected in the string. + * \return 0 on success, -EOVERFLOW if the number in the string exceeds int range, -ENOTSUPP if the base is not supported, + * -ERANGE if the converted number exceeds the range [min_val..max_val] but is still within int range, -E2BIG if + * surplus characters follow after the number, -EINVAL if the string does not contain a number. In case of -ERANGE and + * -E2BIG, the converted number is still accurately returned in result. In case of -EOVERFLOW, the returned value is + * clamped to INT_MIN..INT_MAX. + */ +int osmo_str_to_int(int *result, const char *str, int base, int min_val, int max_val) +{ + int64_t val; + int rc = osmo_str_to_int64(&val, str, base, min_val, max_val); + /* In case the number string exceeds long long int range, strtoll() clamps the returned value to LLONG_MIN or + * LLONG_MAX. Make sure of the same here with respect to int. */ + if (val < INT_MIN) { + if (result) + *result = INT_MIN; + return -EOVERFLOW; + } + if (val > INT_MAX) { + if (result) + *result = INT_MAX; + return -EOVERFLOW; + } + if (result) + *result = (int)val; + return rc; +} + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index 108bf5a..7e0e3d3 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -1694,11 +1694,18 @@ }; const char *errno_str(int rc) { - if (rc == -EINVAL) + switch (rc) { + case -EINVAL: return "=-EINVAL"; - if (rc == -ERANGE) + case -ERANGE: return "=-ERANGE"; - return ""; + case -E2BIG: + return "=-E2BIG"; + case -EOVERFLOW: + return "=-EOVERFLOW"; + default: + return ""; + } } void test_float_str_to_int() { @@ -1884,6 +1891,190 @@ } } +struct str_to_int_test { + const char *str; + int base; + int min_val; + int max_val; + int expect_rc; + int expect_val; +}; +/* Avoid using INT_MAX and INT_MIN because that would produce different test output on different architectures */ +struct str_to_int_test str_to_int_tests[] = { + { NULL, 10, -1000, 1000, -EINVAL, 0 }, + { "", 10, -1000, 1000, -EINVAL, 0 }, + { " ", 10, -1000, 1000, -EINVAL, 0 }, + { "-", 10, -1000, 1000, -EINVAL, 0 }, + { "--", 10, -1000, 1000, -EINVAL, 0 }, + { "+", 10, -1000, 1000, -EINVAL, 0 }, + { "++", 10, -1000, 1000, -EINVAL, 0 }, + + { "0", 10, -1000, 1000, 0, 0 }, + { "1", 10, -1000, 1000, 0, 1 }, + { "+1", 10, -1000, 1000, 0, 1 }, + { "-1", 10, -1000, 1000, 0, -1 }, + { "1000", 10, -1000, 1000, 0, 1000 }, + { "+1000", 10, -1000, 1000, 0, 1000 }, + { "-1000", 10, -1000, 1000, 0, -1000 }, + { "1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "+1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "-1001", 10, -1000, 1000, -ERANGE, -1001 }, + + { "0", 16, -1000, 1000, 0, 0 }, + { "1", 16, -1000, 1000, 0, 1 }, + { "0x1", 16, -1000, 1000, 0, 1 }, + { "+1", 16, -1000, 1000, 0, 1 }, + { "-1", 16, -1000, 1000, 0, -1 }, + { "+0x1", 16, -1000, 1000, 0, 1 }, + { "-0x1", 16, -1000, 1000, 0, -1 }, + { "3e8", 16, -1000, 1000, 0, 1000 }, + { "3E8", 16, -1000, 1000, 0, 1000 }, + { "0x3e8", 16, -1000, 1000, 0, 1000 }, + { "0x3E8", 16, -1000, 1000, 0, 1000 }, + { "+3e8", 16, -1000, 1000, 0, 1000 }, + { "+3E8", 16, -1000, 1000, 0, 1000 }, + { "+0x3e8", 16, -1000, 1000, 0, 1000 }, + { "+0x3E8", 16, -1000, 1000, 0, 1000 }, + { "-3e8", 16, -1000, 1000, 0, -1000 }, + { "-3E8", 16, -1000, 1000, 0, -1000 }, + { "-0x3e8", 16, -1000, 1000, 0, -1000 }, + { "-0x3E8", 16, -1000, 1000, 0, -1000 }, + { "3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "-3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-3E9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3E9", 16, -1000, 1000, -ERANGE, -1001 }, + + { "garble", 10, -1000, 1000, -EINVAL, 0 }, + { "-garble", 10, -1000, 1000, -EINVAL, 0 }, + { "0x123", 10, -1000, 1000, -E2BIG, 0 }, + { "123potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 ", 10, -1000, 1000, -E2BIG, 123 }, + { "123.4", 10, -1000, 1000, -E2BIG, 123 }, +}; +void test_str_to_int() +{ + const struct str_to_int_test *t; + printf("--- %s\n", __func__); + for (t = str_to_int_tests; (t - str_to_int_tests) < ARRAY_SIZE(str_to_int_tests); t++) { + int rc; + int val; + rc = osmo_str_to_int(&val, t->str, t->base, t->min_val, t->max_val); + printf("osmo_str_to_int(%s, %d, %d, %d) -> rc=%d%s val=%d\n", + osmo_quote_str(t->str, -1), t->base, t->min_val, t->max_val, rc, errno_str(rc), val); + + if (rc != t->expect_rc) + printf(" ERROR: expected rc=%d%s\n", t->expect_rc, errno_str(t->expect_rc)); + if (val != t->expect_val) + printf(" ERROR: expected val=%d\n", t->expect_val); + } +} + +struct str_to_int64_test { + const char *str; + int base; + int64_t min_val; + int64_t max_val; + int expect_rc; + int64_t expect_val; +}; +struct str_to_int64_test str_to_int64_tests[] = { + { NULL, 10, -1000, 1000, -EINVAL, 0 }, + { "", 10, -1000, 1000, -EINVAL, 0 }, + { " ", 10, -1000, 1000, -EINVAL, 0 }, + { "-", 10, -1000, 1000, -EINVAL, 0 }, + { "--", 10, -1000, 1000, -EINVAL, 0 }, + { "+", 10, -1000, 1000, -EINVAL, 0 }, + { "++", 10, -1000, 1000, -EINVAL, 0 }, + + { "0", 10, -1000, 1000, 0, 0 }, + { "1", 10, -1000, 1000, 0, 1 }, + { "+1", 10, -1000, 1000, 0, 1 }, + { "-1", 10, -1000, 1000, 0, -1 }, + { "1000", 10, -1000, 1000, 0, 1000 }, + { "+1000", 10, -1000, 1000, 0, 1000 }, + { "-1000", 10, -1000, 1000, 0, -1000 }, + { "1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "+1001", 10, -1000, 1000, -ERANGE, 1001 }, + { "-1001", 10, -1000, 1000, -ERANGE, -1001 }, + + { "0", 16, -1000, 1000, 0, 0 }, + { "1", 16, -1000, 1000, 0, 1 }, + { "0x1", 16, -1000, 1000, 0, 1 }, + { "+1", 16, -1000, 1000, 0, 1 }, + { "-1", 16, -1000, 1000, 0, -1 }, + { "+0x1", 16, -1000, 1000, 0, 1 }, + { "-0x1", 16, -1000, 1000, 0, -1 }, + { "3e8", 16, -1000, 1000, 0, 1000 }, + { "3E8", 16, -1000, 1000, 0, 1000 }, + { "0x3e8", 16, -1000, 1000, 0, 1000 }, + { "0x3E8", 16, -1000, 1000, 0, 1000 }, + { "+3e8", 16, -1000, 1000, 0, 1000 }, + { "+3E8", 16, -1000, 1000, 0, 1000 }, + { "+0x3e8", 16, -1000, 1000, 0, 1000 }, + { "+0x3E8", 16, -1000, 1000, 0, 1000 }, + { "-3e8", 16, -1000, 1000, 0, -1000 }, + { "-3E8", 16, -1000, 1000, 0, -1000 }, + { "-0x3e8", 16, -1000, 1000, 0, -1000 }, + { "-0x3E8", 16, -1000, 1000, 0, -1000 }, + { "3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3e9", 16, -1000, 1000, -ERANGE, 1001 }, + { "+0x3E9", 16, -1000, 1000, -ERANGE, 1001 }, + { "-3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-3E9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3e9", 16, -1000, 1000, -ERANGE, -1001 }, + { "-0x3E9", 16, -1000, 1000, -ERANGE, -1001 }, + + { "garble", 10, -1000, 1000, -EINVAL, 0 }, + { "-garble", 10, -1000, 1000, -EINVAL, 0 }, + { "0x123", 10, -1000, 1000, -E2BIG, 0 }, + { "123potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 potatoes", 10, -1000, 1000, -E2BIG, 123 }, + { "123 ", 10, -1000, 1000, -E2BIG, 123 }, + { "123.4", 10, -1000, 1000, -E2BIG, 123 }, + + { "-9223372036854775808", 10, INT64_MIN, INT64_MAX, 0, INT64_MIN }, + { "9223372036854775807", 10, INT64_MIN, INT64_MAX, 0, INT64_MAX }, + + { "-9223372036854775809", 10, INT64_MIN, INT64_MAX, -EOVERFLOW, INT64_MIN }, + { "9223372036854775808", 10, INT64_MIN, INT64_MAX, -EOVERFLOW, INT64_MAX }, + + { "-9223372036854775808", 10, -1000, 1000, -ERANGE, INT64_MIN }, + { "9223372036854775807", 10, -1000, 1000, -ERANGE, INT64_MAX }, + { "-9223372036854775809", 10, -1000, 1000, -EOVERFLOW, INT64_MIN }, + { "9223372036854775808", 10, -1000, 1000, -EOVERFLOW, INT64_MAX }, +}; +void test_str_to_int64() +{ + const struct str_to_int64_test *t; + printf("--- %s\n", __func__); + for (t = str_to_int64_tests; (t - str_to_int64_tests) < ARRAY_SIZE(str_to_int64_tests); t++) { + int rc; + int64_t val; + rc = osmo_str_to_int64(&val, t->str, t->base, t->min_val, t->max_val); + printf("osmo_str_to_int64(%s, %d, %"PRId64", %"PRId64") -> rc=%d%s val=%"PRId64"\n", + osmo_quote_str(t->str, -1), t->base, t->min_val, t->max_val, rc, errno_str(rc), val); + + if (rc != t->expect_rc) + printf(" ERROR: expected rc=%d%s\n", t->expect_rc, errno_str(t->expect_rc)); + if (val != t->expect_val) + printf(" ERROR: expected val=%"PRId64"\n", t->expect_val); + } +} + int main(int argc, char **argv) { static const struct log_info log_info = {}; @@ -1911,5 +2102,7 @@ osmo_strnchr_test(); test_float_str_to_int(); test_int_to_float_str(); + test_str_to_int(); + test_str_to_int64(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 0c71b8f..1409d81 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -869,3 +869,123 @@ osmo_int_to_float_str_buf(9223372036854775807, 23) -> rc=25 str="0.00009223372036854775807" osmo_int_to_float_str_buf(-9223372036854775807, 23) -> rc=26 str="-0.00009223372036854775807" osmo_int_to_float_str_buf(-9223372036854775808, 23) -> rc=4 str="-ERR" +--- test_str_to_int +osmo_str_to_int(NULL, 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int(" ", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("-", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("--", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("+", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("++", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("0", 10, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int("1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("+1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("-1", 10, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int("1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("-1000", 10, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("-1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("0", 16, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int("1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("+1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("-1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int("+0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int("-0x1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int("3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("+0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int("-3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("-3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("-0x3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("-0x3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int("3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("+0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int("-3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("-3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("-0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("-0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int("garble", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("-garble", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int("0x123", 10, -1000, 1000) -> rc=-7=-E2BIG val=0 +osmo_str_to_int("123potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int("123 potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int("123 ", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int("123.4", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +--- test_str_to_int64 +osmo_str_to_int64(NULL, 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64(" ", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("-", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("--", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("+", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("++", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("0", 10, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int64("1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("+1", 10, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("-1", 10, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int64("1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+1000", 10, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("-1000", 10, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("-1001", 10, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("0", 16, -1000, 1000) -> rc=0 val=0 +osmo_str_to_int64("1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("+1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("-1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int64("+0x1", 16, -1000, 1000) -> rc=0 val=1 +osmo_str_to_int64("-0x1", 16, -1000, 1000) -> rc=0 val=-1 +osmo_str_to_int64("3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+0x3e8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("+0x3E8", 16, -1000, 1000) -> rc=0 val=1000 +osmo_str_to_int64("-3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("-3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("-0x3e8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("-0x3E8", 16, -1000, 1000) -> rc=0 val=-1000 +osmo_str_to_int64("3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("+0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=1001 +osmo_str_to_int64("-3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("-3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("-0x3e9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("-0x3E9", 16, -1000, 1000) -> rc=-34=-ERANGE val=-1001 +osmo_str_to_int64("garble", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("-garble", 10, -1000, 1000) -> rc=-22=-EINVAL val=0 +osmo_str_to_int64("0x123", 10, -1000, 1000) -> rc=-7=-E2BIG val=0 +osmo_str_to_int64("123potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("123 potatoes", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("123 ", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("123.4", 10, -1000, 1000) -> rc=-7=-E2BIG val=123 +osmo_str_to_int64("-9223372036854775808", 10, -9223372036854775808, 9223372036854775807) -> rc=0 val=-9223372036854775808 +osmo_str_to_int64("9223372036854775807", 10, -9223372036854775808, 9223372036854775807) -> rc=0 val=9223372036854775807 +osmo_str_to_int64("-9223372036854775809", 10, -9223372036854775808, 9223372036854775807) -> rc=-75=-EOVERFLOW val=-9223372036854775808 +osmo_str_to_int64("9223372036854775808", 10, -9223372036854775808, 9223372036854775807) -> rc=-75=-EOVERFLOW val=9223372036854775807 +osmo_str_to_int64("-9223372036854775808", 10, -1000, 1000) -> rc=-34=-ERANGE val=-9223372036854775808 +osmo_str_to_int64("9223372036854775807", 10, -1000, 1000) -> rc=-34=-ERANGE val=9223372036854775807 +osmo_str_to_int64("-9223372036854775809", 10, -1000, 1000) -> rc=-75=-EOVERFLOW val=-9223372036854775808 +osmo_str_to_int64("9223372036854775808", 10, -1000, 1000) -> rc=-75=-EOVERFLOW val=9223372036854775807 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25345 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 Gerrit-Change-Number: 25345 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:32:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:32:14 +0000 Subject: Change in libosmocore[master]: add osmo_stat_item_get_group_by_name_idxname() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25346 ) Change subject: add osmo_stat_item_get_group_by_name_idxname() ...................................................................... add osmo_stat_item_get_group_by_name_idxname() Add "missing" API for looking up a stat_item_group by its index-name. A subsequent patch, which adds stat_items to the CTRL interface, will use this to look up stat item groups by object name. In stat item groups, there are group names, having a number of indexes denoting different objects. An object can have, besides the index, also a name that is equivalent to the index. Apologies for the weird function name, it's still the best one I could come up with: "group_by_name" refers to the group name, and "idxname" refers to the name that the object index is associated with. We already have osmo_stat_item_get_group_by_name_idx(). Other contestants for name of this new function were: - osmo_stat_item_get_group_by_name_name() because there is a "name" instead of "idx", but I find it confusing. - osmo_stat_item_get_group_by_name_idx_name() but I find that the last "name" should be closer to the "idx". Related: SYS#5542 Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 --- M include/osmocom/core/stat_item.h M src/stat_item.c 2 files changed, 21 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index 332bbe9..402a7ae 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -97,6 +97,7 @@ struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idx( const char *name, const unsigned int idx); +struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idxname(const char *group_name, const char *idx_name); const struct osmo_stat_item *osmo_stat_item_get_by_name( const struct osmo_stat_item_group *statg, const char *name); diff --git a/src/stat_item.c b/src/stat_item.c index 55aa951..87cbfea 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -333,6 +333,26 @@ return NULL; } +/*! Search for item group based on group name and index's name. + * \param[in] name Name of stats_item_group we want to find. + * \param[in] idx_name Index of the group we want to find, by the index's name (osmo_stat_item_group->name). + * \returns pointer to group, if found; NULL otherwise. */ +struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idxname(const char *group_name, const char *idx_name) +{ + struct osmo_stat_item_group *statg; + + llist_for_each_entry(statg, &osmo_stat_item_groups, list) { + if (!statg->desc || !statg->name) + continue; + if (strcmp(statg->desc->group_name_prefix, group_name)) + continue; + if (strcmp(statg->name, idx_name)) + continue; + return statg; + } + return NULL; +} + /*! Search for item based on group + item name * \param[in] statg group in which to search for the item * \param[in] name name of item to search within \a statg -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25346 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ia1a77a1e4657ba624dd4f4bf7ad274e7751d0141 Gerrit-Change-Number: 25346 Gerrit-PatchSet: 5 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 Tue Sep 14 08:32:15 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:32:15 +0000 Subject: Change in libosmocore[master]: CTRL: expose stat_item groups on CTRL In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25224 ) Change subject: CTRL: expose stat_item groups on CTRL ...................................................................... CTRL: expose stat_item groups on CTRL Expose all stat items as RO variables of the form stat_item.last.group_name.N.item_name stat_item.last.group_name.by_name.idx_name.item_name For (possibly contrived) example: stat_item.last.trunk.0.endpoints:used stat_item.last.trunk.by_name.virtual-0.endpoints:used Include the 'last' token to ease future extension, like 'max'. Put this token in the beginning, similarly to rate_ctr variables, which begin with 'per_sec', 'per_hour', ... Related: SYS#5542 Related: I178dcf4516606aa561d47b06061b8a416d3c40cf (osmo-ttcn3-hacks) Related: Ic1b35b7406547f92818afe399a2383d154576409 (osmo-ttcn3-hacks) Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c --- M src/ctrl/control_if.c 1 file changed, 99 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified 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 diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index 0a893ba..5fda28f 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -53,6 +54,7 @@ #include #include +#include #include #include #include @@ -729,6 +731,100 @@ return 0; } +/* Expose all stat_item groups on CTRL, as read-only variables of the form: + * stat_item.(last|...).group_name.N.item_name + * stat_item.(last|...).group_name.by_name.group_idx_name.item_name + */ +CTRL_CMD_DEFINE_RO(stat_item, "stat_item *"); +static int get_stat_item(struct ctrl_cmd *cmd, void *data) +{ + char *dup; + char *saveptr; + char *value_type; + char *group_name; + char *group_idx_str; + char *item_name; + char *tmp; + int32_t val; + struct osmo_stat_item_group *statg; + const struct osmo_stat_item *stat_item; + + /* cmd will be freed in control_if.c after handling here, so no need to free the dup string. */ + dup = talloc_strdup(cmd, cmd->variable); + if (!dup) { + cmd->reply = "OOM"; + return CTRL_CMD_ERROR; + } + + /* Split off the first "stat_item." part */ + tmp = strtok_r(dup, ".", &saveptr); + if (!tmp || strcmp(tmp, "stat_item") != 0) + goto format_error; + + /* Split off the "last." part (validated further below) */ + value_type = strtok_r(NULL, ".", &saveptr); + if (!value_type) + goto format_error; + + /* Split off the "group_name." part */ + group_name = strtok_r(NULL, ".", &saveptr); + if (!group_name) + goto format_error; + + /* Split off the "N." part */ + group_idx_str = strtok_r(NULL, ".", &saveptr); + if (!group_idx_str) + goto format_error; + if (strcmp(group_idx_str, "by_name") == 0) { + /* The index is not given by "N" but by "by_name.foo". Get the "foo" idx-name */ + group_idx_str = strtok_r(NULL, ".", &saveptr); + statg = osmo_stat_item_get_group_by_name_idxname(group_name, group_idx_str); + } else { + int idx; + if (osmo_str_to_int(&idx, group_idx_str, 10, 0, INT_MAX)) + goto format_error; + statg = osmo_stat_item_get_group_by_name_idx(group_name, idx); + } + if (!statg) { + cmd->reply = "Stat group with given name and index not found"; + return CTRL_CMD_ERROR; + } + + /* Split off the "item_name" part */ + item_name = strtok_r(NULL, ".", &saveptr); + if (!item_name) + goto format_error; + stat_item = osmo_stat_item_get_by_name(statg, item_name); + if (!stat_item) { + cmd->reply = "No such stat item found"; + return CTRL_CMD_ERROR; + } + + tmp = strtok_r(NULL, "", &saveptr); + if (tmp) { + cmd->reply = "Garbage after stat item name"; + return CTRL_CMD_ERROR; + } + + if (!strcmp(value_type, "last")) + val = osmo_stat_item_get_last(stat_item); + else + goto format_error; + + cmd->reply = talloc_asprintf(cmd, "%"PRIu32, val); + if (!cmd->reply) { + cmd->reply = "OOM"; + return CTRL_CMD_ERROR; + } + + return CTRL_CMD_REPLY; + +format_error: + cmd->reply = "Stat item must be of form stat_item.type.group_name.N.item_name," + " e.g. 'stat_item.last.bsc.0.msc_num:connected'"; + return CTRL_CMD_ERROR; +} + /* counter */ CTRL_CMD_DEFINE(counter, "counter *"); static int get_counter(struct ctrl_cmd *cmd, void *data) @@ -816,6 +912,9 @@ ret = ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_rate_ctr); if (ret) goto err_vec; + ret = ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_stat_item); + if (ret) + goto err_vec; ret = ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_counter); if (ret) goto err_vec; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25224 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Idace66b37492fe96b2f2e133a69cac7960ca279c Gerrit-Change-Number: 25224 Gerrit-PatchSet: 10 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:44:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:44:16 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 08:44:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 08:44:20 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:44:20 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) In-Reply-To: References: Message-ID: neels has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... Removed Code-Review+2 by neels -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 Gerrit-PatchSet: 2 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 Tue Sep 14 08:44:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:44:27 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 08:44: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 Sep 14 08:44:40 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:44:40 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 08:44: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 Sep 14 08:44:45 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:44:45 +0000 Subject: Change in osmo-bsc[master]: add CTRL 'rf_states' and 'bts.N.rf_states' In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25387 ) Change subject: add CTRL 'rf_states' and 'bts.N.rf_states' ...................................................................... add CTRL 'rf_states' and 'bts.N.rf_states' These commands return a listing of OML state, RF policy as well as RSL connection status for each TRX in the form: ,,,,,;,,... For example, the root node 'rf_states' may return: 0,0,operational,unlocked,on,rsl-up;1,0,operational,unlocked,on,rsl-down;2,0,inoperational,locked,on,rsl-down; A 'bts.N.rf_states' returns the same form of string, but lists only the TRX for the given BTS nr. Note, there is already a CTRL command 'bts.N.rf_state' (singular 'rf_state', not plural 'rf_states'), which only reflects the overall status of all TRX combined. This new command has per-TRX resolution. The rf-policy is so far always looked up in the global gsm_network flag, as does the old 'rf_state' command; see osmo_bsc_rf_get_policy_by_bts() which does not depend on the specific BTS at all. This may be worth revisiting in the future, so I am already including the rf-policy in the rf_state string for each TRX, even though it is globally identical. Related: SYS#5542 Related: I01e6f391a5e71b0606c42be9b57f8a1687d59bcb (osmo-ttcn3-hacks) Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e --- M include/osmocom/bsc/osmo_bsc_rf.h M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_rf_ctrl.c 3 files changed, 119 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/osmo_bsc_rf.h b/include/osmocom/bsc/osmo_bsc_rf.h index 56ac980..f88ccbf 100644 --- a/include/osmocom/bsc/osmo_bsc_rf.h +++ b/include/osmocom/bsc/osmo_bsc_rf.h @@ -60,7 +60,12 @@ enum osmo_bsc_rf_opstate osmo_bsc_rf_get_opstate_by_bts(struct gsm_bts *bts); enum osmo_bsc_rf_adminstate osmo_bsc_rf_get_adminstate_by_bts(struct gsm_bts *bts); enum osmo_bsc_rf_policy osmo_bsc_rf_get_policy_by_bts(struct gsm_bts *bts); +enum osmo_bsc_rf_opstate osmo_bsc_rf_get_opstate_by_trx(struct gsm_bts_trx *trx); +enum osmo_bsc_rf_adminstate osmo_bsc_rf_get_adminstate_by_trx(struct gsm_bts_trx *trx); struct osmo_bsc_rf *osmo_bsc_rf_create(const char *path, struct gsm_network *net); void osmo_bsc_rf_schedule_lock(struct osmo_bsc_rf *rf, char cmd); +char *bsc_rf_states_of_bts_c(void *ctx, struct gsm_bts *bts); +char *bsc_rf_states_c(void *ctx); + #endif diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index be83b1b..3b8125a 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -420,6 +420,42 @@ } CTRL_CMD_DEFINE_RO(bts_rf_state, "rf_state"); +/* Return a list of the states of each TRX for a given BTS: + * ,,,,;,,... + */ +static int get_bts_rf_states(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts *bts = cmd->node; + + if (!bts) { + cmd->reply = "bts not found."; + return CTRL_CMD_ERROR; + } + + cmd->reply = bsc_rf_states_of_bts_c(cmd, bts); + if (!cmd->reply) { + cmd->reply = "OOM."; + return CTRL_CMD_ERROR; + } + + return CTRL_CMD_REPLY; +} +CTRL_CMD_DEFINE_RO(bts_rf_states, "rf_states"); + +/* Return a list of the states of each TRX for all BTS: + * ,,,,;,,... + */ +static int get_net_rf_states(struct ctrl_cmd *cmd, void *data) +{ + cmd->reply = bsc_rf_states_c(cmd); + if (!cmd->reply) { + cmd->reply = "OOM."; + return CTRL_CMD_ERROR; + } + return CTRL_CMD_REPLY; +} +CTRL_CMD_DEFINE_RO(net_rf_states, "rf_states"); + static int get_net_rf_lock(struct ctrl_cmd *cmd, void *data) { struct gsm_network *net = cmd->node; @@ -609,6 +645,7 @@ rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_mcc_mnc_apply); rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_rf_lock); rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_bts_num); + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_net_rf_states); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_lac); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_ci); @@ -619,6 +656,7 @@ rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_oml_up); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_gprs_mode); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_rf_state); + rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_rf_states); rc |= ctrl_cmd_install(CTRL_NODE_BTS, &cmd_bts_c0_power_red); rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_max_power); diff --git a/src/osmo-bsc/bsc_rf_ctrl.c b/src/osmo-bsc/bsc_rf_ctrl.c index a845859..7040da4 100644 --- a/src/osmo-bsc/bsc_rf_ctrl.c +++ b/src/osmo-bsc/bsc_rf_ctrl.c @@ -124,6 +124,82 @@ } } +enum osmo_bsc_rf_opstate osmo_bsc_rf_get_opstate_by_trx(struct gsm_bts_trx *trx) +{ + if (trx->mo.nm_state.operational == NM_OPSTATE_ENABLED) + return OSMO_BSC_RF_OPSTATE_OPERATIONAL; + return OSMO_BSC_RF_OPSTATE_INOPERATIONAL; +} + +enum osmo_bsc_rf_adminstate osmo_bsc_rf_get_adminstate_by_trx(struct gsm_bts_trx *trx) +{ + if (trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + return OSMO_BSC_RF_ADMINSTATE_UNLOCKED; + return OSMO_BSC_RF_ADMINSTATE_LOCKED; +} + +/* Return a string listing the state of the given TRX. + * The string has the form: + * ,,,,,; + */ +static int bsc_rf_state_of_trx_buf(char *buf, size_t buflen, struct gsm_bts_trx *trx) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + OSMO_STRBUF_PRINTF(sb, "%u,%u,%s,%s,%s,%s;", + trx->bts->nr, trx->nr, + osmo_bsc_rf_get_opstate_name(osmo_bsc_rf_get_opstate_by_trx(trx)), + osmo_bsc_rf_get_adminstate_name(osmo_bsc_rf_get_adminstate_by_trx(trx)), + osmo_bsc_rf_get_policy_name(osmo_bsc_rf_get_policy_by_bts(trx->bts)), + trx->rsl_link_primary ? "rsl-up" : "rsl-down"); + return sb.chars_needed; +} + +static int bsc_rf_states_of_bts_buf(char *buf, size_t buflen, struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + llist_for_each_entry(trx, &bts->trx_list, list) { + OSMO_STRBUF_APPEND(sb, bsc_rf_state_of_trx_buf, trx); + } + return sb.chars_needed; +} + +/* Return a string listing the states of each TRX for the given BTS. + * The string has the form: + * ,,,,,;,,...;...; + * \param ctx Talloc context to allocate the returned string from. + * \param bts BTS of which to list the TRX states. + * \return talloc allocated string. + */ +char *bsc_rf_states_of_bts_c(void *ctx, struct gsm_bts *bts) +{ + OSMO_NAME_C_IMPL(ctx, 256, "ERROR", bsc_rf_states_of_bts_buf, bts); +} + +static int bsc_rf_states_buf(char *buf, size_t buflen) +{ + struct gsm_bts *bts; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + OSMO_STRBUF_APPEND(sb, bsc_rf_states_of_bts_buf, bts); + } + return sb.chars_needed; +} + +/* Return a string listing the states of all TRX of all BTS. + * The string has the form: + * ,,,,,;,,...;...; + * \param ctx Talloc context to allocate the returned string from. + * \param bts BTS of which to list the TRX states, or NULL to list all TRX of all BTS. + * \return talloc allocated string. + */ +char *bsc_rf_states_c(void *ctx) +{ + OSMO_NAME_C_IMPL(ctx, 4096, "ERROR", bsc_rf_states_buf); +} + static int lock_each_trx(struct gsm_network *net, bool lock) { struct gsm_bts *bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I14fa2678fc8f2c11a879c5e9615ac552782c5b7e Gerrit-Change-Number: 25387 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 Sep 14 08:44:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:44:46 +0000 Subject: Change in osmo-bsc[master]: add CTRL bts.N.trx.M.rf_locked (RW) In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25395 ) Change subject: add CTRL bts.N.trx.M.rf_locked (RW) ...................................................................... add CTRL bts.N.trx.M.rf_locked (RW) Add per-TRX command to lock/unlock single TRX. (Besides the global root-node rf_locked command setting the global RF policy.) Corresponds to VTY command: 'bts N' / 'trx N' / 'rf_locked (0|1)'. Related: SYS#5542 Related: I2bb5096732f75a7341c7e83951e63c5a2038b469 (osmo-ttcn3-hacks) Depends: I4dac826aab00bc1780a5258b6b55d34ce7d50c60 (libosmocore) Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b --- M TODO-RELEASE M src/osmo-bsc/bsc_ctrl_commands.c 2 files changed, 33 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 8585c7b..90ec16b 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -14,3 +14,4 @@ libosmovty >1.5.1 needs vty_read_config_filep() libosmosgsm >1.5.1 needs GSM_PCHAN_OSMO_DYN libosmocore >1.5.1 RSL_IPAC_EIE_OSMO*, struct osmo_preproc_* +libosmocore >1.5.1 needs osmo_str_to_int() diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index 3b8125a..c7547b0 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -536,6 +536,37 @@ } CTRL_CMD_DEFINE(net_rf_lock, "rf_locked"); +static int get_trx_rf_locked(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts_trx *trx = cmd->node; + /* Return rf_locked = 1 only if it is explicitly locked. If it is in shutdown or null state, do not "trick" the + * caller into thinking that sending "rf_locked 0" is necessary to bring the TRX up. */ + cmd->reply = (trx->mo.nm_state.administrative == NM_STATE_LOCKED) ? "1" : "0"; + return CTRL_CMD_REPLY; +} + +static int set_trx_rf_locked(struct ctrl_cmd *cmd, void *data) +{ + struct gsm_bts_trx *trx = cmd->node; + int locked; + if (osmo_str_to_int(&locked, cmd->value, 10, 0, 1)) { + cmd->reply = "Invalid value"; + return CTRL_CMD_ERROR; + } + + gsm_trx_lock_rf(trx, locked, "ctrl"); + + /* Let's not assume the nm FSM has already switched its state, just return the intended rf_locked value. */ + cmd->reply = locked ? "1" : "0"; + return CTRL_CMD_REPLY; +} + +static int verify_trx_rf_locked(struct ctrl_cmd *cmd, const char *value, void *data) +{ + return osmo_str_to_int(NULL, value, 10, 0, 1); +} +CTRL_CMD_DEFINE(trx_rf_locked, "rf_locked"); + static int get_net_bts_num(struct ctrl_cmd *cmd, void *data) { struct gsm_network *net = cmd->node; @@ -661,6 +692,7 @@ rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_max_power); rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_arfcn); + rc |= ctrl_cmd_install(CTRL_NODE_TRX, &cmd_trx_rf_locked); return rc; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25395 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie46fd730797b64fb185d705c3507e36f5f23ef4b Gerrit-Change-Number: 25395 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 Sep 14 08:48:06 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 08:48:06 +0000 Subject: Change in libosmocore[master]: revisit some calls of strtol(), stroul(), strtoull() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25347 ) Change subject: revisit some calls of strtol(), stroul(), strtoull() ...................................................................... Patch Set 8: code review on the osmo_str_to_int() patch requested that the cases in this patch using an unsigned int should have and use dedicated unsigned API instead of using a signed integer with min/max limits. (I personally don't see the point but don't want to brush over those requests) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25347 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I0ebb06e751c28f7d1cdf328de29cd227a2449391 Gerrit-Change-Number: 25347 Gerrit-PatchSet: 8 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 08:48: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 Sep 14 09:05:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:05:40 +0000 Subject: Change in osmo-bsc[master]: doc/mgwpool: update documentation In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25448 ) Change subject: doc/mgwpool: update documentation ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3026e027bba1a9a12ceca64e96df993b5957cb1d Gerrit-Change-Number: 25448 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:05: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 Sep 14 09:11:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:11:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn at 6161 PS2, Line 6161: if (mp_ctrl_neigh_ip != "") { /* PCU using old CTRL neigh addr resolution iface */ > What's the thought process here? So you've added code paths to deal with both the old and new way in [?] Because these two tests are really specific to the underlaying CTRL protocol. It makes no sense to run them or try to apply them for the new interface which is unix socket based, with structured messages. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 09:11:06 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:11:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:11:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:11:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:11:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:11:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... pcu: Support Neighbor Address Resolution over PCUIF New versions of osmo-pcu support Neighbor Address Resolution over this interface, and deprecated the old CTRL interface. Let's use it by default while still keeping support for the old one for a while to avoid breakage of existing deployments. Tests run to validate: * Old osmo-pcu still passes tests using CTRL interface * New osmo-pcu (with new iface support) still passes tests using CTRL interface * New osmo-pcu (with new iface support) passes tests using new iface Related: SYS#4971 Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 --- M bts/BTS_Tests_OML.ttcn M library/Osmocom_CTRL_Adapter.ttcn M library/PCUIF_Types.ttcn M pcu/PCU_Tests.ttcn 4 files changed, 324 insertions(+), 195 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests_OML.ttcn b/bts/BTS_Tests_OML.ttcn index 40fb5cd..4a58312 100644 --- a/bts/BTS_Tests_OML.ttcn +++ b/bts/BTS_Tests_OML.ttcn @@ -696,30 +696,30 @@ IPA_OSMO_PCU.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_RESP)); IPA_OSMO_PCU.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_ID_ACK)); - IPA_OSMO_PCU.send(ts_PCUIF_CONTAINER(0, ts_PCUIF_CONT_OTHER(100, payloadReq))) + IPA_OSMO_PCU.send(ts_PCUIF_CONTAINER(0, ts_PCUIF_CONT_OTHER(PCU_IF_MSG_NEIGH_ADDR_REQ, payloadReq))) T.start; alt { - [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(100, payloadReq)))) { + [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(PCU_IF_MSG_NEIGH_ADDR_REQ, payloadReq)))) { setverdict(pass); } [] PCU.receive(PCUIF_send_data:?) -> value pcu_sd_msg { setverdict(fail, "Unexpected message received: ", pcu_sd_msg.data, " vs exp: ", - t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(100, payloadReq)))); + t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(PCU_IF_MSG_NEIGH_ADDR_REQ, payloadReq)))); } [] T.timeout { setverdict(fail, "Timeout waiting for ANR request on PCU inteface");} } T.stop; /* Send back the response: */ - PCU.send(t_SD_PCUIF(g_pcu_conn_id, ts_PCUIF_CONTAINER(0, ts_PCUIF_CONT_OTHER(100, payloadRep)))) + PCU.send(t_SD_PCUIF(g_pcu_conn_id, ts_PCUIF_CONTAINER(0, ts_PCUIF_CONT_OTHER(PCU_IF_MSG_NEIGH_ADDR_REQ, payloadRep)))) T.start; alt { - [] IPA_OSMO_PCU.receive(tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(100, payloadRep))) { + [] IPA_OSMO_PCU.receive(tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(PCU_IF_MSG_NEIGH_ADDR_REQ, payloadRep))) { setverdict(pass); } [] IPA_OSMO_PCU.receive(PCUIF_Message:?) -> value msg_rx { setverdict(fail, "Unexpected message received: ", msg_rx, " vs exp: ", - tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(100, payloadRep))); + tr_PCUIF_CONTAINER(0, tr_PCUIF_CONT_OTHER(PCU_IF_MSG_NEIGH_ADDR_REQ, payloadRep))); } [] T.timeout { setverdict(fail, "Timeout waiting for ANR request on BSC inteface"); } } diff --git a/library/Osmocom_CTRL_Adapter.ttcn b/library/Osmocom_CTRL_Adapter.ttcn index 34ea300..6a9706e 100644 --- a/library/Osmocom_CTRL_Adapter.ttcn +++ b/library/Osmocom_CTRL_Adapter.ttcn @@ -22,6 +22,7 @@ type component CTRL_Adapter_CT { var IPA_Emulation_CT vc_CTRL_IPA; + var boolean ipa_is_up := false; /* test port for the CTRL interface of the BSC */ port IPA_CTRL_PT IPA_CTRL; } @@ -29,10 +30,13 @@ /* wait for IPA CTRL link to connect and send UP */ function f_ipa_ctrl_wait_link_up() runs on CTRL_Adapter_CT { + if (ipa_is_up == true) { + return; + } timer T := 10.0; T.start; alt { - [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { } + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_UP)) { ipa_is_up := true; } [] T.timeout { setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_UP"); mtc.stop; @@ -40,13 +44,16 @@ } } -/* wait for IPA CTRL link to connect and send UP */ +/* wait for IPA CTRL link to connect and send DOWN */ function f_ipa_ctrl_wait_link_down() runs on CTRL_Adapter_CT { + if (ipa_is_up == false) { + return; + } timer T := 10.0; T.start; alt { - [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { } + [] IPA_CTRL.receive(tr_ASP_IPA_EV(ASP_IPA_EVENT_DOWN)) { ipa_is_up := false; } [] T.timeout { setverdict(fail, "Timeout CTRL waiting for ASP_IPA_EVENT_DOWN"); mtc.stop; diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index 1e57fb2..dcae4e6 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -38,7 +38,10 @@ PCU_IF_MSG_INTERF_IND ('53'O), PCU_IF_MSG_PAG_REQ ('60'O), PCU_IF_MSG_TXT_IND ('70'O), - PCU_IF_MSG_CONTAINER ('80'O) + PCU_IF_MSG_CONTAINER ('80'O), + /* Container payload message types: */ + PCU_IF_MSG_NEIGH_ADDR_REQ ('81'O), + PCU_IF_MSG_NEIGH_ADDR_CNF ('82'O) } with { variant "FIELDLENGTH(8)" }; type enumerated PCUIF_Sapi { @@ -254,15 +257,37 @@ variant (tlli) "BYTEORDER(last)" }; +type record PCUIF_neigh_addr_req { + uint16_t local_lac, + uint16_t local_ci, + uint16_t tgt_arfcn, + uint8_t tgt_bsic +} with { variant (local_lac) "BYTEORDER(last)" + variant (local_ci) "BYTEORDER(last)" + variant (tgt_arfcn) "BYTEORDER(last)" }; + +type record PCUIF_neigh_addr_cnf { + PCUIF_neigh_addr_req orig_req, + uint8_t error_code, + uint16_t mcc, + uint16_t mnc, + uint8_t mnc_3_digits, + uint16_t lac, + uint8_t rac, + uint16_t cell_identity +} with { variant (mcc) "BYTEORDER(last)" + variant (mnc) "BYTEORDER(last)" + variant (lac) "BYTEORDER(last)" + variant (cell_identity) "BYTEORDER(last)" }; + type union PCUIF_ContainerMsgUnion { - /* This field can be removed once first container message is added, see - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=574469 */ - octetstring tmp_fixme, + PCUIF_neigh_addr_req neigh_addr_req, + PCUIF_neigh_addr_cnf neigh_addr_cnf, octetstring other } with { variant "" }; type record PCUIF_container { - uint8_t msg_type, + PCUIF_MsgType msg_type, OCT1 spare, uint16_t len, /* network byte order */ PCUIF_ContainerMsgUnion u @@ -270,7 +295,8 @@ variant (len) "BYTEORDER(last)" variant (len) "LENGTHTO(u)" variant (u) "CROSSTAG( - tmp_fixme, msg_type = 255; + neigh_addr_req, msg_type = PCU_IF_MSG_NEIGH_ADDR_REQ; + neigh_addr_cnf, msg_type = PCU_IF_MSG_NEIGH_ADDR_CNF; other, OTHERWISE)" }; @@ -1026,7 +1052,7 @@ } } -template (value) PCUIF_container ts_PCUIF_CONT_OTHER(uint8_t msg_type, template (value) octetstring payload) := { +template (value) PCUIF_container ts_PCUIF_CONT_OTHER(PCUIF_MsgType msg_type, template (value) octetstring payload) := { msg_type := msg_type, spare := '00'O, len := lengthof(payload), @@ -1034,7 +1060,7 @@ other := payload } } -template (present) PCUIF_container tr_PCUIF_CONT_OTHER(template (present) uint8_t msg_type, +template (present) PCUIF_container tr_PCUIF_CONT_OTHER(template (present) PCUIF_MsgType msg_type, template (present) octetstring payload) := { msg_type := msg_type, spare := '00'O, @@ -1044,6 +1070,77 @@ } } +template (present) PCUIF_container tr_PCUIF_CONT_NEIGH_ADDR_REQ(template (present) uint16_t local_lac := ?, + template (present) uint16_t local_ci := ?, + template (present) uint16_t tgt_arfcn := ?, + template (present) uint8_t tgt_bsic := ?) := { + msg_type := PCU_IF_MSG_NEIGH_ADDR_REQ, + spare := '00'O, + len := ?, + u := { + neigh_addr_req := { + local_lac := local_lac, + local_ci := local_ci, + tgt_arfcn := tgt_arfcn, + tgt_bsic := tgt_bsic + } + } +} +template (present) PCUIF_Message tr_PCUIF_NEIGH_ADDR_REQ(template (present) uint8_t bts_nr, + template (present) uint16_t local_lac := ?, + template (present) uint16_t local_ci := ?, + template (present) uint16_t tgt_arfcn := ?, + template (present) uint8_t tgt_bsic := ?) := { + msg_type := PCU_IF_MSG_CONTAINER, + bts_nr := bts_nr, + spare := '0000'O, + u := { + container := tr_PCUIF_CONT_NEIGH_ADDR_REQ(local_lac, local_ci, tgt_arfcn, tgt_bsic) + } +} + +template (value) PCUIF_container ts_PCUIF_CONT_NEIGH_ADDR_CNF(template (value) PCUIF_neigh_addr_req orig_req, + template (value) uint8_t error_code := 0, + template (value) uint16_t mcc := 0, + template (value) uint16_t mnc := 0, + template (value) uint8_t mnc_3_digits := 0, + template (value) uint16_t lac := 0, + template (value) uint8_t rac := 0, + template (value) uint16_t cell_identity := 0) := { + msg_type := PCU_IF_MSG_NEIGH_ADDR_CNF, + spare := '00'O, + len := 0, /* overwritten */ + u := { + neigh_addr_cnf := { + orig_req := orig_req, + error_code := error_code, + mcc := mcc, + mnc := mnc, + mnc_3_digits := mnc_3_digits, + lac := lac, + rac := rac, + cell_identity := cell_identity + } + } +} +template (value) PCUIF_Message ts_PCUIF_NEIGH_ADDR_CNF(template (value) uint8_t bts_nr, + template (value) PCUIF_neigh_addr_req orig_req, + template (value) uint8_t error_code := 0, + template (value) uint16_t mcc := 0, + template (value) uint16_t mnc := 0, + template (value) uint8_t mnc_3_digits := 0, + template (value) uint16_t lac := 0, + template (value) uint8_t rac := 0, + template (value) uint16_t cell_identity := 0) := { + msg_type := PCU_IF_MSG_CONTAINER, + bts_nr := bts_nr, + spare := '0000'O, + u := { + container := ts_PCUIF_CONT_NEIGH_ADDR_CNF(orig_req, error_code, mcc, mnc, mnc_3_digits, + lac, rac, cell_identity) + } +} + function f_PCUIF_PDCHMask_set(inout PCUIF_info_ind info, BIT8 pdch_mask, template (present) uint8_t trx_nr := ?) { diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index c23e58c..15c451b 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -69,7 +69,7 @@ charstring mp_pcu_statsd_ip := "127.0.0.1"; integer mp_pcu_statsd_port := 8125; - charstring mp_ctrl_neigh_ip := "127.0.0.1"; + charstring mp_ctrl_neigh_ip := ""; /* Use new PCUIF over IPA multiplex for Neigh Addr Resolution */ integer mp_ctrl_neigh_port := 4248; boolean mp_osmo_pcu_newer_than_0_9_0 := true; /* Drop after OsmoPCU > 0.9.0 was released */ @@ -4391,10 +4391,35 @@ } } +private function f_handle_nacc_rac_ci_query(PCUIF_info_ind info_ind, GsmArfcn req_arfcn, uint6_t req_bsic, + boolean answer := true, boolean use_old_ctrl_iface := false) +runs on RAW_PCU_Test_CT { + if (use_old_ctrl_iface == true) { + f_ipa_ctrl_wait_link_up(); + var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + if (answer) { + f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + } else { + f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + } + } else { + var PCUIF_Message pcu_msg; + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + if (answer) { + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + } + } +} + /* Start NACC from MS side */ private function f_outbound_nacc_success(inout GprsMS ms, PCUIF_info_ind info_ind, boolean exp_rac_ci_query := true, boolean exp_si_query := true, - boolean skip_final_ctrl_ack := false) + boolean skip_final_ctrl_ack := false, + boolean use_old_ctrl_iface := false) runs on RAW_PCU_Test_CT { var template (value) RlcmacUlCtrlMsg cell_chf_notif; var RlcmacDlBlock dl_block; @@ -4408,13 +4433,7 @@ if (exp_rac_ci_query == true) { /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); } if (exp_si_query == true) { @@ -4443,9 +4462,12 @@ var PollFnCtx pollctx; var GprsMS ms; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4469,7 +4491,7 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -4481,9 +4503,12 @@ var RlcmacDlBlock dl_block; var uint32_t sched_fn; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4507,7 +4532,7 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side, avoid sending final CTRL ACK */ - f_outbound_nacc_success(ms, info_ind, skip_final_ctrl_ack := true); + f_outbound_nacc_success(ms, info_ind, skip_final_ctrl_ack := true, use_old_ctrl_iface := use_old_ctrl_iface); /* Wait until we receive something non-dummy */ dl_block := f_skip_dummy(0, sched_fn); @@ -4530,9 +4555,12 @@ var GprsMS ms; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4558,10 +4586,10 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); /* First NACC procedure is done, let's try to start a new one now that previous queries are cached: */ - f_outbound_nacc_success(ms, info_ind, false, false); + f_outbound_nacc_success(ms, info_ind, false, false, use_old_ctrl_iface := use_old_ctrl_iface); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -4574,9 +4602,12 @@ var GprsMS ms; var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var template (value) RlcmacUlCtrlMsg cell_chf_notif; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4602,14 +4633,14 @@ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts); /* Start NACC from MS side */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); /* CTRL client should have disconnected from us */ f_ipa_ctrl_wait_link_down(); /* wait for cache entries to time out */ f_sleep(2.0); /* First NACC procedure is done, let's try to start a new one now that previous queries have timed out: */ - f_outbound_nacc_success(ms, info_ind); + f_outbound_nacc_success(ms, info_ind, use_old_ctrl_iface := use_old_ctrl_iface); f_shutdown(__BFILE__, __LINE__, final := true); } @@ -4680,9 +4711,12 @@ var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4710,14 +4744,8 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); /* we receive RAC+CI resolution request, but we never answer to it, timeout should occur */ - f_ctrl_exp_get(IPA_CTRL, ctrl_var, omit); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, false, use_old_ctrl_iface); /* Wait until we receive something non-dummy */ dl_block := f_skip_dummy(0, sched_fn); @@ -4780,7 +4808,7 @@ int2str(info_ind.cell_id) & "." & int2str(req_arfcn) & "." & int2str(req_bsic); - /* we receive RAC+CI resolution request and we send incorrectlt formated response */ + /* we receive RAC+CI resolution request and we send incorrectly formated response */ f_ctrl_exp_get(IPA_CTRL, ctrl_var, "foobar-error"); /* Wait until we receive something non-dummy */ @@ -4808,6 +4836,7 @@ var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; var BssgpCellId src := valueof(ts_BssgpCellId(ts_RAI(ts_LAI(f_enc_BcdMccMnc(info_ind.mcc, info_ind.mnc, info_ind.mnc_3_digits == 1), /* '262F42'H */ info_ind.lac), info_ind.rac), @@ -4819,8 +4848,10 @@ var template RIM_Routing_Address src_addr := t_RIM_Routing_Address_cid(src); var template RIM_Routing_Address dst_addr := t_RIM_Routing_Address_cid(dst); - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4848,13 +4879,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ RIM.receive(tr_RAN_INFORMATION_REQUEST(tr_RIM_Routing_Information(RIM_ADDR_GERAN_CELL_ID, dst_addr), @@ -4886,11 +4911,16 @@ var RlcmacDlBlock dl_block; var uint32_t sched_fn; var CtrlMessage rx_ctrl; + var charstring ctrl_var; + var PCUIF_Message pcu_msg; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -4918,25 +4948,40 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + if (use_old_ctrl_iface) { + f_ipa_ctrl_wait_link_up(); + ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + } else { + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + } + /* Before receiving CTRL response, MS retransmits Pkt cell Chg Notif */ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); f_sleep(0.2); /* let some time to avoid race conditons between CTRL and RLCMAC */ - IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + + if (use_old_ctrl_iface) { + IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + } else { + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + } + timer T := 2.0; T.start; alt { [] as_outbound_nacc_rim_resolve(info_ind, do_repeat := true); - [] IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl { + [use_old_ctrl_iface] IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl { setverdict(fail, "Received unexpected CTRL resolution after duplicate Pkt Cell Change Notification:", rx_ctrl); f_shutdown(__BFILE__, __LINE__); } + [not use_old_ctrl_iface] BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg { + setverdict(fail, "Received unexpected PCUIF resolution after duplicate Pkt Cell Change Notification:", pcu_msg); + f_shutdown(__BFILE__, __LINE__); + } [] T.timeout { setverdict(pass); } @@ -4971,9 +5016,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5001,13 +5049,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); as_outbound_nacc_rim_resolve(info_ind, do_answer := false); /* Before receiving RIM response, MS retransmits Pkt cell Chg Notif */ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); @@ -5054,9 +5096,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5084,13 +5129,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5125,9 +5164,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5155,13 +5197,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5195,9 +5231,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5225,13 +5264,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5264,11 +5297,16 @@ var RlcmacDlBlock dl_block; var uint32_t sched_fn; var CtrlMessage rx_ctrl; + var charstring ctrl_var; + var PCUIF_Message pcu_msg; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5296,25 +5334,28 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + if (use_old_ctrl_iface) { + f_ipa_ctrl_wait_link_up(); + ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & + int2str(info_ind.lac) & "." & + int2str(info_ind.cell_id) & "." & + int2str(req_arfcn) & "." & + int2str(req_bsic); + IPA_CTRL.receive(tr_CtrlMsgGet(?, ctrl_var)) -> value rx_ctrl; + } else { + BTS.receive(tr_PCUIF_NEIGH_ADDR_REQ(0, info_ind.lac, info_ind.cell_id, req_arfcn, req_bsic)) -> value pcu_msg; + } /* Before receiving CTRL response, MS retransmits Pkt cell Chg Notif with different tgt arfcn */ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); f_sleep(0.2); /* let some time to avoid race conditons between CTRL and RLCMAC */ - IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + if (use_old_ctrl_iface) { + IPA_CTRL.send(ts_CtrlMsgGetRepl(rx_ctrl.cmd.id, valueof(ctrl_var), valueof("023-43-423-2-5"))); + } else { + BTS.send(ts_PCUIF_NEIGH_ADDR_CNF(0, pcu_msg.u.container.u.neigh_addr_req, 0, 23, 43, 0, 423, 2, 5)); + } /* We should now receive a 2nd CTRL request with the new ARFCN+BSIC */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); /* And finally everything continues as usual with RIN procedure */ as_outbound_nacc_rim_resolve(info_ind); @@ -5349,9 +5390,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5379,13 +5423,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); as_outbound_nacc_rim_resolve(info_ind, do_answer := false); /* Before receiving RIM response, MS retransmits Pkt cell Chg Notif with different tgt cell: */ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); @@ -5394,12 +5432,7 @@ f_outbound_nacc_rim_tx_resp(info_ind); /* As a result, CTRL + RIM resolution for new tgt cell should now be done: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); /* And finally everything continues as usual with RIN procedure */ as_outbound_nacc_rim_resolve(info_ind); @@ -5434,9 +5467,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5464,13 +5500,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5480,12 +5510,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* It should trigger RAC_CI resolution to start again: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); /* Transmit SI back to MS */ @@ -5515,9 +5540,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5545,13 +5573,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5562,16 +5584,12 @@ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + /* It should trigger RAC_CI resolution to start again: */ + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); + /* PCU TBF NACC state changed, so we should next receive a dummy block: */ f_rx_rlcmac_dl_block_exp_dummy(dl_block, nr := f_ms_tx_TsTrxBtsNum(ms)); - /* It should trigger RAC_CI resolution to start again: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); /* Transmit SI back to MS */ @@ -5601,9 +5619,12 @@ var CtrlMessage rx_ctrl; var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5631,13 +5652,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -5655,21 +5670,32 @@ cell_chf_notif := ts_RlcMacUlCtrl_PKT_CELL_CHG_NOTIF(ms.ul_tbf.tfi, req_arfcn + 1, req_bsic + 1); f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); + /* It should trigger RAC_CI resolution to start again: */ + /* When using new PCUIF interface for resolution, we must + * PCUIF.receive() here since that's the first message in the PCUIF + * queue that PCU will have sent. Calling other functions doing + * PCUIF.receive() (like f_ms_tx_ul_block() below) will make them fail + * due to unexpected message receive. */ + if (not use_old_ctrl_iface) { + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); + } + /* PKT CELL CHG CONTINUE ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */ if (dl_block.ctrl.mac_hdr.rrbp_valid) { sched_fn := f_rrbp_ack_fn(sched_fn, dl_block.ctrl.mac_hdr.rrbp); f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn); } + + /* When using CTRL interface, we must schedule the ACK before (see + * above) blocking here waiting for the resoltion, otherwise we'll be + * too late scheduling by the time the resolution is done. */ + if (use_old_ctrl_iface) { + f_handle_nacc_rac_ci_query(info_ind, req_arfcn + 1, req_bsic + 1, true, use_old_ctrl_iface); + } + /* PCU TBF NACC state changed, so we should next receive a dummy block: */ f_rx_rlcmac_dl_block_exp_dummy(dl_block); - /* It should trigger RAC_CI resolution to start again: */ - ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn + 1) & "." & - int2str(req_bsic + 1); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); /* Transmit SI back to MS */ @@ -5700,9 +5726,12 @@ var GsmArfcn req_arfcn := 862; var uint6_t req_bsic := 43; var octetstring data := f_rnd_octstring(10); + var boolean use_old_ctrl_iface := mp_ctrl_neigh_ip != ""; - /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ - f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + if (use_old_ctrl_iface) { + /* Initialize osmo-bsc emulation neighbor resolution CTRL port */ + f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port); + } /* Initialize NS/BSSGP side */ f_init_bssgp(); @@ -5730,13 +5759,7 @@ f_ms_tx_ul_block(ms, ts_RLC_UL_CTRL_ACK(cell_chf_notif), 0, nr := f_ms_tx_TsTrxBtsNum(ms)); /* osmo-pcu should now ask for resolution: */ - f_ipa_ctrl_wait_link_up(); - var charstring ctrl_var := "neighbor_resolve_cgi_ps_from_lac_ci." & - int2str(info_ind.lac) & "." & - int2str(info_ind.cell_id) & "." & - int2str(req_arfcn) & "." & - int2str(req_bsic); - f_ctrl_exp_get(IPA_CTRL, ctrl_var, "023-43-423-2-5"); + f_handle_nacc_rac_ci_query(info_ind, req_arfcn, req_bsic, true, use_old_ctrl_iface); /* RIM procedure: */ as_outbound_nacc_rim_resolve(info_ind); @@ -6122,9 +6145,7 @@ execute( TC_nacc_outbound_success_no_ctrl_ack() ); execute( TC_nacc_outbound_success_twice() ); execute( TC_nacc_outbound_success_twice_nocache() ); - execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() ); execute( TC_nacc_outbound_rac_ci_resolve_timeout() ); - execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); execute( TC_nacc_outbound_si_resolve_timeout() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_dup() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_dup2() ); @@ -6137,6 +6158,10 @@ execute( TC_nacc_outbound_pkt_cell_chg_notif_twice4() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_twice5() ); execute( TC_nacc_outbound_pkt_cell_chg_notif_unassigned_dl_tbf() ); + if (mp_ctrl_neigh_ip != "") { /* PCU using old CTRL neigh addr resolution iface */ + execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() ); + execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() ); + } execute( TC_rim_ran_info_req_single_rep() ); execute( TC_rim_ran_info_req_single_rep_eutran() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:11:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:11:22 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:11: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 Sep 14 09:11:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:11:27 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu: use new Neighbor Address Resolution interface in master In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25407 ) Change subject: ttcn3-pcu: use new Neighbor Address Resolution interface in master ...................................................................... ttcn3-pcu: use new Neighbor Address Resolution interface in master Since current master, osmo-pcu and osmo-bsc support Address Neighbor Resolution using new PCUIF over IPA multiplex, deprecating the old CTRL interface used until now. Since the old CTRL interface is not yet removed in order to avoid breakage of old deployments (only marked as deprecated and not used by default), let's keep support to run the existing tests with the old interface to keep them being tested in latest release, while instruction both osmo-pcu and TTCN3 PCU_Tests to use the new interface in master. Once we do a new osmo-pcu release, we can drop support for the old interface in tests, and drop it completely from osmo-pcu over the following next release. Depends: osmo-ttcn3-hacks.git Change-Id I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Related: SYS#4971 Change-Id: I01d0604f294dc88dc32137c976f424655849d57e --- M ttcn3-pcu-test/jenkins.sh 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh index 6d6f975..0bbfb31 100755 --- a/ttcn3-pcu-test/jenkins.sh +++ b/ttcn3-pcu-test/jenkins.sh @@ -21,11 +21,17 @@ cfg="$VOL_BASE_DIR/pcu-tester/PCU_Tests.cfg" sed -i "s/^PCUIF_Components.mp_send_all_data_ind.*/PCUIF_Components.mp_send_all_data_ind := false;/" "$cfg" sed -i "s/^PCU_Tests.mp_osmo_pcu_newer_than_0_9_0.*/PCU_Tests.mp_osmo_pcu_newer_than_0_9_0 := false;/" "$cfg" +else + sed "/PCU_Tests.mp_ctrl_neigh_ip/d" -i "$VOL_BASE_DIR/pcu-tester/PCU_Tests.cfg" fi mkdir $VOL_BASE_DIR/pcu mkdir $VOL_BASE_DIR/pcu/unix cp osmo-pcu.cfg $VOL_BASE_DIR/pcu/ +# Disable until osmo-pcu release > 0.9.0 +if image_suffix_is_master; then + sed "/neighbor resolution/d" -i "$VOL_BASE_DIR/pcu/osmo-pcu.cfg" +fi mkdir $VOL_BASE_DIR/unix -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I01d0604f294dc88dc32137c976f424655849d57e Gerrit-Change-Number: 25407 Gerrit-PatchSet: 3 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 Tue Sep 14 09:14:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:14:59 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25431 ) Change subject: add a lock-free bounded spsc interthread queue ...................................................................... Patch Set 17: (1 comment) I'm still missing some documentation on the data structure, APIs, etc. for this data structure. https://gerrit.osmocom.org/c/osmo-mgw/+/25431/17/src/libosmo-mgcp/mgcp_threads_queue.c File src/libosmo-mgcp/mgcp_threads_queue.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25431/17/src/libosmo-mgcp/mgcp_threads_queue.c at 60 PS17, Line 60: q->buf = _talloc_zero_array(q, size_per_buf, count, __location__); this underscore before looks suspicious. Is this API public? Why not using talloc_zero_size here? -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 17 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:14: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 Tue Sep 14 09:16:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:16:52 +0000 Subject: Change in osmo-mgw[master]: adjust mgcp response context In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25447 ) Change subject: adjust mgcp response context ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 Gerrit-Change-Number: 25447 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:16:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:17:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:17:15 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... Patch Set 14: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 14 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:17:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:20:27 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 14 Sep 2021 09:20:27 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: update .err files to match new log output References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: update .err files to match new log output ...................................................................... msc_vlr_test: update .err files to match new log output The log output of libosmo-mgcp-client has changed. This change must also be reflected in the .err files of the msc_vlr unit tests. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 12 files changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/49/25449/1 diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index c2049d9..bc48c04 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_auth_use_twice_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index 35d0c98..c2be97b 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_call_mo - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 042bfca..8900ae9 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_gsm_authen - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 061955e..d92d687 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_ciph - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index b0b9bb0..a1ff60a 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_hlr_rej_auth_info_unknown_imsi - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 788c326..700f16a 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_hlr_timeout_lu_auth_info - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ee2139..b1be4f4 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_ms_timeout_lu_auth_resp - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 6a83209..600f182 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_no_authen - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 4d32255..aecd908 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_reject_2nd_conn - Location Update Request on one connection MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index a1ff24b..54be7f9 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_cm_service_without_lu - CM Service Request without a prior Location Updating MSC <--GERAN-A-- MS: GSM48_MT_MM_CM_SERV_REQ diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index 41318c4..6f23985 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index a131ce3..d168384 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,4 +1,4 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' +DLMGCP MGW(mgw) MGCP client: using endpoint domain '@mgw' ===== test_umts_authen_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 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 Sep 14 09:27:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:27:55 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25432 ) Change subject: Add multithreading for the virtual trunk ...................................................................... Patch Set 24: (2 comments) Most of my previous comments have not been addressedyet in this new version. It may make sense to first write a patch doing the proper split of the data model in MGCP dispatcher + workers with no threading involved, and then a follow up commit adding the multithread stuff. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/24/include/osmocom/mgcp/mgcp_threads.h File include/osmocom/mgcp/mgcp_threads.h: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/24/include/osmocom/mgcp/mgcp_threads.h at 113 PS24, Line 113: static_assert(sizeof(struct to_trunkthread_mgcp_msg) == 4096, "interthread struct size mismatch!"); We do have osmo_static_assert(), implemented differently, not sure if we need it for some compiler compat. https://gerrit.osmocom.org/c/osmo-mgw/+/25432/24/src/libosmo-mgcp/mgcp_threads_vty.c File src/libosmo-mgcp/mgcp_threads_vty.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25432/24/src/libosmo-mgcp/mgcp_threads_vty.c at 165 PS24, Line 165: * types when implementation is available */ wrong indentation -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 24 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Tue, 14 Sep 2021 09:27:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:28:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 09:28:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Support Neighbor Address Resolution over PCUIF In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 ) Change subject: pcu: Support Neighbor Address Resolution over PCUIF ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406/2/pcu/PCU_Tests.ttcn at 6161 PS2, Line 6161: if (mp_ctrl_neigh_ip != "") { /* PCU using old CTRL neigh addr resolution iface */ > Because these two tests are really specific to the underlaying CTRL protocol. [?] Thanks for explaining, makes sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05f1aabc64fc5bc4740b0d8afd8990b485eacd50 Gerrit-Change-Number: 25406 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:28:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:30:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:30:03 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: update .err files to match new log output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: update .err files to match new log output ...................................................................... Patch Set 1: Code-Review-1 I think we shouldn't store logging from library here. Tests checking library output should be done in library itself. Let's better disable the category completely in these tests. Then osmo-msc unit tests from master work with both new and older releases of the lib just fine. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:30:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:30:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 09:30:42 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL RSSI from correct measurement period In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25438 ) Change subject: MS Power Control Loop: Feed UL RSSI from correct measurement period ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I00852cb37a3613606e37476c169f5a32d6b5d75e Gerrit-Change-Number: 25438 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 09:30:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:32:03 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 14 Sep 2021 09:32:03 +0000 Subject: Change in osmo-bsc[master]: fixup comments for 'rf_states' CTRL command References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25450 ) Change subject: fixup comments for 'rf_states' CTRL command ...................................................................... fixup comments for 'rf_states' CTRL command Completely describe the 'rf_states' string elements (in one place), and fix the missing item in bsc_ctrl_commands.c comments. Related: SYS#5542 Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac --- M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_rf_ctrl.c 2 files changed, 24 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/50/25450/1 diff --git a/src/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index c7547b0..a94baae 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -420,8 +420,9 @@ } CTRL_CMD_DEFINE_RO(bts_rf_state, "rf_state"); -/* Return a list of the states of each TRX for a given BTS: - * ,,,,;,,... +/* Return a list of the states of each TRX for a given BTS. + * ,,,,,;,,...;...; + * For details on the string, see bsc_rf_states_c(); */ static int get_bts_rf_states(struct ctrl_cmd *cmd, void *data) { @@ -443,7 +444,8 @@ CTRL_CMD_DEFINE_RO(bts_rf_states, "rf_states"); /* Return a list of the states of each TRX for all BTS: - * ,,,,;,,... + * ,,,,,;,,...;...; + * For details on the string, see bsc_rf_states_c(); */ static int get_net_rf_states(struct ctrl_cmd *cmd, void *data) { diff --git a/src/osmo-bsc/bsc_rf_ctrl.c b/src/osmo-bsc/bsc_rf_ctrl.c index 7040da4..749d2eb 100644 --- a/src/osmo-bsc/bsc_rf_ctrl.c +++ b/src/osmo-bsc/bsc_rf_ctrl.c @@ -139,8 +139,7 @@ } /* Return a string listing the state of the given TRX. - * The string has the form: - * ,,,,,; + * For details, see bsc_rf_states_c(). */ static int bsc_rf_state_of_trx_buf(char *buf, size_t buflen, struct gsm_bts_trx *trx) { @@ -154,6 +153,9 @@ return sb.chars_needed; } +/* Same as bsc_rf_states_of_bts_c() but return result in a fixed-size buffer. + * For details, see bsc_rf_states_c(). + * Return the amount of characters that would be written to the buffer if it is large enough, like snprintf(). */ static int bsc_rf_states_of_bts_buf(char *buf, size_t buflen, struct gsm_bts *bts) { struct gsm_bts_trx *trx; @@ -166,8 +168,8 @@ } /* Return a string listing the states of each TRX for the given BTS. - * The string has the form: - * ,,,,,;,,...;...; + * For details, see bsc_rf_states_c(). + * * \param ctx Talloc context to allocate the returned string from. * \param bts BTS of which to list the TRX states. * \return talloc allocated string. @@ -177,6 +179,9 @@ OSMO_NAME_C_IMPL(ctx, 256, "ERROR", bsc_rf_states_of_bts_buf, bts); } +/* Same as bsc_rf_states_c() but return result in a fixed-size buffer. + * For details, see bsc_rf_states_c(). + * Return the amount of characters that would be written to the buffer if it is large enough, like snprintf(). */ static int bsc_rf_states_buf(char *buf, size_t buflen) { struct gsm_bts *bts; @@ -191,8 +196,17 @@ /* Return a string listing the states of all TRX of all BTS. * The string has the form: * ,,,,,;,,...;...; + * (always terminates in a semicolon). + * + * Meaning of the elements: + * - bts_nr: 0..255 -- BTS index. + * - trx_nr: 0..255 -- TRX index. + * - opstate: inoperational|operational -- whether RF is active. + * - adminstate: unlocked|locked -- whether the TRX is configured as RF-locked. + * - rf_policy: off|on|grace|unknown -- which state RF should be in according to user rf_lock requests. + * - rsl_status: rsl-up|rsl-down -- 'rsl-up' if an RSL link to the TRX is currently present. + * * \param ctx Talloc context to allocate the returned string from. - * \param bts BTS of which to list the TRX states, or NULL to list all TRX of all BTS. * \return talloc allocated string. */ char *bsc_rf_states_c(void *ctx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac Gerrit-Change-Number: 25450 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 Sep 14 09:32:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:32:26 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25415/2/src/vty/cpu_sched_vty.c File src/vty/cpu_sched_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25415/2/src/vty/cpu_sched_vty.c at 425 PS2, Line 425: if (applynow) { > All we allow ourselves to do is to apply some changes immediately, and others only at whatever other natural point in time (bts reconnect, etc.), and we document that via attributes. That's precisely my point here. User configures it and it is expected to be applied at runtime by the app code, for which each thread calls the related function to apply its config. So it's not generic VTY code or the user deciding when to do the mangling with threads at runtime, but rather the app code asking the infra to apply desired thread option at a specific point of time. If one wants to change the usual thread config, it is expected to be applied next time the process is started. If someone really wants to mangle with thread cpu affinity while the process is running, better go do it with linux tools allowing so (they exist) since you anyway should know what you are doing. So in general when you use this VTY commands, you are configuring where to pin the threads, but when that actually happens is defined by the app itself. You are simply configuring where to allow each thread. > "enable" style commands don't change persistent configuration. That's what the configure node and its sub-nodes are for. I think I wrote there " store it temporarily but not written back to cfg file (have a ->temporary=true)." so I think we agree here? In any case, that's given the event that we really want to use the VTY to apply instantaneous cpu affinity interactively rather than simply configuring it to do so upon startup. That's my five cents, up to you whether you want to change the state of things here. I'm not for it, but I'm not going to block it. If you want to merge this, then at least provide proper update to the documentation of the cpu affinity section explaining the new behavior and ideas. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:32:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:35:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 09:35:56 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 09:35:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:39:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:39:18 +0000 Subject: Change in osmo-bsc[master]: fixup comments for 'rf_states' CTRL command In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25450 ) Change subject: fixup comments for 'rf_states' CTRL command ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac Gerrit-Change-Number: 25450 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:39:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:39:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:39:38 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL RSSI from correct measurement period In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25438 ) Change subject: MS Power Control Loop: Feed UL RSSI from correct measurement period ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I00852cb37a3613606e37476c169f5a32d6b5d75e Gerrit-Change-Number: 25438 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:39: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 Sep 14 09:39:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:39:46 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 09:39: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 Sep 14 09:40:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:40:12 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL RSSI from correct measurement period In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25438 ) Change subject: MS Power Control Loop: Feed UL RSSI from correct measurement period ...................................................................... MS Power Control Loop: Feed UL RSSI from correct measurement period As per 3GPP TS 45.008 sec 4.2, the ms_pwr received in L1 SACCH Header is the value used over previous measurement period. Hence, we need to feed the algo with the measurements taken over that same period. Related: SYS#4917 Change-Id: I00852cb37a3613606e37476c169f5a32d6b5d75e --- M src/common/l1sap.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2e122e3..a641dab 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1616,6 +1616,7 @@ handover_frame(lchan); if (L1SAP_IS_LINK_SACCH(link_id)) { + int8_t ul_rssi; radio_link_timeout(lchan, false); le = &lchan->lapdm_ch.lapdm_acch; /* save the SACCH L1 header in the lchan struct for RSL MEAS RES */ @@ -1647,7 +1648,12 @@ * 1- It contains measurement data for 1 SACCH block only, not the average over the entire period * 2- It contains measurement data for *current* meas period, not *previous* one. */ - lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb); + /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ + if (lchan->tch.dtx.dl_active) + ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); + else + ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); + lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I00852cb37a3613606e37476c169f5a32d6b5d75e Gerrit-Change-Number: 25438 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:40:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:40:12 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... MS Power Control Loop: Feed UL C/I from correct measurement period As per 3GPP TS 45.008 sec 4.2, the ms_pwr received in L1 SACCH Header is the value used over previous measurement period. Hence, we need to feed the algo with the measurements taken over that same period. Related: SYS#4917 Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 --- M include/osmo-bts/gsm_data.h M src/common/l1sap.c M src/common/measurement.c M tests/meas/meas_testcases.h 4 files changed, 51 insertions(+), 27 deletions(-) Approvals: pespin: Looks good to me, approved; Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index e2a1ae9..0869426 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -105,8 +105,8 @@ uint16_t ber10k; /* timing advance offset (in 1/256 bits) */ int16_t ta_offs_256bits; - /* C/I ratio in dB */ - float c_i; + /* C/I ratio in cB */ + int16_t c_i; /* flags */ uint8_t is_sub:1; /* RSSI in dBm * -1 */ @@ -339,6 +339,8 @@ struct rsl_l1_info l1_info; struct gsm_meas_rep_unidir ul_res; int16_t ms_toa256; + int16_t ul_ci_cb_full; + int16_t ul_ci_cb_sub; /* Frame number of the last measurement indication receceived */ uint32_t last_fn; /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index a641dab..40e818d 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -681,6 +681,7 @@ uint8_t is_sub; int16_t ta_offs_256bits; uint16_t ber10k; + int16_t ci_cb; const char *ind_name; switch (ind_type) { @@ -693,6 +694,7 @@ is_sub = info_meas_ind->is_sub; ta_offs_256bits = info_meas_ind->ta_offs_256bits; ber10k = info_meas_ind->ber10k; + ci_cb = info_meas_ind->c_i_cb; ind_name = "MPH INFO"; break; case PRIM_TCH: @@ -705,6 +707,7 @@ is_sub = ph_tch_ind->is_sub; ta_offs_256bits = ph_tch_ind->ta_offs_256bits; ber10k = ph_tch_ind->ber10k; + ci_cb = ph_tch_ind->lqual_cb; ind_name = "TCH"; break; case PRIM_PH_DATA: @@ -717,6 +720,7 @@ is_sub = ph_data_ind->is_sub; ta_offs_256bits = ph_data_ind->ta_offs_256bits; ber10k = ph_data_ind->ber10k; + ci_cb = ph_data_ind->lqual_cb; ind_name = "DATA"; break; default: @@ -732,9 +736,9 @@ } DEBUGPFN(DL1P, fn, - "%s %s meas ind, ta_offs_256bits=%d, ber10k=%d, inv_rssi=%u\n", + "%s %s meas ind, ta_offs_256bits=%d, ber10k=%d, inv_rssi=%u, C/I=%d cB\n", gsm_lchan_name(lchan), ind_name, ta_offs_256bits, ber10k, - inv_rssi); + inv_rssi, ci_cb); /* in the GPRS case we are not interested in measurement * processing. The PCU will take care of it */ @@ -744,6 +748,7 @@ memset(&ulm, 0, sizeof(ulm)); ulm.ta_offs_256bits = ta_offs_256bits; ulm.ber10k = ber10k; + ulm.c_i = ci_cb; ulm.inv_rssi = inv_rssi; ulm.is_sub = is_sub; @@ -1526,11 +1531,11 @@ uint8_t chan_nr, link_id; uint8_t tn; uint32_t fn; - int8_t rssi; enum osmo_ph_pres_info_type pr_info = data_ind->pdch_presence_info; struct gsm_sacch_l1_hdr *l1_hdr; + int8_t ul_rssi; + int16_t ul_ci_cb; - rssi = data_ind->rssi; chan_nr = data_ind->chan_nr; link_id = data_ind->link_id; fn = data_ind->fn; @@ -1578,7 +1583,7 @@ /* PDTCH / PACCH frame handling */ pcu_tx_data_ind(&trx->ts[tn], PCU_IF_SAPI_PDTCH, fn, trx->arfcn, - L1SAP_FN2MACBLOCK(fn), data, len, rssi, data_ind->ber10k, + L1SAP_FN2MACBLOCK(fn), data, len, data_ind->rssi, data_ind->ber10k, data_ind->ta_offs_256bits/64, data_ind->lqual_cb); return 0; } @@ -1606,7 +1611,15 @@ radio_link_timeout(lchan, true); lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); - lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, data_ind->rssi, data_ind->lqual_cb); + /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ + if (lchan->tch.dtx.dl_active) { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_full; + } else { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_sub; + } + lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, ul_rssi, ul_ci_cb); } return -EINVAL; } @@ -1616,7 +1629,6 @@ handover_frame(lchan); if (L1SAP_IS_LINK_SACCH(link_id)) { - int8_t ul_rssi; radio_link_timeout(lchan, false); le = &lchan->lapdm_ch.lapdm_acch; /* save the SACCH L1 header in the lchan struct for RSL MEAS RES */ @@ -1644,16 +1656,15 @@ * feed the Control Loop with the measurements for the same * period (the previous one), which is stored in lchan->meas(.ul_res): */ lchan_ms_ta_ctrl(lchan, l1_hdr->ta, lchan->meas.ms_toa256); - /* FIXME: lchan_ms_pwr_ctrl() is currently being passed data_ind->lqual_cb, which is wrong because: - * 1- It contains measurement data for 1 SACCH block only, not the average over the entire period - * 2- It contains measurement data for *current* meas period, not *previous* one. - */ /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ - if (lchan->tch.dtx.dl_active) + if (lchan->tch.dtx.dl_active) { ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - else + ul_ci_cb = lchan->meas.ul_ci_cb_full; + } else { ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, data_ind->lqual_cb); + ul_ci_cb = lchan->meas.ul_ci_cb_sub; + } + lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, ul_ci_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/measurement.c b/src/common/measurement.c index a4cc668..a1c91a9 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -341,7 +341,7 @@ if (!ulm->is_sub) dest->is_sub = ts45008_83_is_sub(lchan, fn); - DEBUGPFN(DMEAS, fn, "%s adding measurement (ber10k=%u, ta_offs=%d, ci=%0.2f, is_sub=%u, rssi=-%u), num_ul_meas=%d, fn_mod=%u\n", + DEBUGPFN(DMEAS, fn, "%s adding measurement (ber10k=%u, ta_offs=%d, ci_cB=%d, is_sub=%u, rssi=-%u), num_ul_meas=%d, fn_mod=%u\n", gsm_lchan_name(lchan), ulm->ber10k, ulm->ta_offs_256bits, ulm->c_i, dest->is_sub, ulm->inv_rssi, lchan->meas.num_ul_meas, fn_mod); @@ -555,8 +555,10 @@ struct gsm_meas_rep_unidir *mru; uint32_t ber_full_sum = 0; uint32_t irssi_full_sum = 0; + int32_t ci_full_sum = 0; uint32_t ber_sub_sum = 0; uint32_t irssi_sub_sum = 0; + int32_t ci_sub_sum = 0; int32_t ta256b_sum = 0; unsigned int num_meas_sub = 0; unsigned int num_meas_sub_actual = 0; @@ -624,11 +626,13 @@ m = &lchan->meas.uplink[i + num_ul_meas_excess]; if (m->is_sub) { irssi_sub_sum += m->inv_rssi; + ci_sub_sum += m->c_i; num_meas_sub_actual++; is_sub = true; } irssi_full_sum += m->inv_rssi; ta256b_sum += m->ta_offs_256bits; + ci_full_sum += m->c_i; num_ul_meas_actual++; } else { @@ -697,27 +701,32 @@ else irssi_full_sum = irssi_full_sum / num_ul_meas_actual; - if (!num_ul_meas_actual) + if (!num_ul_meas_actual) { ta256b_sum = lchan->meas.ms_toa256; - else + ci_full_sum = lchan->meas.ul_ci_cb_full; + } else { ta256b_sum = ta256b_sum / (signed)num_ul_meas_actual; + ci_full_sum = ci_full_sum / (signed)num_ul_meas_actual; + } if (!num_meas_sub) ber_sub_sum = MEASUREMENT_DUMMY_BER; else ber_sub_sum = ber_sub_sum / num_meas_sub; - if (!num_meas_sub_actual) + if (!num_meas_sub_actual) { irssi_sub_sum = MEASUREMENT_DUMMY_IRSSI; - else + ci_sub_sum = lchan->meas.ul_ci_cb_sub; + } else { irssi_sub_sum = irssi_sub_sum / num_meas_sub_actual; + ci_sub_sum = ci_sub_sum / (signed)num_meas_sub_actual; + } LOGPLCHAN(lchan, DMEAS, LOGL_INFO, - "Computed TA256(% 4d) BER-FULL(%2u.%02u%%), RSSI-FULL(-%3udBm), " - "BER-SUB(%2u.%02u%%), RSSI-SUB(-%3udBm)\n", - ta256b_sum, ber_full_sum / 100, ber_full_sum % 100, - irssi_full_sum, ber_sub_sum / 100, ber_sub_sum % 100, - irssi_sub_sum); + "Computed TA256(% 4d), BER-FULL(%2u.%02u%%), RSSI-FULL(-%3udBm), C/I-FULL(% 4d cB), " + "BER-SUB(%2u.%02u%%), RSSI-SUB(-%3udBm), C/I-SUB(% 4d cB)\n", + ta256b_sum, ber_full_sum / 100, ber_full_sum % 100, irssi_full_sum, ci_full_sum, + ber_sub_sum / 100, ber_sub_sum % 100, irssi_sub_sum, ci_sub_sum); /* store results */ mru = &lchan->meas.ul_res; @@ -726,6 +735,8 @@ mru->full.rx_qual = ber10k_to_rxqual(ber_full_sum); mru->sub.rx_qual = ber10k_to_rxqual(ber_sub_sum); lchan->meas.ms_toa256 = ta256b_sum; + lchan->meas.ul_ci_cb_full = ci_full_sum; + lchan->meas.ul_ci_cb_sub = ci_sub_sum; LOGPLCHAN(lchan, DMEAS, LOGL_INFO, "UL MEAS RXLEV_FULL(%u), RXLEV_SUB(%u), RXQUAL_FULL(%u), RXQUAL_SUB(%u), " diff --git a/tests/meas/meas_testcases.h b/tests/meas/meas_testcases.h index d7eee5c..90f0f85 100644 --- a/tests/meas/meas_testcases.h +++ b/tests/meas/meas_testcases.h @@ -1,5 +1,5 @@ #define ULM(ber, ta, sub, neg_rssi) \ - { .ber10k = (ber), .ta_offs_256bits = (ta), .c_i = 1.0, .is_sub = sub, .inv_rssi = (neg_rssi) } + { .ber10k = (ber), .ta_offs_256bits = (ta), .c_i = 10, .is_sub = sub, .inv_rssi = (neg_rssi) } struct meas_testcase { const char *name; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:41:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 09:41:04 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25443 ) Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25443/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25443/2//COMMIT_MSG at 11 PS2, Line 11: hat that https://gerrit.osmocom.org/c/osmo-bts/+/25443/2//COMMIT_MSG at 18 PS2, Line 18: we (this "we" doesn't make sense here) https://gerrit.osmocom.org/c/osmo-bts/+/25443/2/src/common/ta_control.c File src/common/ta_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25443/2/src/common/ta_control.c at 29 PS2, Line 29: 0.9 0.75 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 09:41:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:43:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 09:43:00 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 to look at the new patch set (#3). Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... TA Control Loop: Change toa256 switch threshold to 75% of a symbol As per 3GPP TS 45.010 sec 5.6.3 Delay assessment error: """ the delay shall be assessed in such a way that the assessment error (due to noise and interference) is less than 1/2 normal symbol periods for stationary MS. For MS moving at a speed up to 500 km/h the additional error shall be less than 1/4 normal symbol period. """ Hence, required TA loop calculation should take into account an error of up to 1/2 + 1/4 = 75% of a symbol. By changing the threshold variable to that percentage we make sure we take into account bigger deviations and update TA accordingly. Related: SYS#5371 Change-Id: I4c5825df4291d3851a113027abf7566de343a190 --- M src/common/ta_control.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/43/25443/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:45:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 09:45:05 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25445 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Gerrit-Change-Number: 25445 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 09:45:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 09:45:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 09:45:34 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25443 ) Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 14 Sep 2021 09: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 Tue Sep 14 10:03:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:03:19 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25443 ) Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 10:03:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:03:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:03:20 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25445 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Gerrit-Change-Number: 25445 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 10:03:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:03:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:03:22 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25436 ) Change subject: Support configuring TA loop SACCH block rate ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 10:03:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:03:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:03:25 +0000 Subject: Change in osmo-bts[master]: TA Control Loop: Change toa256 switch threshold to 75% of a symbol In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25443 ) Change subject: TA Control Loop: Change toa256 switch threshold to 75% of a symbol ...................................................................... TA Control Loop: Change toa256 switch threshold to 75% of a symbol As per 3GPP TS 45.010 sec 5.6.3 Delay assessment error: """ the delay shall be assessed in such a way that the assessment error (due to noise and interference) is less than 1/2 normal symbol periods for stationary MS. For MS moving at a speed up to 500 km/h the additional error shall be less than 1/4 normal symbol period. """ Hence, required TA loop calculation should take into account an error of up to 1/2 + 1/4 = 75% of a symbol. By changing the threshold variable to that percentage we make sure we take into account bigger deviations and update TA accordingly. Related: SYS#5371 Change-Id: I4c5825df4291d3851a113027abf7566de343a190 --- M src/common/ta_control.c 1 file changed, 5 insertions(+), 4 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/ta_control.c b/src/common/ta_control.c index 6cef545..fd49d60 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -25,8 +25,9 @@ #include #include -/* 90% of one bit duration in 1/256 symbols: 256*0.9 */ -#define TOA256_9OPERCENT 230 +/* 3GPP TS 45.010 sec 5.6.3 Delay assessment error: + * 75% of one bit duration in 1/256 symbols: 256*0.75 */ +#define TOA256_THRESH 192 /* rqd_ta value range */ #define TA_MIN 0 @@ -51,12 +52,12 @@ int16_t delta_ta = toa256/256; if (toa256 >= 0) { - if ((toa256 - (256 * delta_ta)) > TOA256_9OPERCENT) + if ((toa256 - (256 * delta_ta)) > TOA256_THRESH) delta_ta++; if (delta_ta > TA_MAX_INC_STEP) delta_ta = TA_MAX_INC_STEP; } else { - if ((toa256 - (256 * delta_ta)) < -TOA256_9OPERCENT) + if ((toa256 - (256 * delta_ta)) < -TOA256_THRESH) delta_ta--; if (delta_ta < -TA_MAX_DEC_STEP) delta_ta = -TA_MAX_DEC_STEP; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I4c5825df4291d3851a113027abf7566de343a190 Gerrit-Change-Number: 25443 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:03:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:03:26 +0000 Subject: Change in osmo-bts[master]: Power Control Loop: Set P_CON_INTERVAL to 1 by default In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25445 ) Change subject: Power Control Loop: Set P_CON_INTERVAL to 1 by default ...................................................................... Power Control Loop: Set P_CON_INTERVAL to 1 by default TS 45.008 section 4.7.1: """ Upon receipt of a command from an SACCH to change its power level on the corresponding uplink channel, the MS shall change to the new level at a rate of one nominal 2 dB power control step every 60 ms (13 TDMA frames), i.e. a range change of 15 steps should take about 900 ms. The change shall commence at the first TDMA frame belonging to the next reporting period (as specified in subclause 8.4). The MS shall change the power one nominal 2 dB step at a time, at a rate of one step every 60 ms following the initial change, irrespective of whether actual transmission takes place or not. """ Since the reported MS_PWR in L1 SACCH Header is, according to specs, the one used for the last block of the previous SACCH period, it becomes clear the first SACCH block after a requested MS Power Level change by the network may contain mismatches between the announced MS_PWR by the MS and the measured Rxlev/RxQual. Hence, let's better use a P_CON_INTERVAL of 1 which retriggers the MS Power Control Loop every second SACCH block. Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Related: SYS#5371 --- M src/common/gsm_data.c M tests/power/bs_power_loop_test.c M tests/power/ms_power_loop_test.c 3 files changed, 14 insertions(+), 3 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index 76292f7..ee6e693 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -504,6 +504,9 @@ /* Default MS/BS Power Control parameters (see 3GPP TS 45.008, table A.1) */ const struct gsm_power_ctrl_params power_ctrl_params_def = { + + .ctrl_interval = 1, /* Trigger loop every second SACCH block. TS 45.008 sec 4.7.1 */ + /* Power increasing/reducing step size (optimal defaults) */ .inc_step_size_db = 4, /* quickly increase MS/BS power */ .red_step_size_db = 2, /* slowly decrease MS/BS power */ diff --git a/tests/power/bs_power_loop_test.c b/tests/power/bs_power_loop_test.c index 53fdbba..6b67ba2 100644 --- a/tests/power/bs_power_loop_test.c +++ b/tests/power/bs_power_loop_test.c @@ -112,6 +112,14 @@ g_bts->band = GSM_BAND_900; g_bts->c0 = g_trx; + /* Init defaultBS power control parameters, enable dynamic power control */ + struct gsm_power_ctrl_params *params = &g_trx->ts[0].lchan[0].bs_dpc_params; + g_trx->ts[0].lchan[0].bs_power_ctrl.dpc_params = params; + *params = power_ctrl_params_def; + + /* Disable loop SACCH block skip by default: */ + params->ctrl_interval = 0; + printf("\nStarting test case '%s'\n", name); } @@ -219,9 +227,6 @@ struct gsm_lchan *lchan = &g_trx->ts[0].lchan[0]; struct gsm_power_ctrl_params *params = &lchan->bs_dpc_params; - /* Default BS power control parameters */ - memcpy(params, &power_ctrl_params_def, sizeof(*params)); - /* No RxLev hysteresis: lower == upper */ params->rxlev_meas.lower_thresh = PWR_TEST_RXLEV_TARGET; params->rxlev_meas.upper_thresh = PWR_TEST_RXLEV_TARGET; diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 5f83329..559eacc 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -59,6 +59,9 @@ g_trx->ts[0].lchan[0].ms_power_ctrl.dpc_params = params; *params = power_ctrl_params_def; + /* Disable loop SACCH block skip by default: */ + params->ctrl_interval = 0; + /* Disable RxLev pre-processing and hysteresis by default */ struct gsm_power_ctrl_meas_params *mp = ¶ms->rxlev_meas; mp->lower_thresh = mp->upper_thresh = PWR_TEST_RXLEV_TARGET; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If6cb8945645a2031f2b2ee65d9b9f51e75cd9af1 Gerrit-Change-Number: 25445 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:03:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:03:26 +0000 Subject: Change in osmo-bts[master]: Support configuring TA loop SACCH block rate In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25436 ) Change subject: Support configuring TA loop SACCH block rate ...................................................................... Support configuring TA loop SACCH block rate Similar to what is already provided for power control loops. However, there's no existing way to communicate TA control parameters from the BSC to the BTS, so implement them locally in BTS vty. Related: SYS#5371 Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b --- M include/osmo-bts/bts_trx.h M include/osmo-bts/gsm_data.h M src/common/ta_control.c M src/common/vty.c M tests/osmo-bts.vty M tests/ta_control/ta_control_test.c 6 files changed, 36 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/include/osmo-bts/bts_trx.h b/include/osmo-bts/bts_trx.h index f033573..e1959c8 100644 --- a/include/osmo-bts/bts_trx.h +++ b/include/osmo-bts/bts_trx.h @@ -30,6 +30,7 @@ uint8_t max_power_backoff_8psk; /* in actual dB OC-2G only */ uint8_t c0_idle_power_red; /* in actual dB OC-2G only */ + uint8_t ta_ctrl_interval; /* 1 step is 2 SACCH periods */ struct trx_power_params power_params; struct gsm_power_ctrl_params *bs_dpc_params; /* BS Dynamic Power Control */ diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 0869426..9fe68d6 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -255,6 +255,8 @@ }; struct lchan_ta_ctrl_state { + /* Number of SACCH blocks to skip */ + int skip_block_num; /* Currently requested TA */ uint8_t current; }; diff --git a/src/common/ta_control.c b/src/common/ta_control.c index fd49d60..025699c 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -23,6 +23,7 @@ /* Related specs: 3GPP TS 45.010 sections 5.5, 5.6 */ #include +#include #include /* 3GPP TS 45.010 sec 5.6.3 Delay assessment error: @@ -48,7 +49,16 @@ int16_t new_ta; /* Shall we skip current block based on configured interval? */ - /*TODO: implement P_CON_INTERVAL for TA loop */ + /* TA control interval: how many blocks do we skip? */ + if (lchan->ta_ctrl.skip_block_num-- > 0) + return; + + /* Reset the number of SACCH blocks to be skipped: + * ctrl_interval=0 => 0 blocks to skip, + * ctrl_interval=1 => 1 blocks to skip, + * ctrl_interval=2 => 3 blocks to skip, + * so basically ctrl_interval * 2 - 1. */ + lchan->ta_ctrl.skip_block_num = lchan->ts->trx->ta_ctrl_interval * 2 - 1; int16_t delta_ta = toa256/256; if (toa256 >= 0) { diff --git a/src/common/vty.c b/src/common/vty.c index 62e2d70..f99881a 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -370,6 +370,8 @@ vty_out(vty, " ms-power-control %s%s", trx->ms_pwr_ctl_soft ? "osmo" : "dsp", VTY_NEWLINE); + vty_out(vty, " ta-control interval %u%s", + trx->ta_ctrl_interval, VTY_NEWLINE); vty_out(vty, " phy %u instance %u%s", pinst->phy_link->num, pinst->num, VTY_NEWLINE); @@ -1009,6 +1011,19 @@ return CMD_SUCCESS; } +DEFUN(cfg_ta_ctrl_interval, cfg_ta_ctrl_interval_cmd, + "ta-control interval <0-31>", + "Timing Advance Control Parameters\n" + "Set TA control loop interval\n" + "As in P_CON_INTERVAL, in units of 2 SACCH periods (0.96 seconds) (default=0, every SACCH block)\n") +{ + struct gsm_bts_trx *trx = vty->index; + + trx->ta_ctrl_interval = atoi(argv[0]); + + return CMD_SUCCESS; +} + DEFUN(cfg_trx_phy, cfg_trx_phy_cmd, "phy <0-255> instance <0-255>", "Configure PHY Link+Instance for this TRX\n" @@ -2487,6 +2502,7 @@ install_element(TRX_NODE, &cfg_trx_pr_step_size_cmd); install_element(TRX_NODE, &cfg_trx_pr_step_interval_cmd); install_element(TRX_NODE, &cfg_trx_ms_power_control_cmd); + install_element(TRX_NODE, &cfg_ta_ctrl_interval_cmd); install_element(TRX_NODE, &cfg_trx_phy_cmd); install_element(ENABLE_NODE, &bts_t_t_l_jitter_buf_cmd); diff --git a/tests/osmo-bts.vty b/tests/osmo-bts.vty index 4873030..fb74747 100644 --- a/tests/osmo-bts.vty +++ b/tests/osmo-bts.vty @@ -284,6 +284,7 @@ power-ramp step-size <1-100000> (dB|mdB) power-ramp step-interval <1-100> ms-power-control (dsp|osmo) + ta-control interval <0-31> phy <0-255> instance <0-255> ... OsmoBTS(trx)# ? @@ -291,5 +292,6 @@ user-gain Inform BTS about additional, user-provided gain or attenuation at TRX output power-ramp Power-Ramp settings ms-power-control Mobile Station Power Level Control + ta-control Timing Advance Control Parameters phy Configure PHY Link+Instance for this TRX ... diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 200fd31..253491a 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -26,10 +26,13 @@ #include #include #include +#include void lchan_ms_ta_ctrl_test(int16_t toa256_start, unsigned int steps) { - struct gsm_lchan lchan = { }; + struct gsm_bts_trx trx = { }; + struct gsm_bts_trx_ts ts = { .trx = &trx }; + struct gsm_lchan lchan = { .ts = &ts }; unsigned int i; uint8_t rqd_ta_after; uint8_t rqd_ta_before; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I9fa71f836bb9a79b0ef2567bfcfdf38ff217840b Gerrit-Change-Number: 25436 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:09:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 14 Sep 2021 10:09:26 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 to look at the new patch set (#2). Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... msc_vlr_test: remove DLMGCP log messages from unit test output The log output of libosmo-mgcp-client has changed. This change causes the unit tests to fail because the log output does not match anymore. Lets disable the DLMGCP log output since it is of minor importance for VLR testing anyway. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 13 files changed, 1 insertion(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/49/25449/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:11:26 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 14 Sep 2021 10:11:26 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 2: > Patch Set 1: Code-Review-1 > > I think we shouldn't store logging from library here. Tests checking library output should be done in library itself. Let's better disable the category completely in these tests. Then osmo-msc unit tests from master work with both new and older releases of the lib just fine. Sounds reasonable. This testsuite does not focus on MGCP anyway, so yes, disabling the output makes sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 10:11: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 Sep 14 10:13:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:13:41 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 10:13:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 10:28:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:28:29 +0000 Subject: Change in osmo-bts[master]: abis: Clear code and drop code not executed References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25451 ) Change subject: abis: Clear code and drop code not executed ...................................................................... abis: Clear code and drop code not executed abis_init() sets "g_bts = bts;", hence bts object is the same as g_bts (since we only have 1 BTS object in osmo-bts). As a result, dropping checking first bts->... and later g_bts->... makes no sense: the later condition will always be false. Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d --- M src/common/abis.c 1 file changed, 2 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/51/25451/1 diff --git a/src/common/abis.c b/src/common/abis.c index 3325fab..7503798 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -102,18 +102,12 @@ LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " "If this situation persists, please check your BTS and BSC configuration files for errors. " "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", - (uint64_t) (now.tv_sec - g_bts->oml_conn_established_timestamp.tv_sec)); + (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); } bts->oml_link = NULL; oml_rsl_was_connected = true; } - memset(&g_bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); - - if (g_bts->osmo_link) { - e1inp_sign_link_destroy(g_bts->osmo_link); - g_bts->osmo_link = NULL; - oml_rsl_was_connected = true; - } + memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); /* Then iterate over the RSL signalling links */ llist_for_each_entry(trx, &bts->trx_list, list) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d Gerrit-Change-Number: 25451 Gerrit-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 Sep 14 10:51:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:51:04 +0000 Subject: Change in osmo-bts[master]: abis.h: Drop unused state References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25452 ) Change subject: abis.h: Drop unused state ...................................................................... abis.h: Drop unused state Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 --- M include/osmo-bts/abis.h 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/52/25452/1 diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index 8963c3c..158868d 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -11,7 +11,6 @@ enum { LINK_STATE_IDLE = 0, - LINK_STATE_RETRYING, LINK_STATE_CONNECTING, LINK_STATE_CONNECT, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 Gerrit-Change-Number: 25452 Gerrit-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 Sep 14 10:53:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:53:51 +0000 Subject: Change in osmo-bts[master]: abis.h: Drop unused state In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/25452 ) Change subject: abis.h: Drop unused state ...................................................................... abis.h: Drop unused state Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 --- M include/osmo-bts/abis.h 1 file changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/52/25452/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 Gerrit-Change-Number: 25452 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 Sep 14 10:54:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:54:29 +0000 Subject: Change in osmo-bts[master]: abis.h: Drop unused state In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/c/osmo-bts/+/25452 ) Change subject: abis.h: Drop unused state ...................................................................... abis.h: Drop unused state Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 --- M include/osmo-bts/abis.h 1 file changed, 0 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/52/25452/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 Gerrit-Change-Number: 25452 Gerrit-PatchSet: 3 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 Sep 14 10:58:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 10:58:28 +0000 Subject: Change in osmo-bts[master]: abis.c: Rearrange code to follow logic state order References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25453 ) Change subject: abis.c: Rearrange code to follow logic state order ...................................................................... abis.c: Rearrange code to follow logic state order CONNECTING state comes first in logical order of states (as properly seen in enum of states), however, the FSM struct definition and state action functions are swapped. Let's put them in order. Change-Id: I0cae561926b460dc5882390db969b7c925903e5d --- M src/common/abis.c 1 file changed, 55 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/53/25453/1 diff --git a/src/common/abis.c b/src/common/abis.c index 7503798..db0a648 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,53 +81,6 @@ int line_ctr; }; -static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) -{ - struct abis_link_fsm_priv *priv = fi->priv; - struct gsm_bts *bts = priv->bts; - struct gsm_bts_trx *trx; - bool oml_rsl_was_connected = false; - - OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); - - /* First remove the OML signalling link */ - if (bts->oml_link) { - struct timespec now; - - e1inp_sign_link_destroy(bts->oml_link); - - /* Log a special notice if the OML connection was dropped relatively quickly. */ - if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && - bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { - LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " - "If this situation persists, please check your BTS and BSC configuration files for errors. " - "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", - (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); - } - bts->oml_link = NULL; - oml_rsl_was_connected = true; - } - memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); - - /* Then iterate over the RSL signalling links */ - llist_for_each_entry(trx, &bts->trx_list, list) { - if (trx->rsl_link) { - e1inp_sign_link_destroy(trx->rsl_link); - trx->rsl_link = NULL; - oml_rsl_was_connected = true; - } - } - - /* Note: if there was an OML or RSL connection present (the BTS was connected to a BSC). Then we will not try - * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states - * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host - * to restart osmo-bts. */ - if (oml_rsl_was_connected) - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); - else - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); -} - static void abis_link_connecting_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct e1inp_line *line; @@ -186,6 +139,53 @@ osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); } +static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct abis_link_fsm_priv *priv = fi->priv; + struct gsm_bts *bts = priv->bts; + struct gsm_bts_trx *trx; + bool oml_rsl_was_connected = false; + + OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); + + /* First remove the OML signalling link */ + if (bts->oml_link) { + struct timespec now; + + e1inp_sign_link_destroy(bts->oml_link); + + /* Log a special notice if the OML connection was dropped relatively quickly. */ + if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && + bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { + LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " + "If this situation persists, please check your BTS and BSC configuration files for errors. " + "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", + (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); + } + bts->oml_link = NULL; + oml_rsl_was_connected = true; + } + memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); + + /* Then iterate over the RSL signalling links */ + llist_for_each_entry(trx, &bts->trx_list, list) { + if (trx->rsl_link) { + e1inp_sign_link_destroy(trx->rsl_link); + trx->rsl_link = NULL; + oml_rsl_was_connected = true; + } + } + + /* Note: if there was an OML or RSL connection present (the BTS was connected to a BSC). Then we will not try + * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states + * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host + * to restart osmo-bts. */ + if (oml_rsl_was_connected) + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); + else + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); +} + static void abis_link_failed_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct abis_link_fsm_priv *priv = fi->priv; @@ -215,6 +215,14 @@ } static struct osmo_fsm_state abis_link_fsm_states[] = { + [ABIS_LINK_ST_CONNECTING] = { + .name = "CONNECTING", + .out_state_mask = + S(ABIS_LINK_ST_CONNECTING) | + S(ABIS_LINK_ST_CONNECTED) | + S(ABIS_LINK_ST_FAILED), + .onenter = abis_link_connecting_onenter, + }, [ABIS_LINK_ST_CONNECTED] = { .name = "CONNECTED", .in_event_mask = @@ -224,14 +232,6 @@ S(ABIS_LINK_ST_FAILED), .action = abis_link_connected, }, - [ABIS_LINK_ST_CONNECTING] = { - .name = "CONNECTING", - .out_state_mask = - S(ABIS_LINK_ST_CONNECTING) | - S(ABIS_LINK_ST_CONNECTED) | - S(ABIS_LINK_ST_FAILED), - .onenter = abis_link_connecting_onenter, - }, [ABIS_LINK_ST_FAILED] = { .name = "FAILED", .onenter = abis_link_failed_onenter, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cae561926b460dc5882390db969b7c925903e5d Gerrit-Change-Number: 25453 Gerrit-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 Sep 14 12:03:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 12:03:55 +0000 Subject: Change in osmo-mgw[master]: Fix attribute parsing on gcc 11.1.0 References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25454 ) Change subject: Fix attribute parsing on gcc 11.1.0 ...................................................................... Fix attribute parsing on gcc 11.1.0 Fixes following compilation error: "osmo-mgw/src/libosmo-mgcp/mgcp_stat.c:39:1: error: ?integer? attribute directive ignored" Fixes: f936e10f07b7a55d53a6f426b80364f6d368c5a0 Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 --- M src/libosmo-mgcp/mgcp_stat.c 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/54/25454/1 diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 357b593..948d729 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -32,6 +32,9 @@ /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ #if defined(__has_attribute) #if __has_attribute(no_sanitize) +/* GCC 11.1.0 throws error: "error: 'integer' attribute directive ignored" */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wattributes" __attribute__((no_sanitize("integer"))) #endif #endif @@ -62,6 +65,11 @@ *loss = INT_MAX; } } +#if defined(__has_attribute) +#if __has_attribute(no_sanitize) +#pragma GCC diagnostic pop +#endif +#endif /* Helper function for mgcp_format_stats_rtp() to calculate jitter */ uint32_t calc_jitter(struct mgcp_rtp_state *state) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Gerrit-Change-Number: 25454 Gerrit-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 Sep 14 12:09:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 12:09:21 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 2: Code-Review+2 Merging this right now as it's breaking osmo-msc builds. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 12:09: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 Sep 14 12:09:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 12:09:23 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... msc_vlr_test: remove DLMGCP log messages from unit test output The log output of libosmo-mgcp-client has changed. This change causes the unit tests to fail because the log output does not match anymore. Lets disable the DLMGCP log output since it is of minor importance for VLR testing anyway. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 13 files changed, 1 insertion(+), 12 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index c2049d9..be28348 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_auth_use_twice_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index 35d0c98..ad2f8c7 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_call_mo - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 042bfca..648ad3f 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_gsm_authen - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 061955e..65553d7 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ciph - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index b0b9bb0..b923865 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_hlr_rej_auth_info_unknown_imsi - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 788c326..6a4daa5 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_hlr_timeout_lu_auth_info - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ee2139..5ba3a8f 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ms_timeout_lu_auth_resp - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 6a83209..1cc55de 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_no_authen - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 4d32255..67b4819 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_reject_2nd_conn - Location Update Request on one connection MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index a1ff24b..e649325 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_cm_service_without_lu - CM Service Request without a prior Location Updating MSC <--GERAN-A-- MS: GSM48_MT_MM_CM_SERV_REQ diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index 41318c4..8a1bd82 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index a131ce3..76f822f 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_umts_authen_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index 56f3684..102fba7 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1194,6 +1194,7 @@ log_set_print_category(osmo_stderr_target, 1); log_set_print_category_hex(osmo_stderr_target, 0); log_set_category_filter(osmo_stderr_target, DLSMS, 1, LOGL_DEBUG); + log_set_category_filter(osmo_stderr_target, DLMGCP, 0, LOGL_NOTICE); if (cmdline_opts.verbose) { log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 2 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 Tue Sep 14 13:42:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 13:42:15 +0000 Subject: Change in osmo-bts[master]: abis.c: Convert early return to assert() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25455 ) Change subject: abis.c: Convert early return to assert() ...................................................................... abis.c: Convert early return to assert() This should simply not happen. If other event is received, something is terribly wrong, so we should exit immediately instead of silently failing. Change-Id: I5f4953be735f526bb8b926979233b3c26ba67ce9 --- M src/common/abis.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/55/25455/1 diff --git a/src/common/abis.c b/src/common/abis.c index db0a648..d739b3a 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -201,8 +201,7 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; - if (event != ABIS_LINK_EV_VTY_RM_ADDR) - return; + OSMO_ASSERT(event == ABIS_LINK_EV_VTY_RM_ADDR); if (priv->bsc_oml_host == data) { if (llist_count(&bts->bsc_oml_hosts) <= 1) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f4953be735f526bb8b926979233b3c26ba67ce9 Gerrit-Change-Number: 25455 Gerrit-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 Sep 14 15:31:19 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 15:31:19 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... Patch Set 15: (2 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/25429/12/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25429/12/src/libosmo-mgcp/mgcp_endp.c at 194 PS12, Line 194: * (epname) */ > this is now public, so the comment above should be converted into doxygen. [?] Everything has a mgcp_endp prefix, so I decided to just continue like this. https://gerrit.osmocom.org/c/osmo-mgw/+/25429/12/src/libosmo-mgcp/mgcp_endp.c at 223 PS12, Line 223: * return NULL */ > Also needs doxygen comments. [?] done. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 15:31:19 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 15:42:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 14 Sep 2021 15:42:06 +0000 Subject: Change in osmo-bsc[master]: doc/mgwpool: update documentation In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25448 ) Change subject: doc/mgwpool: update documentation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3026e027bba1a9a12ceca64e96df993b5957cb1d Gerrit-Change-Number: 25448 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 15:42:06 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 17:40:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 17:40:28 +0000 Subject: Change in osmo-bts[master]: cosmetic: fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25456 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: I0e4fdad66c0bad849a7b960cf78f9f45b56fcb95 --- M src/common/abis.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/56/25456/1 diff --git a/src/common/abis.c b/src/common/abis.c index 7503798..fc87739 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -192,7 +192,7 @@ struct gsm_bts *bts = priv->bts; /* None of the configured BSCs was reachable or there was an existing - * OML/RSL connection that beoke. Initiate BTS process shut down now. */ + * OML/RSL connection that broke. Initiate BTS process shut down now. */ bts_model_abis_close(bts); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0e4fdad66c0bad849a7b960cf78f9f45b56fcb95 Gerrit-Change-Number: 25456 Gerrit-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 Sep 14 17:40:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 17:40:29 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... abis.c: Transition to CONNECTED state only when OML link is up This clarifies the different states and transitions between them: OML LINK UP: CONNECTING->CONNECTED ANY LINK DOWN: CONNECTING->CONNECTING, CONNECTED->FAILED In follow up commits, support to reconnect instead of exit after the BTS has already connected will be added, so only the last transition needs to be changed. Related: SYS#4971 Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 80 insertions(+), 49 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/57/25457/1 diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index b05461b..1939faf 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -7,6 +7,7 @@ #include enum abis_link_fsm_event { + ABIS_LINK_EV_SIGN_LINK_OML_UP, ABIS_LINK_EV_SIGN_LINK_DOWN, ABIS_LINK_EV_VTY_RM_ADDR, }; diff --git a/src/common/abis.c b/src/common/abis.c index e82ac96..551670c 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -63,14 +63,15 @@ #define S(x) (1 << (x)) enum abis_link_fsm_state { - ABIS_LINK_ST_CONNECTING, - ABIS_LINK_ST_CONNECTED, - ABIS_LINK_ST_FAILED, + ABIS_LINK_ST_CONNECTING, /* OML link has not yet been established */ + ABIS_LINK_ST_CONNECTED, /* OML link is established, RSL links may be established or not */ + ABIS_LINK_ST_FAILED, /* There used to be an active OML connection but it became broken */ }; static const struct value_string abis_link_fsm_event_names[] = { - OSMO_VALUE_STRING(ABIS_LINK_EV_SIGN_LINK_DOWN), - OSMO_VALUE_STRING(ABIS_LINK_EV_VTY_RM_ADDR), + { ABIS_LINK_EV_SIGN_LINK_OML_UP, "SIGN_LINK_OML_UP", }, + { ABIS_LINK_EV_SIGN_LINK_DOWN, "SIGN_LINK_DOWN" }, + { ABIS_LINK_EV_VTY_RM_ADDR, "VTY_RM_ADDR" }, {} }; @@ -81,6 +82,39 @@ int line_ctr; }; +static void reset_oml_link(struct gsm_bts *bts) +{ + if (bts->oml_link) { + struct timespec now; + + e1inp_sign_link_destroy(bts->oml_link); + + /* Log a special notice if the OML connection was dropped relatively quickly. */ + if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && + bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { + LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " + "If this situation persists, please check your BTS and BSC configuration files for errors. " + "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", + (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); + } + bts->oml_link = NULL; + } + memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); +} + +static void drain_oml_queue(struct gsm_bts *bts) +{ + struct msgb *msg, *msg2; + + llist_for_each_entry_safe(msg, msg2, &bts->oml_queue, list) { + /* osmo-bts uses msg->trx internally, but libosmo-abis uses + * the signalling link at msg->dst */ + llist_del(&msg->list); + msg->dst = bts->oml_link; + abis_sendmsg(msg); + } +} + static void abis_link_connecting_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct e1inp_line *line; @@ -135,8 +169,32 @@ return; } - /* The TCP connection to the BSC is now in progress. */ - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); + /* The TCP connection to the BSC is now in progress. + * Wait for OML Link UP to transition to CONNECTED. */ +} + +static void abis_link_connecting(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct abis_link_fsm_priv *priv = fi->priv; + struct gsm_bts *bts = priv->bts; + + switch (event) { + case ABIS_LINK_EV_SIGN_LINK_OML_UP: + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); + break; + case ABIS_LINK_EV_SIGN_LINK_DOWN: + reset_oml_link(bts); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + break; + default: + OSMO_ASSERT(0); + } +} + +static void abis_link_connected_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + drain_oml_queue(g_bts); + bts_link_estab(g_bts); } static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -144,35 +202,16 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; struct gsm_bts_trx *trx; - bool oml_rsl_was_connected = false; - OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); /* First remove the OML signalling link */ - if (bts->oml_link) { - struct timespec now; - - e1inp_sign_link_destroy(bts->oml_link); - - /* Log a special notice if the OML connection was dropped relatively quickly. */ - if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && - bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { - LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " - "If this situation persists, please check your BTS and BSC configuration files for errors. " - "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", - (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); - } - bts->oml_link = NULL; - oml_rsl_was_connected = true; - } - memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); + reset_oml_link(bts); /* Then iterate over the RSL signalling links */ llist_for_each_entry(trx, &bts->trx_list, list) { if (trx->rsl_link) { e1inp_sign_link_destroy(trx->rsl_link); trx->rsl_link = NULL; - oml_rsl_was_connected = true; } } @@ -180,10 +219,7 @@ * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host * to restart osmo-bts. */ - if (oml_rsl_was_connected) - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); - else - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); } static void abis_link_failed_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -216,19 +252,23 @@ static struct osmo_fsm_state abis_link_fsm_states[] = { [ABIS_LINK_ST_CONNECTING] = { .name = "CONNECTING", + .in_event_mask = + S(ABIS_LINK_EV_SIGN_LINK_OML_UP) | + S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = S(ABIS_LINK_ST_CONNECTING) | S(ABIS_LINK_ST_CONNECTED) | S(ABIS_LINK_ST_FAILED), .onenter = abis_link_connecting_onenter, + .action = abis_link_connecting, }, [ABIS_LINK_ST_CONNECTED] = { .name = "CONNECTED", .in_event_mask = S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = - S(ABIS_LINK_ST_CONNECTING) | S(ABIS_LINK_ST_FAILED), + .onenter = abis_link_connected_onenter, .action = abis_link_connected, }, [ABIS_LINK_ST_FAILED] = { @@ -262,19 +302,6 @@ } } -static void drain_oml_queue(struct gsm_bts *bts) -{ - struct msgb *msg, *msg2; - - llist_for_each_entry_safe(msg, msg2, &bts->oml_queue, list) { - /* osmo-bts uses msg->trx internally, but libosmo-abis uses - * the signalling link at msg->dst */ - llist_del(&msg->list); - msg->dst = bts->oml_link; - abis_sendmsg(msg); - } -} - int abis_bts_rsl_sendmsg(struct msgb *msg) { OSMO_ASSERT(msg->trx); @@ -309,8 +336,7 @@ sizeof(g_bts->oml_conn_established_timestamp)); g_bts->osmo_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_OSMO, g_bts->c0, IPAC_PROTO_OSMO, 0); - drain_oml_queue(g_bts); - bts_link_estab(g_bts); + osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_OML_UP, NULL); return g_bts->oml_link; case E1INP_SIGN_RSL: @@ -446,7 +472,6 @@ return -EINVAL; } - OSMO_ASSERT(osmo_fsm_register(&abis_link_fsm) == 0); bts->abis_link_fi = osmo_fsm_inst_alloc(&abis_link_fsm, bts, NULL, LOGL_DEBUG, "abis_link"); OSMO_ASSERT(bts->abis_link_fi); @@ -457,7 +482,12 @@ abis_link_fsm_priv->model_name = model_name; bts->abis_link_fi->priv = abis_link_fsm_priv; - osmo_fsm_inst_state_chg_ms(bts->abis_link_fi, ABIS_LINK_ST_CONNECTING, 1, 0); + osmo_fsm_inst_state_chg(bts->abis_link_fi, ABIS_LINK_ST_CONNECTING, 0, 0); return 0; } + +static __attribute__((constructor)) void abis_link_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&abis_link_fsm) == 0); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-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 Sep 14 17:40:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 17:40:29 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... abis.c: Fix mess with priv->bsc_oml_host The pointer was used as "struct bsc_oml_host" sometimes, and other times as "struct llist_head". It just worked because bsc_oml_host->list is the first item in the script. The code was really confusing, also because the bts list of items has a name really similar to the one currently assigned. Let's rename the currently assigned address to "current_bsc", store it always as "struct bsc_oml_host*" and finally use llist_entry helpers when needed. The related code is also moved to a helper function to enclose there the logic to get next BSC in list. This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address w This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address will be skipped. This could be considered a bug, but this situation is really special and anyway the entire logic will be changed in new commits where we'll keep reconnecting in loop without exiting when reaching the end of the list, so we are fine with it. Think of this commit as a preparation commit for next ones. Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 32 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/58/25458/1 diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index 1939faf..40707cd 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -9,7 +9,7 @@ enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_OML_UP, ABIS_LINK_EV_SIGN_LINK_DOWN, - ABIS_LINK_EV_VTY_RM_ADDR, + ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ }; void abis_init(struct gsm_bts *bts); diff --git a/src/common/abis.c b/src/common/abis.c index 551670c..1a7fb53 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -76,7 +76,7 @@ }; struct abis_link_fsm_priv { - struct llist_head *bsc_oml_host; + struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; int line_ctr; @@ -115,30 +115,45 @@ } } +static int pick_next_bsc(struct osmo_fsm_inst *fi) +{ + struct abis_link_fsm_priv *priv = fi->priv; + struct gsm_bts *bts = priv->bts; + struct bsc_oml_host *last; + + if (llist_empty(&bts->bsc_oml_hosts)) { + LOGPFSML(fi, LOGL_ERROR, "List of BSCs to connect to is empty!\n"); + return -1; + } + + last = (struct bsc_oml_host*)llist_last_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); + + if (!priv->current_bsc) /* Pick first one: */ + priv->current_bsc = (struct bsc_oml_host*)llist_first_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); + else if (priv->current_bsc != last) + priv->current_bsc = (struct bsc_oml_host*)llist_entry(priv->current_bsc->list.next, struct bsc_oml_host, list); + else + return -1; /* We are so far not starting over the list when we reach the list, but only exit */ + + return 0; +} + static void abis_link_connecting_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct e1inp_line *line; struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; - struct bsc_oml_host *bsc_oml_host; - if (priv->bsc_oml_host) { - /* Get a BSC host from the list and move the list head one position forward. */ - bsc_oml_host = (struct bsc_oml_host *)priv->bsc_oml_host; - if (priv->bsc_oml_host == llist_last(&bts->bsc_oml_hosts)) - priv->bsc_oml_host = NULL; - else - priv->bsc_oml_host = priv->bsc_oml_host->next; - } else { - LOGP(DABIS, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n"); + if (pick_next_bsc(fi) < 0) { + LOGPFSML(fi, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); return; } - LOGP(DABIS, LOGL_NOTICE, "A-bis connection establishment to BSC (%s) in progress...\n", bsc_oml_host->addr); + LOGP(DABIS, LOGL_NOTICE, "A-bis connection establishment to BSC (%s) in progress...\n", priv->current_bsc->addr); /* patch in various data from VTY and other sources */ - line_ops.cfg.ipa.addr = bsc_oml_host->addr; + line_ops.cfg.ipa.addr = priv->current_bsc->addr; osmo_get_macaddr(bts_dev_info.mac_addr, "eth0"); bts_dev_info.site_id = bts->ip_access.site_id; bts_dev_info.bts_id = bts->ip_access.bts_id; @@ -239,13 +254,11 @@ OSMO_ASSERT(event == ABIS_LINK_EV_VTY_RM_ADDR); - if (priv->bsc_oml_host == data) { + if (priv->current_bsc == data) { if (llist_count(&bts->bsc_oml_hosts) <= 1) - priv->bsc_oml_host = NULL; - else if (priv->bsc_oml_host == llist_last(&bts->bsc_oml_hosts)) - priv->bsc_oml_host = priv->bsc_oml_host->prev; + priv->current_bsc = NULL; else - priv->bsc_oml_host = priv->bsc_oml_host->next; + pick_next_bsc(fi); } } @@ -477,7 +490,6 @@ abis_link_fsm_priv = talloc_zero(bts->abis_link_fi, struct abis_link_fsm_priv); OSMO_ASSERT(abis_link_fsm_priv); - abis_link_fsm_priv->bsc_oml_host = bts->bsc_oml_hosts.next; abis_link_fsm_priv->bts = bts; abis_link_fsm_priv->model_name = model_name; bts->abis_link_fi->priv = abis_link_fsm_priv; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-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 Sep 14 17:40:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 14 Sep 2021 17:40:29 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... abis.c: Loop over list of BSCs until connection succeeds Do not exit if all BSCs in the list fail to connect, keep trying forever. This commit still doesn't change the logic after BTS has successfully connected to a BSC. In that situation, if the link goes down, BTS will exit in order to reset all state and let the user/system restart it. Related: SYS#4971 Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 --- M src/common/abis.c 1 file changed, 25 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/25459/1 diff --git a/src/common/abis.c b/src/common/abis.c index 1a7fb53..4d59e99 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -61,9 +61,11 @@ static struct ipaccess_unit bts_dev_info; #define S(x) (1 << (x)) +#define OML_RETRY_TIMER 5 enum abis_link_fsm_state { - ABIS_LINK_ST_CONNECTING, /* OML link has not yet been established */ + ABIS_LINK_ST_WAIT_RECONNECT, /* OML link has not yet been established */ + ABIS_LINK_ST_CONNECTING, /* OML link in process of been established */ ABIS_LINK_ST_CONNECTED, /* OML link is established, RSL links may be established or not */ ABIS_LINK_ST_FAILED, /* There used to be an active OML connection but it became broken */ }; @@ -128,12 +130,10 @@ last = (struct bsc_oml_host*)llist_last_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); - if (!priv->current_bsc) /* Pick first one: */ + if (!priv->current_bsc || priv->current_bsc == last) /* Pick first one (wrap around): */ priv->current_bsc = (struct bsc_oml_host*)llist_first_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); else if (priv->current_bsc != last) priv->current_bsc = (struct bsc_oml_host*)llist_entry(priv->current_bsc->list.next, struct bsc_oml_host, list); - else - return -1; /* We are so far not starting over the list when we reach the list, but only exit */ return 0; } @@ -199,7 +199,7 @@ break; case ABIS_LINK_EV_SIGN_LINK_DOWN: reset_oml_link(bts); - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); break; default: OSMO_ASSERT(0); @@ -262,14 +262,32 @@ } } +int abis_link_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch (fi->state) { + case ABIS_LINK_ST_WAIT_RECONNECT: + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + break; + default: + OSMO_ASSERT(0); + } + return 0; +} + + static struct osmo_fsm_state abis_link_fsm_states[] = { + [ABIS_LINK_ST_WAIT_RECONNECT] = { + .name = "WAIT_RECONNECT", + .out_state_mask = + S(ABIS_LINK_ST_CONNECTING), + }, [ABIS_LINK_ST_CONNECTING] = { .name = "CONNECTING", .in_event_mask = S(ABIS_LINK_EV_SIGN_LINK_OML_UP) | S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = - S(ABIS_LINK_ST_CONNECTING) | + S(ABIS_LINK_ST_WAIT_RECONNECT) | S(ABIS_LINK_ST_CONNECTED) | S(ABIS_LINK_ST_FAILED), .onenter = abis_link_connecting_onenter, @@ -298,6 +316,7 @@ .event_names = abis_link_fsm_event_names, .allstate_action = abis_link_allstate, .allstate_event_mask = S(ABIS_LINK_EV_VTY_RM_ADDR), + .timer_cb = abis_link_fsm_timer_cb, }; int abis_oml_sendmsg(struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-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 Sep 14 18:30:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:30:31 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 to look at the new patch set (#18). Change subject: add a lock-free bounded spsc interthread queue ...................................................................... add a lock-free bounded spsc interthread queue Not entirely wait-free: allows waiting on a fd, and in general fd notifications for poll-loop integration between threads. Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 --- A include/osmocom/mgcp/mgcp_threads_queue.h A src/libosmo-mgcp/mgcp_threads_queue.c 2 files changed, 220 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/31/25431/18 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 18 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 18:30:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:30:31 +0000 Subject: Change in osmo-mgw[master]: adjust mgcp response context In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 to look at the new patch set (#4). Change subject: adjust mgcp response context ...................................................................... adjust mgcp response context This patch also prepares for threading. Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 59 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/47/25447/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 Gerrit-Change-Number: 25447 Gerrit-PatchSet: 4 Gerrit-Owner: Hoernchen 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 Sep 14 18:30:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:30:31 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#25). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Depends: libosmocore Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,181 insertions(+), 354 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/25 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 25 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 18:52:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:52:09 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#26). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Depends: libosmocore Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,180 insertions(+), 354 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/26 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 26 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 18:52:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:52:09 +0000 Subject: Change in osmo-mgw[master]: add modified .clang-format References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25460 ) Change subject: add modified .clang-format ...................................................................... add modified .clang-format Adjusted ColumnLimit: 80 -> 120 Added ForEachMacros: - 'for_each_line' - 'for_each_non_empty_line' Change-Id: I080cf2d2437d0b8e6190fbd7c01af8cdc9420878 --- A .clang-format 1 file changed, 563 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/60/25460/1 diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..5d4791c --- /dev/null +++ b/.clang-format @@ -0,0 +1,563 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# clang-format configuration file. Intended for clang-format >= 4. +# +# For more information, see: +# +# Documentation/process/clang-format.rst +# https://clang.llvm.org/docs/ClangFormat.html +# https://clang.llvm.org/docs/ClangFormatStyleOptions.html +# +--- +AccessModifierOffset: -4 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +#AlignEscapedNewlines: Left # Unknown to clang-format-4.0 +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: false +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + #AfterExternBlock: false # Unknown to clang-format-5.0 + BeforeCatch: false + BeforeElse: false + IndentBraces: false + #SplitEmptyFunction: true # Unknown to clang-format-4.0 + #SplitEmptyRecord: true # Unknown to clang-format-4.0 + #SplitEmptyNamespace: true # Unknown to clang-format-4.0 +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Custom +#BreakBeforeInheritanceComma: false # Unknown to clang-format-4.0 +BreakBeforeTernaryOperators: false +BreakConstructorInitializersBeforeComma: false +#BreakConstructorInitializers: BeforeComma # Unknown to clang-format-4.0 +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: false +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +#CompactNamespaces: false # Unknown to clang-format-4.0 +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 8 +ContinuationIndentWidth: 8 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +#FixNamespaceComments: false # Unknown to clang-format-4.0 + +# Taken from: +# git grep -h '^#define [^[:space:]]*for_each[^[:space:]]*(' include/ \ +# | sed "s,^#define \([^[:space:]]*for_each[^[:space:]]*\)(.*$, - '\1'," \ +# | sort | uniq +ForEachMacros: + - 'apei_estatus_for_each_section' + - 'ata_for_each_dev' + - 'ata_for_each_link' + - '__ata_qc_for_each' + - 'ata_qc_for_each' + - 'ata_qc_for_each_raw' + - 'ata_qc_for_each_with_internal' + - 'ax25_for_each' + - 'ax25_uid_for_each' + - '__bio_for_each_bvec' + - 'bio_for_each_bvec' + - 'bio_for_each_bvec_all' + - 'bio_for_each_integrity_vec' + - '__bio_for_each_segment' + - 'bio_for_each_segment' + - 'bio_for_each_segment_all' + - 'bio_list_for_each' + - 'bip_for_each_vec' + - 'bitmap_for_each_clear_region' + - 'bitmap_for_each_set_region' + - 'blkg_for_each_descendant_post' + - 'blkg_for_each_descendant_pre' + - 'blk_queue_for_each_rl' + - 'bond_for_each_slave' + - 'bond_for_each_slave_rcu' + - 'bpf_for_each_spilled_reg' + - 'btree_for_each_safe128' + - 'btree_for_each_safe32' + - 'btree_for_each_safe64' + - 'btree_for_each_safel' + - 'card_for_each_dev' + - 'cgroup_taskset_for_each' + - 'cgroup_taskset_for_each_leader' + - 'cpufreq_for_each_entry' + - 'cpufreq_for_each_entry_idx' + - 'cpufreq_for_each_valid_entry' + - 'cpufreq_for_each_valid_entry_idx' + - 'css_for_each_child' + - 'css_for_each_descendant_post' + - 'css_for_each_descendant_pre' + - 'device_for_each_child_node' + - 'displayid_iter_for_each' + - 'dma_fence_chain_for_each' + - 'do_for_each_ftrace_op' + - 'drm_atomic_crtc_for_each_plane' + - 'drm_atomic_crtc_state_for_each_plane' + - 'drm_atomic_crtc_state_for_each_plane_state' + - 'drm_atomic_for_each_plane_damage' + - 'drm_client_for_each_connector_iter' + - 'drm_client_for_each_modeset' + - 'drm_connector_for_each_possible_encoder' + - 'drm_for_each_bridge_in_chain' + - 'drm_for_each_connector_iter' + - 'drm_for_each_crtc' + - 'drm_for_each_crtc_reverse' + - 'drm_for_each_encoder' + - 'drm_for_each_encoder_mask' + - 'drm_for_each_fb' + - 'drm_for_each_legacy_plane' + - 'drm_for_each_plane' + - 'drm_for_each_plane_mask' + - 'drm_for_each_privobj' + - 'drm_mm_for_each_hole' + - 'drm_mm_for_each_node' + - 'drm_mm_for_each_node_in_range' + - 'drm_mm_for_each_node_safe' + - 'flow_action_for_each' + - 'for_each_acpi_dev_match' + - 'for_each_active_dev_scope' + - 'for_each_active_drhd_unit' + - 'for_each_active_iommu' + - 'for_each_aggr_pgid' + - 'for_each_available_child_of_node' + - 'for_each_bio' + - 'for_each_board_func_rsrc' + - 'for_each_bvec' + - 'for_each_card_auxs' + - 'for_each_card_auxs_safe' + - 'for_each_card_components' + - 'for_each_card_dapms' + - 'for_each_card_pre_auxs' + - 'for_each_card_prelinks' + - 'for_each_card_rtds' + - 'for_each_card_rtds_safe' + - 'for_each_card_widgets' + - 'for_each_card_widgets_safe' + - 'for_each_cgroup_storage_type' + - 'for_each_child_of_node' + - 'for_each_clear_bit' + - 'for_each_clear_bit_from' + - 'for_each_cmsghdr' + - 'for_each_compatible_node' + - 'for_each_component_dais' + - 'for_each_component_dais_safe' + - 'for_each_comp_order' + - 'for_each_console' + - 'for_each_cpu' + - 'for_each_cpu_and' + - 'for_each_cpu_not' + - 'for_each_cpu_wrap' + - 'for_each_dapm_widgets' + - 'for_each_dev_addr' + - 'for_each_dev_scope' + - 'for_each_dma_cap_mask' + - 'for_each_dpcm_be' + - 'for_each_dpcm_be_rollback' + - 'for_each_dpcm_be_safe' + - 'for_each_dpcm_fe' + - 'for_each_drhd_unit' + - 'for_each_dss_dev' + - 'for_each_dtpm_table' + - 'for_each_efi_memory_desc' + - 'for_each_efi_memory_desc_in_map' + - 'for_each_element' + - 'for_each_element_extid' + - 'for_each_element_id' + - 'for_each_endpoint_of_node' + - 'for_each_evictable_lru' + - 'for_each_fib6_node_rt_rcu' + - 'for_each_fib6_walker_rt' + - 'for_each_free_mem_pfn_range_in_zone' + - 'for_each_free_mem_pfn_range_in_zone_from' + - 'for_each_free_mem_range' + - 'for_each_free_mem_range_reverse' + - 'for_each_func_rsrc' + - 'for_each_hstate' + - 'for_each_if' + - 'for_each_iommu' + - 'for_each_ip_tunnel_rcu' + - 'for_each_irq_nr' + - 'for_each_link_codecs' + - 'for_each_link_cpus' + - 'for_each_link_platforms' + - 'for_each_lru' + - 'for_each_matching_node' + - 'for_each_matching_node_and_match' + - 'for_each_member' + - 'for_each_memcg_cache_index' + - 'for_each_mem_pfn_range' + - '__for_each_mem_range' + - 'for_each_mem_range' + - '__for_each_mem_range_rev' + - 'for_each_mem_range_rev' + - 'for_each_mem_region' + - 'for_each_migratetype_order' + - 'for_each_msi_entry' + - 'for_each_msi_entry_safe' + - 'for_each_msi_vector' + - 'for_each_net' + - 'for_each_net_continue_reverse' + - 'for_each_netdev' + - 'for_each_netdev_continue' + - 'for_each_netdev_continue_rcu' + - 'for_each_netdev_continue_reverse' + - 'for_each_netdev_feature' + - 'for_each_netdev_in_bond_rcu' + - 'for_each_netdev_rcu' + - 'for_each_netdev_reverse' + - 'for_each_netdev_safe' + - 'for_each_net_rcu' + - 'for_each_new_connector_in_state' + - 'for_each_new_crtc_in_state' + - 'for_each_new_mst_mgr_in_state' + - 'for_each_new_plane_in_state' + - 'for_each_new_private_obj_in_state' + - 'for_each_node' + - 'for_each_node_by_name' + - 'for_each_node_by_type' + - 'for_each_node_mask' + - 'for_each_node_state' + - 'for_each_node_with_cpus' + - 'for_each_node_with_property' + - 'for_each_nonreserved_multicast_dest_pgid' + - 'for_each_of_allnodes' + - 'for_each_of_allnodes_from' + - 'for_each_of_cpu_node' + - 'for_each_of_pci_range' + - 'for_each_old_connector_in_state' + - 'for_each_old_crtc_in_state' + - 'for_each_old_mst_mgr_in_state' + - 'for_each_oldnew_connector_in_state' + - 'for_each_oldnew_crtc_in_state' + - 'for_each_oldnew_mst_mgr_in_state' + - 'for_each_oldnew_plane_in_state' + - 'for_each_oldnew_plane_in_state_reverse' + - 'for_each_oldnew_private_obj_in_state' + - 'for_each_old_plane_in_state' + - 'for_each_old_private_obj_in_state' + - 'for_each_online_cpu' + - 'for_each_online_node' + - 'for_each_online_pgdat' + - 'for_each_pci_bridge' + - 'for_each_pci_dev' + - 'for_each_pci_msi_entry' + - 'for_each_pcm_streams' + - 'for_each_physmem_range' + - 'for_each_populated_zone' + - 'for_each_possible_cpu' + - 'for_each_present_cpu' + - 'for_each_prime_number' + - 'for_each_prime_number_from' + - 'for_each_process' + - 'for_each_process_thread' + - 'for_each_prop_codec_conf' + - 'for_each_prop_dai_codec' + - 'for_each_prop_dai_cpu' + - 'for_each_prop_dlc_codecs' + - 'for_each_prop_dlc_cpus' + - 'for_each_prop_dlc_platforms' + - 'for_each_property_of_node' + - 'for_each_registered_fb' + - 'for_each_requested_gpio' + - 'for_each_requested_gpio_in_range' + - 'for_each_reserved_mem_range' + - 'for_each_reserved_mem_region' + - 'for_each_rtd_codec_dais' + - 'for_each_rtd_components' + - 'for_each_rtd_cpu_dais' + - 'for_each_rtd_dais' + - 'for_each_set_bit' + - 'for_each_set_bit_from' + - 'for_each_set_clump8' + - 'for_each_sg' + - 'for_each_sg_dma_page' + - 'for_each_sg_page' + - 'for_each_sgtable_dma_page' + - 'for_each_sgtable_dma_sg' + - 'for_each_sgtable_page' + - 'for_each_sgtable_sg' + - 'for_each_sibling_event' + - 'for_each_subelement' + - 'for_each_subelement_extid' + - 'for_each_subelement_id' + - '__for_each_thread' + - 'for_each_thread' + - 'for_each_unicast_dest_pgid' + - 'for_each_vsi' + - 'for_each_wakeup_source' + - 'for_each_zone' + - 'for_each_zone_zonelist' + - 'for_each_zone_zonelist_nodemask' + - 'fwnode_for_each_available_child_node' + - 'fwnode_for_each_child_node' + - 'fwnode_graph_for_each_endpoint' + - 'gadget_for_each_ep' + - 'genradix_for_each' + - 'genradix_for_each_from' + - 'hash_for_each' + - 'hash_for_each_possible' + - 'hash_for_each_possible_rcu' + - 'hash_for_each_possible_rcu_notrace' + - 'hash_for_each_possible_safe' + - 'hash_for_each_rcu' + - 'hash_for_each_safe' + - 'hctx_for_each_ctx' + - 'hlist_bl_for_each_entry' + - 'hlist_bl_for_each_entry_rcu' + - 'hlist_bl_for_each_entry_safe' + - 'hlist_for_each' + - 'hlist_for_each_entry' + - 'hlist_for_each_entry_continue' + - 'hlist_for_each_entry_continue_rcu' + - 'hlist_for_each_entry_continue_rcu_bh' + - 'hlist_for_each_entry_from' + - 'hlist_for_each_entry_from_rcu' + - 'hlist_for_each_entry_rcu' + - 'hlist_for_each_entry_rcu_bh' + - 'hlist_for_each_entry_rcu_notrace' + - 'hlist_for_each_entry_safe' + - 'hlist_for_each_entry_srcu' + - '__hlist_for_each_rcu' + - 'hlist_for_each_safe' + - 'hlist_nulls_for_each_entry' + - 'hlist_nulls_for_each_entry_from' + - 'hlist_nulls_for_each_entry_rcu' + - 'hlist_nulls_for_each_entry_safe' + - 'i3c_bus_for_each_i2cdev' + - 'i3c_bus_for_each_i3cdev' + - 'ide_host_for_each_port' + - 'ide_port_for_each_dev' + - 'ide_port_for_each_present_dev' + - 'idr_for_each_entry' + - 'idr_for_each_entry_continue' + - 'idr_for_each_entry_continue_ul' + - 'idr_for_each_entry_ul' + - 'in_dev_for_each_ifa_rcu' + - 'in_dev_for_each_ifa_rtnl' + - 'inet_bind_bucket_for_each' + - 'inet_lhash2_for_each_icsk_rcu' + - 'key_for_each' + - 'key_for_each_safe' + - 'klp_for_each_func' + - 'klp_for_each_func_safe' + - 'klp_for_each_func_static' + - 'klp_for_each_object' + - 'klp_for_each_object_safe' + - 'klp_for_each_object_static' + - 'kunit_suite_for_each_test_case' + - 'kvm_for_each_memslot' + - 'kvm_for_each_vcpu' + - 'list_for_each' + - 'list_for_each_codec' + - 'list_for_each_codec_safe' + - 'list_for_each_continue' + - 'list_for_each_entry' + - 'list_for_each_entry_continue' + - 'list_for_each_entry_continue_rcu' + - 'list_for_each_entry_continue_reverse' + - 'list_for_each_entry_from' + - 'list_for_each_entry_from_rcu' + - 'list_for_each_entry_from_reverse' + - 'list_for_each_entry_lockless' + - 'list_for_each_entry_rcu' + - 'list_for_each_entry_reverse' + - 'list_for_each_entry_safe' + - 'list_for_each_entry_safe_continue' + - 'list_for_each_entry_safe_from' + - 'list_for_each_entry_safe_reverse' + - 'list_for_each_entry_srcu' + - 'list_for_each_prev' + - 'list_for_each_prev_safe' + - 'list_for_each_safe' + - 'llist_for_each' + - 'llist_for_each_entry' + - 'llist_for_each_entry_safe' + - 'llist_for_each_safe' + - 'mci_for_each_dimm' + - 'media_device_for_each_entity' + - 'media_device_for_each_intf' + - 'media_device_for_each_link' + - 'media_device_for_each_pad' + - 'nanddev_io_for_each_page' + - 'netdev_for_each_lower_dev' + - 'netdev_for_each_lower_private' + - 'netdev_for_each_lower_private_rcu' + - 'netdev_for_each_mc_addr' + - 'netdev_for_each_uc_addr' + - 'netdev_for_each_upper_dev_rcu' + - 'netdev_hw_addr_list_for_each' + - 'nft_rule_for_each_expr' + - 'nla_for_each_attr' + - 'nla_for_each_nested' + - 'nlmsg_for_each_attr' + - 'nlmsg_for_each_msg' + - 'nr_neigh_for_each' + - 'nr_neigh_for_each_safe' + - 'nr_node_for_each' + - 'nr_node_for_each_safe' + - 'of_for_each_phandle' + - 'of_property_for_each_string' + - 'of_property_for_each_u32' + - 'pci_bus_for_each_resource' + - 'pcl_for_each_chunk' + - 'pcl_for_each_segment' + - 'pcm_for_each_format' + - 'ping_portaddr_for_each_entry' + - 'plist_for_each' + - 'plist_for_each_continue' + - 'plist_for_each_entry' + - 'plist_for_each_entry_continue' + - 'plist_for_each_entry_safe' + - 'plist_for_each_safe' + - 'pnp_for_each_card' + - 'pnp_for_each_dev' + - 'protocol_for_each_card' + - 'protocol_for_each_dev' + - 'queue_for_each_hw_ctx' + - 'radix_tree_for_each_slot' + - 'radix_tree_for_each_tagged' + - 'rb_for_each' + - 'rbtree_postorder_for_each_entry_safe' + - 'rdma_for_each_block' + - 'rdma_for_each_port' + - 'rdma_umem_for_each_dma_block' + - 'resource_list_for_each_entry' + - 'resource_list_for_each_entry_safe' + - 'rhl_for_each_entry_rcu' + - 'rhl_for_each_rcu' + - 'rht_for_each' + - 'rht_for_each_entry' + - 'rht_for_each_entry_from' + - 'rht_for_each_entry_rcu' + - 'rht_for_each_entry_rcu_from' + - 'rht_for_each_entry_safe' + - 'rht_for_each_from' + - 'rht_for_each_rcu' + - 'rht_for_each_rcu_from' + - '__rq_for_each_bio' + - 'rq_for_each_bvec' + - 'rq_for_each_segment' + - 'scsi_for_each_prot_sg' + - 'scsi_for_each_sg' + - 'sctp_for_each_hentry' + - 'sctp_skb_for_each' + - 'shdma_for_each_chan' + - '__shost_for_each_device' + - 'shost_for_each_device' + - 'sk_for_each' + - 'sk_for_each_bound' + - 'sk_for_each_entry_offset_rcu' + - 'sk_for_each_from' + - 'sk_for_each_rcu' + - 'sk_for_each_safe' + - 'sk_nulls_for_each' + - 'sk_nulls_for_each_from' + - 'sk_nulls_for_each_rcu' + - 'snd_array_for_each' + - 'snd_pcm_group_for_each_entry' + - 'snd_soc_dapm_widget_for_each_path' + - 'snd_soc_dapm_widget_for_each_path_safe' + - 'snd_soc_dapm_widget_for_each_sink_path' + - 'snd_soc_dapm_widget_for_each_source_path' + - 'tb_property_for_each' + - 'tcf_exts_for_each_action' + - 'udp_portaddr_for_each_entry' + - 'udp_portaddr_for_each_entry_rcu' + - 'usb_hub_for_each_child' + - 'v4l2_device_for_each_subdev' + - 'v4l2_m2m_for_each_dst_buf' + - 'v4l2_m2m_for_each_dst_buf_safe' + - 'v4l2_m2m_for_each_src_buf' + - 'v4l2_m2m_for_each_src_buf_safe' + - 'virtio_device_for_each_vq' + - 'while_for_each_ftrace_op' + - 'xa_for_each' + - 'xa_for_each_marked' + - 'xa_for_each_range' + - 'xa_for_each_start' + - 'xas_for_each' + - 'xas_for_each_conflict' + - 'xas_for_each_marked' + - 'xbc_array_for_each_value' + - 'xbc_for_each_key_value' + - 'xbc_node_for_each_array_value' + - 'xbc_node_for_each_child' + - 'xbc_node_for_each_key_value' + - 'zorro_for_each_dev' + - 'for_each_line' + - 'for_each_non_empty_line' + +#IncludeBlocks: Preserve # Unknown to clang-format-5.0 +IncludeCategories: + - Regex: '.*' + Priority: 1 +IncludeIsMainRegex: '(Test)?$' +IndentCaseLabels: false +#IndentPPDirectives: None # Unknown to clang-format-5.0 +IndentWidth: 8 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0 +ObjCBlockIndentWidth: 8 +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true + +# Taken from git's rules +#PenaltyBreakAssignment: 10 # Unknown to clang-format-4.0 +PenaltyBreakBeforeFirstCallParameter: 30 +PenaltyBreakComment: 10 +PenaltyBreakFirstLessLess: 0 +PenaltyBreakString: 10 +PenaltyExcessCharacter: 100 +PenaltyReturnTypeOnItsOwnLine: 60 + +PointerAlignment: Right +ReflowComments: false +SortIncludes: false +#SortUsingDeclarations: false # Unknown to clang-format-4.0 +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +#SpaceBeforeCtorInitializerColon: true # Unknown to clang-format-5.0 +#SpaceBeforeInheritanceColon: true # Unknown to clang-format-5.0 +SpaceBeforeParens: ControlStatements +#SpaceBeforeRangeBasedForLoopColon: true # Unknown to clang-format-5.0 +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp03 +TabWidth: 8 +UseTab: Always +... -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I080cf2d2437d0b8e6190fbd7c01af8cdc9420878 Gerrit-Change-Number: 25460 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 Tue Sep 14 18:53:40 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:53:40 +0000 Subject: Change in osmo-mgw[master]: endp: do not cache cfg pointer In-Reply-To: References: Message-ID: Hoernchen has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25428 ) Change subject: endp: do not cache cfg pointer ...................................................................... endp: do not cache cfg pointer There is no obvious reason why we would want to complicate the code by caching pointers, since pointer traversal is probably not a performance bottleneck, and if it is we should rather take a look at our dozens of linked lists first.. Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 --- M include/osmocom/mgcp/mgcp_endp.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_osmux.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_stat.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 10 files changed, 26 insertions(+), 33 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved pespin: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index f687bae..b8796c1 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -97,9 +97,6 @@ /*! List of struct mgcp_conn, of the connections active on this endpoint */ struct llist_head conns; - /*! Backpointer to the MGW configuration */ - struct mgcp_config *cfg; - /*! Backpointer to the trunk this endpoint belongs to */ struct mgcp_trunk *trunk; diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index ca12347..4acf18c 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -143,7 +143,7 @@ void mgcp_conn_watchdog_kick(struct mgcp_conn *conn) { - int timeout = conn->endp->cfg->conn_timeout; + int timeout = conn->endp->trunk->cfg->conn_timeout; if (!timeout) return; diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index 4fcddb8..19446ce 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -89,7 +89,6 @@ return NULL; INIT_LLIST_HEAD(&endp->conns); - endp->cfg = trunk->cfg; endp->trunk = trunk; switch (trunk->trunk_type) { diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 5249fef..2d275ec 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -112,7 +112,7 @@ char *bind_addr; /* Try probing the local IP-Address */ - if (endp->cfg->net_ports.bind_addr_probe && rem_addr_set) { + if (endp->trunk->cfg->net_ports.bind_addr_probe && rem_addr_set) { rc = osmo_sock_local_ip(addr, osmo_sockaddr_ntop(&conn->end.addr.u.sa, ipbuf)); if (rc < 0) LOGPCONN(conn->conn, DRTP, LOGL_ERROR, @@ -130,13 +130,13 @@ /* Check there is a bind IP for the RTP traffic configured, * if so, use that IP-Address */ bind_addr = conn->end.addr.u.sa.sa_family == AF_INET6 ? - endp->cfg->net_ports.bind_addr_v6 : - endp->cfg->net_ports.bind_addr_v4; + endp->trunk->cfg->net_ports.bind_addr_v6 : + endp->trunk->cfg->net_ports.bind_addr_v4; } else { /* Choose any of the bind addresses, preferring v6 over v4 */ - bind_addr = endp->cfg->net_ports.bind_addr_v6; + bind_addr = endp->trunk->cfg->net_ports.bind_addr_v6; if (!strlen(bind_addr)) - bind_addr = endp->cfg->net_ports.bind_addr_v4; + bind_addr = endp->trunk->cfg->net_ports.bind_addr_v4; } if (strlen(bind_addr)) { LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, @@ -146,7 +146,7 @@ /* No specific bind IP is configured for the RTP traffic, so * assume the IP where we listen for incoming MGCP messages * as bind IP */ - bind_addr = endp->cfg->source_addr; + bind_addr = endp->trunk->cfg->source_addr; LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "using mgcp bind ip as local rtp bind ip: %s\n", bind_addr); } @@ -1177,9 +1177,7 @@ do { /* Run transcoder */ - cont = endp->cfg->rtp_processing_cb(endp, rtp_end, - (char *)msgb_data(msg), &buflen, - RTP_BUF_SIZE); + cont = endp->trunk->cfg->rtp_processing_cb(endp, rtp_end, (char *)msgb_data(msg), &buflen, RTP_BUF_SIZE); if (cont < 0) break; @@ -1657,7 +1655,7 @@ osmo_fd_setup(&end->rtp, -1, OSMO_FD_READ, rtp_data_net, conn, 0); osmo_fd_setup(&end->rtcp, -1, OSMO_FD_READ, rtp_data_net, conn, 0); - return bind_rtp(endp->cfg, conn->end.local_addr, end, endp); + return bind_rtp(endp->trunk->cfg, conn->end.local_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 8f0a906..de19042 100644 --- a/src/libosmo-mgcp/mgcp_osmux.c +++ b/src/libosmo-mgcp/mgcp_osmux.c @@ -116,7 +116,7 @@ osmux_handle_alloc(struct mgcp_conn_rtp *conn, struct in_addr *addr, int rem_port) { struct osmux_handle *h; - struct mgcp_config *cfg = conn->conn->endp->cfg; + struct mgcp_config *cfg = conn->conn->endp->trunk->cfg; h = talloc_zero(osmux, struct osmux_handle); if (!h) @@ -460,7 +460,7 @@ */ struct in6_addr addr_unset = {}; static const uint32_t rtp_ssrc_winlen = UINT32_MAX / (OSMUX_CID_MAX + 1); - uint16_t osmux_dummy = endp->cfg->osmux_dummy; + uint16_t osmux_dummy = endp->trunk->cfg->osmux_dummy; /* Check if osmux is enabled for the specified connection */ if (conn->osmux.state != OSMUX_STATE_ACTIVATING) { diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 736b071..6341f07 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -144,7 +144,7 @@ static int setup_rtp_processing(struct mgcp_endpoint *endp, struct mgcp_conn_rtp *conn) { - struct mgcp_config *cfg = endp->cfg; + struct mgcp_config *cfg = endp->trunk->cfg; struct mgcp_conn_rtp *conn_src = NULL; struct mgcp_conn_rtp *conn_dst = conn; struct mgcp_conn *_conn; @@ -273,7 +273,7 @@ * us for OSMUX connections. Perhaps adding a new internal API to get it * based on conn type. */ - const char *addr = strlen(endp->cfg->local_ip) ? endp->cfg->local_ip : conn->end.local_addr; + const char *addr = strlen(endp->trunk->cfg->local_ip) ? endp->trunk->cfg->local_ip : conn->end.local_addr; struct msgb *sdp; int rc; struct msgb *result; @@ -477,7 +477,7 @@ OSMO_ASSERT(conn); - range = &endp->cfg->net_ports; + range = &endp->trunk->cfg->net_ports; pthread_mutex_lock(&range->lock); /* attempt to find a port */ @@ -741,8 +741,8 @@ */ static int mgcp_osmux_setup(struct mgcp_endpoint *endp, const char *line) { - if (!endp->cfg->osmux_init) { - if (osmux_init(OSMUX_ROLE_BSC, endp->cfg) < 0) { + if (!endp->trunk->cfg->osmux_init) { + if (osmux_init(OSMUX_ROLE_BSC, endp->trunk->cfg) < 0) { LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Cannot init OSMUX\n"); return -3; } @@ -887,7 +887,7 @@ case 'X': if (strncasecmp("Osmux: ", line + 2, strlen("Osmux: ")) == 0) { /* If osmux is disabled, just skip setting it up */ - if (!rq->endp->cfg->osmux) + if (!rq->endp->trunk->cfg->osmux) break; osmux_cid = mgcp_osmux_setup(endp, line); break; @@ -1001,7 +1001,7 @@ rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_NO_OSMUX)); goto error2; } - } else if (endp->cfg->osmux == OSMUX_USAGE_ONLY) { + } else if (endp->trunk->cfg->osmux == OSMUX_USAGE_ONLY) { LOGPCONN(_conn, DLMGCP, LOGL_ERROR, "CRCX: osmux only and no osmux offered\n"); rate_ctr_inc(rate_ctr_group_get_ctr(rate_ctrs, MGCP_CRCX_FAIL_NO_OSMUX)); @@ -1165,7 +1165,7 @@ case 'X': if (strncasecmp("Osmux: ", line + 2, strlen("Osmux: ")) == 0) { /* If osmux is disabled, just skip setting it up */ - if (!endp->cfg->osmux) + if (!endp->trunk->cfg->osmux) break; osmux_cid = mgcp_osmux_setup(endp, line); break; @@ -1680,7 +1680,7 @@ if (len < 0) return -1; - rc = send_agent(endp->cfg, buf, len); + rc = send_agent(endp->trunk->cfg, buf, len); if (rc <= 0) return -1; diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 077ac96..a36c6d2 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -576,7 +576,7 @@ OSMO_ASSERT(addr); /* FIXME: constify endp and conn args in get_net_donwlink_format_cb() */ - endp->cfg->get_net_downlink_format_cb((struct mgcp_endpoint *)endp, + endp->trunk->cfg->get_net_downlink_format_cb((struct mgcp_endpoint *)endp, &codec, &fmtp_extra, (struct mgcp_conn_rtp *)conn); @@ -601,7 +601,7 @@ payload_types[0] = payload_type; if (mgcp_conn_rtp_is_osmux(conn)) - local_port = endp->cfg->osmux_port; + local_port = endp->trunk->cfg->osmux_port; else local_port = conn->end.local_port; rc = add_audio(sdp, payload_types, 1, local_port); diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 357b593..59ef917 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -28,6 +28,7 @@ #include #include #include +#include /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ #if defined(__has_attribute) @@ -98,7 +99,7 @@ str += nchars; str_len -= nchars; - if (conn->conn->endp->cfg->osmux != OSMUX_USAGE_OFF) { + if (conn->conn->endp->trunk->cfg->osmux != OSMUX_USAGE_OFF) { /* Error Counter */ nchars = snprintf(str, str_len, "\r\nX-Osmo-CP: EC TI=%" PRIu64 ", TO=%" PRIu64, diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 738bfcc..a05733f 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -218,7 +218,7 @@ vty_out(vty, " CONN: %s%s", mgcp_conn_dump(conn), VTY_NEWLINE); if (show_stats) { - if (endp->cfg->conn_timeout) { + if (endp->trunk->cfg->conn_timeout) { struct timeval remaining; osmo_timer_remaining(&conn->watchdog, NULL, &remaining); vty_out(vty, " Currently remaining timeout (seconds): %d.%06d%s", diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index 1c0d3cc..a8aad14 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -960,7 +960,7 @@ static int rqnt_cb(struct mgcp_endpoint *endp, char _tone) { ptrdiff_t tone = _tone; - endp->cfg->data = (void *)tone; + endp->trunk->cfg->data = (void *)tone; return 0; } @@ -1050,7 +1050,6 @@ memset(&endp, 0, sizeof(endp)); cfg = mgcp_config_alloc(); trunk = mgcp_trunk_alloc(cfg, MGCP_TRUNK_VIRTUAL, MGCP_VIRT_TRUNK_ID); - endp.cfg = cfg; endp.type = &ep_typeset.rtp; trunk->v.vty_number_endpoints = 1; trunk->endpoints = endpoints; @@ -1307,7 +1306,6 @@ state.in_stream.err_ts_ctr = &test_ctr_in; state.out_stream.err_ts_ctr = &test_ctr_out; - endp.cfg = cfg; endp.type = &ep_typeset.rtp; trunk->v.vty_number_endpoints = 1; -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I2456ba63598f76200d53e00223abf60bb36a49c0 Gerrit-Change-Number: 25428 Gerrit-PatchSet: 15 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen 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 Sep 14 18:54:26 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 18:54:26 +0000 Subject: Change in osmo-mgw[master]: add modified .clang-format In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25460 ) Change subject: add modified .clang-format ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I080cf2d2437d0b8e6190fbd7c01af8cdc9420878 Gerrit-Change-Number: 25460 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 14 Sep 2021 18:54:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 19:09:58 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 19:09:58 +0000 Subject: Change in osmo-mgw[master]: Fix attribute parsing on gcc 11.1.0 In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25454 ) Change subject: Fix attribute parsing on gcc 11.1.0 ...................................................................... Patch Set 1: There is also __attribute__((no_sanitize("undefined"))) or no_sanitize_undefined - see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58411 gcc is really shit at supporting attributes, but the function is very small and just disabling the sanitizer completely for it is reasonable. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Gerrit-Change-Number: 25454 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Hoernchen Gerrit-Comment-Date: Tue, 14 Sep 2021 19:09: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 Sep 14 19:58:09 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 19:58:09 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Patch Set 2: Apparenty no one is willing to read what the actual issue is, so I suppose there is no issue, and since there is no issue there also needs to be no patch or discussion. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 14 Sep 2021 19:58:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 19:58:11 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 19:58:11 +0000 Subject: Change in libosmocore[master]: vty sched: add api to force deferred applying In-Reply-To: References: Message-ID: Hoernchen has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25415 ) Change subject: vty sched: add api to force deferred applying ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Gerrit-Change-Number: 25415 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 14 19:59:34 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Tue, 14 Sep 2021 19:59:34 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 to look at the new patch set (#27). Change subject: Add multithreading for the virtual trunk ...................................................................... Add multithreading for the virtual trunk The idea is rather easy: do not disturb the code too much, so each thread operates on a mgcp_trunk sub-trunk that has - (it is) a mgcp_trunk structure just like the parent trunk - some thread-specific information in struct per_thread_info * this exists in the sub-trunk, as a SINGLE pointer (this_thread_info) to the threads own info - a different endpoint begin offset - and different number of endpoint - a private copy (!) of the mgcp_config structure that allows selective updates of config settings during runtime using the vty The thread-trunks doen't really know that they are not a full trunk, as far as actual "mgw-operation" is concerned Most of the other changes deal with the (t)alloc contexts to ensure proper parent contexts that are not mixed between threads, the only talloc that is threadsafe is the null context with disabled null tracking, which is plain old malloc. A parent trunk is configured using the vty/config as usual, so it also has all the endpoints, but those are just not being used by anything, all of the structs just exist to allow parsing and configuring, but the updates are then also sent to the trunk threads. It contains the thread_info array which has one per_thread_info struct entry for every trunkthread of this trunk. Communication betwen the main threads and the trunk thread(s) work by sending messages through - the mgcp msg queue for mgcp commands, which the thread then ansers by writing to the socket, the queue back to the main thread is currently unused. - the cfg/vty command queue for vty commands and vty settings, that are parsed and filtered by the threads own functions, the return queue to the main thread is only being used to block it during vty show commands that print in threads. MGCP message handling is therefore split between a quick parsing in the main thread to determine which endpoint (-> thread) should handle the command and wrapping the command in a interthread queue buffer before submitting it to one (or multiple) threads, and the usual processing within the sub-trunk threads. Multithreading is by default disabled unless "number threads" in the config file exists. Multithreading is disabled for e1 trunks due to the complexity of the code and a lack of test coverage that reliably proves the absence of threading related issues, so e1 is still being handled by the main thread. Multithreading is also disabled for all trunks if osmux is configured, also due to complexity and the fact that one osmux trunk is limited to 256 calls due to the CID anyway, which can be handled within one (main) thread. That being said the code is ready to enable threads for all of that, it's just not possible to prove that it will not implode at some point.. Depends: libosmocore Id8405099e6b316c2e14fb0c9b3c5e80a68a91277 Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 --- M include/osmocom/mgcp/Makefile.am M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_endp.h A include/osmocom/mgcp/mgcp_threads.h M include/osmocom/mgcp/mgcp_trunk.h M src/libosmo-mgcp/Makefile.am M src/libosmo-mgcp/mgcp_e1.c M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c A src/libosmo-mgcp/mgcp_threads.c A src/libosmo-mgcp/mgcp_threads_vty.c M 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 15 files changed, 1,179 insertions(+), 354 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/32/25432/27 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 27 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 06:40:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 06:40:36 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25461 ) Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() There also is an osmo_stat_item_desc, so the name 'desc' makes it hard to read the code / the upcoming refactoring patches. It is an osmo_stat_item_group_desc, so call it group_desc. Related: SYS#5542 Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e --- M src/stat_item.c 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/25461/1 diff --git a/src/stat_item.c b/src/stat_item.c index 87cbfea..1788746 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -94,7 +94,7 @@ * \param[in] idx Index of new stat item group */ struct osmo_stat_item_group *osmo_stat_item_group_alloc(void *ctx, - const struct osmo_stat_item_group_desc *desc, + const struct osmo_stat_item_group_desc *group_desc, unsigned int idx) { unsigned int group_size; @@ -105,7 +105,7 @@ struct osmo_stat_item_group *group; group_size = sizeof(struct osmo_stat_item_group) + - desc->num_items * sizeof(struct osmo_stat_item *); + group_desc->num_items * sizeof(struct osmo_stat_item *); if (!ctx) ctx = tall_stat_item_ctx; @@ -114,15 +114,15 @@ if (!group) return NULL; - group->desc = desc; + group->desc = group_desc; group->idx = idx; /* Get combined size of all items */ - for (item_idx = 0; item_idx < desc->num_items; item_idx++) { + for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { unsigned int size; size = sizeof(struct osmo_stat_item) + sizeof(struct osmo_stat_item_value) * - desc->item_desc[item_idx].num_values; + group_desc->item_desc[item_idx].num_values; /* Align to pointer size */ size = (size + sizeof(void *) - 1) & ~(sizeof(void *) - 1); @@ -139,18 +139,18 @@ } /* Update item pointers */ - for (item_idx = 0; item_idx < desc->num_items; item_idx++) { + for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { struct osmo_stat_item *item = (struct osmo_stat_item *) ((uint8_t *)items + (unsigned long)group->items[item_idx]); unsigned int i; group->items[item_idx] = item; - item->last_offs = desc->item_desc[item_idx].num_values - 1; + item->last_offs = group_desc->item_desc[item_idx].num_values - 1; item->stats_next_id = 1; - item->desc = &desc->item_desc[item_idx]; + item->desc = &group_desc->item_desc[item_idx]; for (i = 0; i <= item->last_offs; i++) { - item->values[i].value = desc->item_desc[item_idx].default_value; + item->values[i].value = group_desc->item_desc[item_idx].default_value; item->values[i].id = OSMO_STAT_ITEM_NOVALUE_ID; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 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 Sep 15 06:40:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 06:40:36 +0000 Subject: Change in libosmocore[master]: stats_test: assert counter and stat item val counts separately References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25462 ) Change subject: stats_test: assert counter and stat item val counts separately ...................................................................... stats_test: assert counter and stat item val counts separately Instead of just a send_count, keep one such count for the counter updates, and a separate one for the stat item updates. Print those numbers in the test output. An upcoming patch will tweak stat_item reporting so that only an actually changed value results in sending a new stat value. This patch allows illustrating that change clearly. Related: SYS#5542 Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb --- M tests/stats/stats_test.c M tests/stats/stats_test.err 2 files changed, 51 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/25462/1 diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index 2f2c6ec..9489e60 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -246,7 +246,8 @@ /* define a special stats reporter for testing */ -static int send_count; +static int sent_counter_vals; +static int sent_stat_item_vals; enum { OSMO_STATS_REPORTER_TEST = OSMO_STATS_REPORTER_LOG + 1, @@ -265,7 +266,7 @@ group_name, ctrg ? ctrg->idx : 0, desc->name, (long long)value, (long long)delta); - send_count += 1; + sent_counter_vals++; return 0; } @@ -279,7 +280,7 @@ statg->desc->group_name_prefix, statg->idx, desc->name, value, desc->unit ? desc->unit : ""); - send_count += 1; + sent_stat_item_vals++; return 0; } @@ -310,6 +311,17 @@ return srep; } +static void _do_report(int expect_counter_vals, int expect_stat_item_vals, int line) +{ + sent_counter_vals = 0; + sent_stat_item_vals = 0; + osmo_stats_report(); + fprintf(stderr, "reported: %d counter vals, %d stat item vals\n", sent_counter_vals, sent_stat_item_vals); + OSMO_ASSERT(sent_counter_vals == expect_counter_vals); + OSMO_ASSERT(sent_stat_item_vals == expect_stat_item_vals); +} + +#define do_report(A, B) _do_report(A, B, __LINE__) static void test_reporting() { @@ -363,36 +375,28 @@ OSMO_ASSERT(rc >= 0); fprintf(stderr, "report (initial):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 20); + do_report(12, 8); fprintf(stderr, "report (srep1 global):\n"); /* force single flush */ osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_GLOBAL); srep1->force_single_flush = 1; srep2->force_single_flush = 1; - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 10); + do_report(6, 4); fprintf(stderr, "report (srep1 peer):\n"); /* force single flush */ osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_PEER); srep1->force_single_flush = 1; srep2->force_single_flush = 1; - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 14); + do_report(6, 8); fprintf(stderr, "report (srep1 subscriber):\n"); /* force single flush */ osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_SUBSCRIBER); srep1->force_single_flush = 1; srep2->force_single_flush = 1; - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 20); + do_report(12, 8); fprintf(stderr, "report (srep2 disabled):\n"); /* force single flush */ @@ -400,57 +404,39 @@ srep2->force_single_flush = 1; rc = osmo_stats_reporter_disable(srep2); OSMO_ASSERT(rc >= 0); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 10); + do_report(6, 4); fprintf(stderr, "report (srep2 enabled, no flush forced):\n"); rc = osmo_stats_reporter_enable(srep2); OSMO_ASSERT(rc >= 0); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 10); + do_report(6, 4); fprintf(stderr, "report (should be empty):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); fprintf(stderr, "report (group 1, counter 1 update):\n"); rate_ctr_inc(rate_ctr_group_get_ctr(ctrg1, TEST_A_CTR)); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(2, 0); fprintf(stderr, "report (group 1, item 1 update):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 update twice):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 update twice, check max):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 20); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 no update, send last item (!= last max), OS#5215):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 no update, nothing to send):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); fprintf(stderr, "report (remove statg1, ctrg1):\n"); /* force single flush */ @@ -458,40 +444,30 @@ srep2->force_single_flush = 1; osmo_stat_item_group_free(statg1); rate_ctr_group_free(ctrg1); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 12); + do_report(8, 4); fprintf(stderr, "report (remove srep1):\n"); /* force single flush */ srep1->force_single_flush = 1; srep2->force_single_flush = 1; osmo_stats_reporter_free(srep1); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 6); + do_report(4, 2); fprintf(stderr, "report (remove statg2):\n"); /* force single flush */ srep2->force_single_flush = 1; osmo_stat_item_group_free(statg2); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 4); + do_report(4, 0); fprintf(stderr, "report (remove srep2):\n"); /* force single flush */ srep2->force_single_flush = 1; osmo_stats_reporter_free(srep2); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); fprintf(stderr, "report (remove ctrg2, should be empty):\n"); rate_ctr_group_free(ctrg2); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); rate_ctr_group_free(ctrg3); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index daa3e5c..92d6ce1 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -31,6 +31,7 @@ test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 12 counter vals, 8 stat item vals report (srep1 global): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0 @@ -42,6 +43,7 @@ test2: item p= g=test.one i=2 n=item.b v=-1 u=kb test2: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 4 stat item vals report (srep1 peer): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0 @@ -57,6 +59,7 @@ test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 8 stat item vals report (srep1 subscriber): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -78,6 +81,7 @@ test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 12 counter vals, 8 stat item vals report (srep2 disabled): test2: close test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -90,6 +94,7 @@ test1: item p= g=test.one i=2 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 4 stat item vals report (srep2 enabled, no flush forced): test2: open test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -102,23 +107,31 @@ test2: item p= g=test.one i=2 n=item.b v=-1 u=kb test2: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 4 stat item vals report (should be empty): +reported: 0 counter vals, 0 stat item vals report (group 1, counter 1 update): test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1 test1: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1 +reported: 2 counter vals, 0 stat item vals report (group 1, item 1 update): test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 update twice): test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 update twice, check max): test2: item p= g=test.one i=1 n=item.a v=20 u=ma test1: item p= g=test.one i=1 n=item.a v=20 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 no update, send last item (!= last max), OS#5215): test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 no update, nothing to send): +reported: 0 counter vals, 0 stat item vals report (remove statg1, ctrg1): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -132,6 +145,7 @@ test1: item p= g=test.one i=2 n=item.a v=-1 u=ma test2: item p= g=test.one i=2 n=item.b v=-1 u=kb test1: item p= g=test.one i=2 n=item.b v=-1 u=kb +reported: 8 counter vals, 4 stat item vals report (remove srep1): test1: close test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -140,12 +154,16 @@ test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0 test2: item p= g=test.one i=2 n=item.a v=-1 u=ma test2: item p= g=test.one i=2 n=item.b v=-1 u=kb +reported: 4 counter vals, 2 stat item vals report (remove statg2): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0 test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0 +reported: 4 counter vals, 0 stat item vals report (remove srep2): test2: close +reported: 0 counter vals, 0 stat item vals report (remove ctrg2, should be empty): +reported: 0 counter vals, 0 stat item vals End test: test_reporting -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb Gerrit-Change-Number: 25462 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 Sep 15 06:40:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 06:40:37 +0000 Subject: Change in libosmocore[master]: stat_item: add osmo_stat_item_get() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25463 ) Change subject: stat_item: add osmo_stat_item_get() ...................................................................... stat_item: add osmo_stat_item_get() So far we often invoke a cascade of functions, one retrieving the group, the other the stat item within that group. To relieve that pain, provide a single function taking group name, index and stat name args. Since this is supposedly the canonical normal way of getting a handle on a stat item, and since most other useful names are already taken with more obscure functions, call this simply osmo_stat_item_get(). Similarly add osmo_stat_item_get_using_idxname(), which uses a group's object name (index-name) instead of the group index number. Again, better naming is obstructed by already existing names in the API. Related: SYS#5542 Change-Id: I58886ae8af6b1f770088410f63d27ac21bf979fb --- M include/osmocom/core/stat_item.h M src/stat_item.c M tests/stats/stats_test.c 3 files changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/63/25463/1 diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index 402a7ae..c4e8332 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -93,6 +93,10 @@ void osmo_stat_item_dec(struct osmo_stat_item *item, int32_t value); void osmo_stat_item_set(struct osmo_stat_item *item, int32_t value); +struct osmo_stat_item *osmo_stat_item_get(const char *group_name, const unsigned int group_idx, const char *item_name); +struct osmo_stat_item *osmo_stat_item_get_using_idxname(const char *group_name, const char *group_idx_name, + const char *item_name); + int osmo_stat_item_init(void *tall_ctx); struct osmo_stat_item_group *osmo_stat_item_get_group_by_name_idx( diff --git a/src/stat_item.c b/src/stat_item.c index 1788746..aca8ba6 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -231,6 +231,38 @@ item->values[item->last_offs].id = id; } +/*! Retrieve a stat item struct. + * Shorthand for osmo_stat_item_get_by_name(osmo_stat_item_get_group_by_name_idx(group_name, group_idx), item_name), + * and returns a mutable (non-const) pointer. + * \param group_name Name of the stat group. + * \param group_idx Group index, i.e. pick a specific instance of a stat group. + * \param item_name Name of the stat item within the group. + * \return stat item pointer, or NULL if not found. + */ +struct osmo_stat_item *osmo_stat_item_get(const char *group_name, const unsigned int group_idx, const char *item_name) +{ + return (struct osmo_stat_item*)osmo_stat_item_get_by_name( + osmo_stat_item_get_group_by_name_idx(group_name, group_idx), + item_name); +} + +/*! Retrieve a stat item struct. + * Shorthand for + * osmo_stat_item_get_by_name(osmo_stat_item_get_group_by_name_idxname(group_name, group_idx_name), item_name), + * and returns a mutable (non-const) pointer. + * \param group_name Name of the stat group. + * \param group_idx_name Group index identified by name, i.e. pick a specific instance of a stat group. + * \param item_name Name of the stat item within the group. + * \return stat item pointer, or NULL if not found. + */ +struct osmo_stat_item *osmo_stat_item_get_using_idxname(const char *group_name, const char *group_idx_name, + const char *item_name) +{ + return (struct osmo_stat_item*)osmo_stat_item_get_by_name( + osmo_stat_item_get_group_by_name_idxname(group_name, group_idx_name), + item_name); +} + /*! Retrieve the next value from the osmo_stat_item object. * If a new value has been set, it is returned. The next_id is used to decide * which value to return. diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index 9489e60..ccb3f91 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -96,6 +96,8 @@ OSMO_ASSERT(statg != NULL); + osmo_stat_item_group_set_name(statg, "name-for-idx-0"); + sgrp2 = osmo_stat_item_get_group_by_name_idx("test.one", 0); OSMO_ASSERT(sgrp2 == statg); @@ -112,11 +114,17 @@ OSMO_ASSERT(sitem1 != NULL); OSMO_ASSERT(sitem1 == osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); + OSMO_ASSERT(osmo_stat_item_get("test.one", 0, "item.a") == sitem1); + OSMO_ASSERT(osmo_stat_item_get_using_idxname("test.one", "name-for-idx-0", "item.a") == sitem1); + sitem2 = osmo_stat_item_get_by_name(statg, "item.b"); OSMO_ASSERT(sitem2 != NULL); OSMO_ASSERT(sitem2 != sitem1); OSMO_ASSERT(sitem2 == osmo_stat_item_group_get_item(statg, TEST_B_ITEM)); + OSMO_ASSERT(osmo_stat_item_get("test.one", 0, "item.b") == sitem2); + OSMO_ASSERT(osmo_stat_item_get_using_idxname("test.one", "name-for-idx-0", "item.b") == sitem2); + value = osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); OSMO_ASSERT(value == -1); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58886ae8af6b1f770088410f63d27ac21bf979fb Gerrit-Change-Number: 25463 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 Sep 15 06:40:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 06:40:37 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... refactor stat_item: get rid of FIFO and "skipped" error Intead of attempting to store all distinct values of a reporting period, just store min, max, last as well as a sum and N of each reporting period. This gets rid of error messages like DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped while at the same time more accurately reporting the max value for each reporting period. (So far stats_item only reports the max value; keep that part unchanged, as shown in stats_test.c.) With the other so far unused values (min, sum), we are ready to also report the minimum value as well as an average value per reporting period in the future, if/when our stats reporter allows for it. Store the complete record of the previous reporting period. So far we only compare the 'max' value, but like this we are ready to also see changes in min, last and average value between reporting periods. Related: SYS#5542 Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b --- M TODO-RELEASE M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 6 files changed, 318 insertions(+), 272 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/25464/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index c8966cd..855ceaa 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -15,4 +15,5 @@ libosmosim osim_card_{reset,close} New API libosmocore struct rate_ctr_group, osmo_stat_item_group_desc ABI breakage due to new struct members libosmgsm kdf functions New API -libosmocore osmo_stat_item ABI + API breakage due to new struct members +libosmocore osmo_stat_item API change and ABI breakage due to new struct members; some osmo_stat_item API deprecated. +libosmocore osmo_stat_item No FIFO buffer of values used anymore, the "skipped values" error is no longer possible. diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index c4e8332..717cfe9 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -14,28 +14,43 @@ #define OSMO_STAT_ITEM_NOVALUE_ID 0 #define OSMO_STAT_ITEM_NO_UNIT NULL -/*! Individual entry in value FIFO */ +/*! DEPRECATED, kept only for backwards API compatibility. */ struct osmo_stat_item_value { int32_t id; /*!< identifier of value */ int32_t value; /*!< actual value */ }; +struct osmo_stat_item_period { + /* Number of osmo_stat_item_set() that occured during the reporting period, zero if none. */ + uint32_t n; + /* Smallest value seen in a reporting period. */ + int32_t min; + /* Most recent value passed to osmo_stat_item_set(), or the item->desc->default_value if none. */ + int32_t last; + /* Largest value seen in a reporting period. */ + int32_t max; + /* Sum of all values passed to osmo_stat_item_set() in the reporting period. */ + int64_t sum; +}; + /*! data we keep for each actual item */ struct osmo_stat_item { /*! back-reference to the item description */ const struct osmo_stat_item_desc *desc; - /* internal use by stats API (stats.c): the id of the next value to - * be read from the FIFO. If accessing osmo_stat_item directly, without - * the stats API, store this value elsewhere. */ - int32_t stats_next_id; - /* internal use by stats API: indicate if the last value sent to - * reporters was actually the last value in the FIFO. This may not be - * the case, as always a max of 1 or more values gets sent (OS#5215) */ - bool stats_last_sent_was_max; - /*! the index of the last value written to the FIFO */ - int16_t last_offs; - /*! value FIFO */ - struct osmo_stat_item_value values[0]; + + /*! DEPRECATED, kept only for backwards API compatibility. */ + int32_t not_stats_next_id; + /*! DEPRECATED, kept only for backwards API compatibility. */ + int16_t not_last_offs; + /*! DEPRECATED, kept only for backwards API compatibility. */ + struct osmo_stat_item_value not_values[0]; + + /* Current reporting period / current value. */ + struct osmo_stat_item_period value; + + /* The results of the previous reporting period. According to these, the stats reporter decides whether to + * re-send values or omit an unchanged value from a report. */ + struct osmo_stat_item_period reported; }; /*! Statistics item description */ @@ -43,7 +58,7 @@ const char *name; /*!< name of the item */ const char *description;/*!< description of the item */ const char *unit; /*!< unit of a value */ - unsigned int num_values;/*!< number of values to store in FIFO */ + unsigned int num_values;/*!< DEPRECATED, this value is ignored after libosmocore version 1.5.1 */ int32_t default_value; /*!< default value */ }; @@ -106,12 +121,13 @@ const struct osmo_stat_item *osmo_stat_item_get_by_name( const struct osmo_stat_item_group *statg, const char *name); -int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, int32_t *value); +int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, int32_t *value) + OSMO_DEPRECATED("Access item->value.last, item->value.min, item->value.max or osmo_stat_item_get_avg() instead"); -/*! Get the last (freshest) value */ -static int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item); +void osmo_stat_item_flush(struct osmo_stat_item *item); -int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id); +int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id) + OSMO_DEPRECATED("Use osmo_stat_item_flush() instead"); int osmo_stat_item_discard_all(int32_t *next_id) OSMO_DEPRECATED("Use osmo_stat_item_discard with item-specific next_id instead"); @@ -126,9 +142,10 @@ int osmo_stat_item_for_each_group(osmo_stat_item_group_handler_t handle_group, void *data); +/*! Get the last (freshest) value. Simply returns item->value.last. */ static inline int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item) { - return item->values[item->last_offs].value; + return item->value.last; } void osmo_stat_item_reset(struct osmo_stat_item *item); diff --git a/src/stat_item.c b/src/stat_item.c index aca8ba6..6014411 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -54,20 +54,105 @@ */ /* Struct overview: - * Each osmo_stat_item is attached to an osmo_stat_item_group, which is - * attached to the global osmo_stat_item_groups list. * - * osmo_stat_item_groups - * / \ - * group1 group2 - * / \ - * item1 item2 - * | - * values - * / \ - * 1 2 - * |-id |-id - * '-value '-value + * Group and item descriptions: + * Each group description exists once as osmo_stat_item_group_desc, + * each such group description lists N osmo_stat_item_desc, i.e. describes N stat items. + * + * Actual stats: + * The global osmo_stat_item_groups llist contains all group instances, each points at a group description. + * This list mixes all types of groups in a single llist, where each instance points at its group desc and has an index. + * There are one or more instances of each group, each storing stats for a distinct object (for example, one description + * for a BTS group, and any number of BTS instances with independent stats). A group is identified by a group index nr + * and possibly also a given name for that particular index (e.g. in osmo-mgw, a group instance is named + * "virtual-trunk-0" and can be looked up by that name instead of its more or less arbitrary group index number). + * + * Each group instance contains one osmo_stat_item instance per global stat item description. + * Each osmo_stat_item keeps track of the values for the current reporting period (min, last, max, sum, n), + * and also stores the set of values reported at the end of the previous reporting period. + * + * const osmo_stat_item_group_desc foo + * +-- group_name_prefix = "foo" + * +-- item_desc[] (array of osmo_stat_item_desc) + * +-- osmo_stat_item_desc bar + * | +-- name = "bar" + * | +-- description + * | +-- unit + * | +-- default_value + * | + * +-- osmo_stat_item_desc: baz + * +-- ... + * + * const osmo_stat_item_group_desc moo + * +-- group_name_prefix = "moo" + * +-- item_desc[] + * +-- osmo_stat_item_desc goo + * | +-- name = "goo" + * | +-- description + * | +-- unit + * | +-- default_value + * | + * +-- osmo_stat_item_desc: loo + * +-- ... + * + * osmo_stat_item_groups (llist of osmo_stat_item_group) + * | + * +-- group: foo[0] + * | +-- desc --> osmo_stat_item_group_desc foo + * | +-- idx = 0 + * | +-- name = NULL (no given name for this group instance) + * | +-- items[] + * | | + * | [0] --> osmo_stat_item instance for "bar" + * | | +-- desc --> osmo_stat_item_desc bar (see above) + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | | + * | [1] --> osmo_stat_item instance for "baz" + * | | +-- desc --> osmo_stat_item_desc baz + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | . + * | : + * | + * +-- group: foo[1] + * | +-- desc --> osmo_stat_item_group_desc foo + * | +-- idx = 1 + * | +-- name = "special-foo" (instance can be looked up by this index-name) + * | +-- items[] + * | | + * | [0] --> osmo_stat_item instance for "bar" + * | | +-- desc --> osmo_stat_item_desc bar + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | | + * | [1] --> osmo_stat_item instance for "baz" + * | | +-- desc --> osmo_stat_item_desc baz + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | . + * | : + * | + * +-- group: moo[0] + * | +-- desc --> osmo_stat_item_group_desc moo + * | +-- idx = 0 + * | +-- name = NULL + * | +-- items[] + * | | + * | [0] --> osmo_stat_item instance for "goo" + * | | +-- desc --> osmo_stat_item_desc goo + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | | + * | [1] --> osmo_stat_item instance for "loo" + * | | +-- desc --> osmo_stat_item_desc loo + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | . + * | : + * . + * : + * */ #include @@ -98,9 +183,8 @@ unsigned int idx) { unsigned int group_size; - unsigned long items_size = 0; unsigned int item_idx; - void *items; + struct osmo_stat_item *items; struct osmo_stat_item_group *group; @@ -117,46 +201,25 @@ group->desc = group_desc; group->idx = idx; - /* Get combined size of all items */ + items = talloc_array(group, struct osmo_stat_item, group_desc->num_items); + OSMO_ASSERT(items); for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { - unsigned int size; - size = sizeof(struct osmo_stat_item) + - sizeof(struct osmo_stat_item_value) * - group_desc->item_desc[item_idx].num_values; - /* Align to pointer size */ - size = (size + sizeof(void *) - 1) & ~(sizeof(void *) - 1); - - /* Store offsets into the item array */ - group->items[item_idx] = (void *)items_size; - - items_size += size; - } - - items = talloc_zero_size(group, items_size); - if (!items) { - talloc_free(group); - return NULL; - } - - /* Update item pointers */ - for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { - struct osmo_stat_item *item = (struct osmo_stat_item *) - ((uint8_t *)items + (unsigned long)group->items[item_idx]); - unsigned int i; - + struct osmo_stat_item *item = &items[item_idx]; + const struct osmo_stat_item_desc *item_desc = &group_desc->item_desc[item_idx]; group->items[item_idx] = item; - item->last_offs = group_desc->item_desc[item_idx].num_values - 1; - item->stats_next_id = 1; - item->desc = &group_desc->item_desc[item_idx]; - - for (i = 0; i <= item->last_offs; i++) { - item->values[i].value = group_desc->item_desc[item_idx].default_value; - item->values[i].id = OSMO_STAT_ITEM_NOVALUE_ID; - } + *item = (struct osmo_stat_item){ + .desc = item_desc, + .value = { + .n = 0, + .last = item_desc->default_value, + .min = item_desc->default_value, + .max = item_desc->default_value, + .sum = 0, + }, + }; } llist_add(&group->list, &osmo_stat_item_groups); - return group; } @@ -195,8 +258,7 @@ */ void osmo_stat_item_inc(struct osmo_stat_item *item, int32_t value) { - int32_t oldvalue = item->values[item->last_offs].value; - osmo_stat_item_set(item, oldvalue + value); + osmo_stat_item_set(item, item->value.last + value); } /*! Descrease the stat_item to the given value. @@ -207,8 +269,7 @@ */ void osmo_stat_item_dec(struct osmo_stat_item *item, int32_t value) { - int32_t oldvalue = item->values[item->last_offs].value; - osmo_stat_item_set(item, oldvalue - value); + osmo_stat_item_set(item, item->value.last - value); } /*! Set the a given stat_item to the given value. @@ -219,16 +280,19 @@ */ void osmo_stat_item_set(struct osmo_stat_item *item, int32_t value) { - int32_t id = item->values[item->last_offs].id + 1; - if (id == OSMO_STAT_ITEM_NOVALUE_ID) - id++; - - item->last_offs += 1; - if (item->last_offs >= item->desc->num_values) - item->last_offs = 0; - - item->values[item->last_offs].value = value; - item->values[item->last_offs].id = id; + item->value.last = value; + if (item->value.n == 0) { + /* No values recorded yet, clamp min and max to this first value. */ + item->value.min = item->value.max = value; + /* Overwrite any cruft remaining in value.sum */ + item->value.sum = value; + item->value.n = 1; + } else { + item->value.min = OSMO_MIN(item->value.min, value); + item->value.max = OSMO_MAX(item->value.max, value); + item->value.sum += value; + item->value.n++; + } } /*! Retrieve a stat item struct. @@ -282,51 +346,34 @@ int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, int32_t *value) { - const struct osmo_stat_item_value *next_value; - const struct osmo_stat_item_value *item_value = NULL; - int id_delta; - int next_offs; + if (value) + *value = item->value.last; + return item->value.n; +} - next_offs = item->last_offs; - next_value = &item->values[next_offs]; +/*! Indicate that a reporting period has elapsed, and prepare the stat item for a new period of collecting min/max/avg. + * \param item Stat item to flush. + */ +void osmo_stat_item_flush(struct osmo_stat_item *item) +{ + item->reported = item->value; - while (next_value->id - *next_id >= 0 && - next_value->id != OSMO_STAT_ITEM_NOVALUE_ID) - { - item_value = next_value; + /* Indicate a new reporting period: no values have been received, but the previous value.last remains unchanged + * for the case that an entire period elapses without a new value appearing. */ + item->value.n = 0; + item->value.sum = 0; - next_offs -= 1; - if (next_offs < 0) - next_offs = item->desc->num_values - 1; - if (next_offs == item->last_offs) - break; - next_value = &item->values[next_offs]; - } - - if (!item_value) - /* All items have been read */ - return 0; - - *value = item_value->value; - - id_delta = item_value->id + 1 - *next_id; - - *next_id = item_value->id + 1; - - if (id_delta > 1) { - LOGP(DLSTATS, LOGL_ERROR, "%s: %d stats values skipped\n", item->desc->name, id_delta - 1); - } - - return id_delta; + /* Also for the case that an entire period elapses without any osmo_stat_item_set(), put the min and max to the + * last value. As soon as one osmo_stat_item_set() occurs, these are both set to the new value (when n is still + * zero from above). */ + item->value.min = item->value.max = item->value.last; } /*! Skip/discard all values of this item and update \a next_id accordingly */ int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id) { - int discarded = item->values[item->last_offs].id + 1 - *next_id; - *next_id = item->values[item->last_offs].id + 1; - - return discarded; + LOGP(DLSTATS, LOGL_ERROR, "osmo_stat_item_discard is deprecated (no-op)\n"); + return 0; } /*! Skip all values of all items and update \a next_id accordingly */ @@ -453,15 +500,9 @@ */ void osmo_stat_item_reset(struct osmo_stat_item *item) { - unsigned int i; - - item->last_offs = item->desc->num_values - 1; - item->stats_next_id = 1; - - for (i = 0; i <= item->last_offs; i++) { - item->values[i].value = item->desc->default_value; - item->values[i].id = OSMO_STAT_ITEM_NOVALUE_ID; - } + item->value.sum = 0; + item->value.n = 0; + item->value.last = item->value.min = item->value.max = item->desc->default_value; } /*! Reset all osmo stat items in a group diff --git a/src/stats.c b/src/stats.c index f06515d..f9a3bbc 100644 --- a/src/stats.c +++ b/src/stats.c @@ -235,28 +235,11 @@ talloc_free(srep); } -static int osmo_stats_discard_item(struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) -{ - return osmo_stat_item_discard(item, &item->stats_next_id); -} - -static int osmo_stats_discard_group(struct osmo_stat_item_group *statg, void *sctx_) -{ - return osmo_stat_item_for_each_item(statg, &osmo_stats_discard_item, NULL); -} - -static int osmo_stats_discard_all() -{ - return osmo_stat_item_for_each_group(&osmo_stats_discard_group, NULL); -} - -/*! Initilize the stats reporting module; call this once in your program +/*! Initialize the stats reporting module; call this once in your program. * \param[in] ctx Talloc context from which stats related memory is allocated */ void osmo_stats_init(void *ctx) { osmo_stats_ctx = ctx; - osmo_stats_discard_all(); - is_initialised = 1; start_timer(); } @@ -708,43 +691,33 @@ struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) { struct osmo_stats_reporter *srep; - int32_t value; - bool have_value; - - have_value = osmo_stat_item_get_next(item, &item->stats_next_id, &value) > 0; - if (!have_value) { - /* Send the last value in case a flush is requested */ - value = osmo_stat_item_get_last(item); - - /* Also send it in case a different max value was sent - * previously (OS#5215) */ - if (!item->stats_last_sent_was_max) - have_value = 1; - } else { - int32_t next_val; - /* If we have multiple values only send the max */ - while (osmo_stat_item_get_next(item, &item->stats_next_id, &next_val) > 0) - value = OSMO_MAX(value, next_val); - } - - item->stats_last_sent_was_max = (osmo_stat_item_get_last(item) == value); + int32_t prev_reported_value = item->reported.max; + int32_t new_value = item->value.max; llist_for_each_entry(srep, &osmo_stats_reporter_list, list) { if (!srep->running) continue; - if (!have_value && !srep->force_single_flush) + /* If no new stat values have been set in the current reporting period, skip resending the value. + * However, if the previously sent value is not the same as the current value, then do send the changed + * value (while n == 0, the last value from the previous reporting period is in item->value.max == .last + * == .min, which was put in new_value above). + * Also if the stats reporter is set to resend all values, also do resend the current value regardless + * of repetitions. + */ + if ((!item->value.n && new_value == prev_reported_value) + && !srep->force_single_flush) continue; if (!osmo_stats_reporter_check_config(srep, statg->idx, statg->desc->class_id)) continue; - osmo_stats_reporter_send_item(srep, statg, - item->desc, value); - + osmo_stats_reporter_send_item(srep, statg, item->desc, new_value); } + osmo_stat_item_flush(item); + return 0; } @@ -818,7 +791,6 @@ osmo_stat_item_for_each_group(osmo_stat_item_group_handler, NULL); /* global actions */ - osmo_stats_discard_all(); flush_all_reporters(); TRACE(LIBOSMOCORE_STATS_DONE()); diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index ccb3f91..23025d1 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -88,11 +88,10 @@ struct osmo_stat_item_group *sgrp2; const struct osmo_stat_item *sitem1, *sitem2; - int rc; int32_t value; - int32_t next_id_a = 1; - int32_t next_id_b = 1; int i; + int64_t sum1; + int64_t sum2; OSMO_ASSERT(statg != NULL); @@ -125,124 +124,144 @@ OSMO_ASSERT(osmo_stat_item_get("test.one", 0, "item.b") == sitem2); OSMO_ASSERT(osmo_stat_item_get_using_idxname("test.one", "name-for-idx-0", "item.b") == sitem2); + /* No value set yet, expecting default value from osmo_stat_item_desc definition above. */ value = osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); OSMO_ASSERT(value == -1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); - + /* No value set yet, expecting new value in all fields */ osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 1); - + sum1 = 1; value = osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); OSMO_ASSERT(value == 1); + OSMO_ASSERT(sitem1->value.n == 1); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 1); + OSMO_ASSERT(sitem1->value.max == 1); + OSMO_ASSERT(sitem1->value.sum == 1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); - + sum2 = 0; for (i = 2; i <= 32; i++) { osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), i); + sum1 += i; osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + i); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == i); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + i); + sum2 += 1000 + i; } + OSMO_ASSERT(sitem1->value.n == 32); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 32); + OSMO_ASSERT(sitem1->value.max == 32); + OSMO_ASSERT(sitem1->value.sum == sum1); + + OSMO_ASSERT(sitem2->value.n == 31); + OSMO_ASSERT(sitem2->value.min == 1002); + OSMO_ASSERT(sitem2->value.last == 1032); + OSMO_ASSERT(sitem2->value.max == 1032); + OSMO_ASSERT(sitem2->value.sum == sum2); /* check if dec & inc is working */ osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 42); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 42); + sum1 += 42; + OSMO_ASSERT(sitem1->value.n == 33); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 42); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 42); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == sum1); osmo_stat_item_dec(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 21); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 21); + sum1 += 42 - 21; + OSMO_ASSERT(sitem1->value.n == 34); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 21); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 21); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == sum1); osmo_stat_item_inc(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 21); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 42); + sum1 += 42; + OSMO_ASSERT(sitem1->value.n == 35); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 42); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 42); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == sum1); - /* Keep 2 in FIFO */ - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 33); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + 33); + /* Test item flush, reporting period elapsing */ + osmo_stat_item_flush(osmo_stat_item_get("test.one", 0, "item.a")); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == 42); + OSMO_ASSERT(sitem1->value.last == 42); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 42); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == 0); - for (i = 34; i <= 64; i++) { - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), i); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + i); + /* Still see the previous reporting period in reported.* */ + OSMO_ASSERT(sitem1->reported.n == 35); + OSMO_ASSERT(sitem1->reported.min == 1); + OSMO_ASSERT(sitem1->reported.last == 42); + OSMO_ASSERT(sitem1->reported.max == 42); + OSMO_ASSERT(sitem1->reported.sum == sum1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == i-1); + /* After a flush, the first item replaces the last, min and max */ + osmo_stat_item_set(osmo_stat_item_get("test.one", 0, "item.a"), 97); + OSMO_ASSERT(sitem1->value.n == 1); + OSMO_ASSERT(sitem1->value.min == 97); + OSMO_ASSERT(sitem1->value.last == 97); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 97); + OSMO_ASSERT(sitem1->value.max == 97); + OSMO_ASSERT(sitem1->value.sum == 97); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + i-1); - } + /* ...and still see the previous reporting period in reported.* */ + OSMO_ASSERT(sitem1->reported.n == 35); + OSMO_ASSERT(sitem1->reported.min == 1); + OSMO_ASSERT(sitem1->reported.last == 42); + OSMO_ASSERT(sitem1->reported.max == 42); + OSMO_ASSERT(sitem1->reported.sum == sum1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 64); + /* If an entire reporting period elapses without a new value, the last seen value remains. */ + osmo_stat_item_flush(osmo_stat_item_get("test.one", 0, "item.a")); + osmo_stat_item_flush(osmo_stat_item_get("test.one", 0, "item.a")); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == 97); + OSMO_ASSERT(sitem1->value.last == 97); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 97); + OSMO_ASSERT(sitem1->value.max == 97); + OSMO_ASSERT(sitem1->value.sum == 0); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + 64); + /* now the previous reporting period got turned around */ + OSMO_ASSERT(sitem1->reported.n == 0); + OSMO_ASSERT(sitem1->reported.min == 97); + OSMO_ASSERT(sitem1->reported.last == 97); + OSMO_ASSERT(sitem1->reported.max == 97); + OSMO_ASSERT(sitem1->reported.sum == 0); - /* Overrun FIFOs */ - for (i = 65; i <= 96; i++) { - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), i); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + i); - } + /* Another empty reporting period, everything remained the same. */ + osmo_stat_item_flush(osmo_stat_item_get("test.one", 0, "item.a")); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == 97); + OSMO_ASSERT(sitem1->value.last == 97); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == 97); + OSMO_ASSERT(sitem1->value.max == 97); + OSMO_ASSERT(sitem1->value.sum == 0); + OSMO_ASSERT(sitem1->reported.n == 0); + OSMO_ASSERT(sitem1->reported.min == 97); + OSMO_ASSERT(sitem1->reported.last == 97); + OSMO_ASSERT(sitem1->reported.max == 97); + OSMO_ASSERT(sitem1->reported.sum == 0); - fprintf(stderr, "Skipping %d values\n", 93 - 65); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 93 - 65 + 1); - OSMO_ASSERT(value == 93); - - for (i = 94; i <= 96; i++) { - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == i); - } - - fprintf(stderr, "Skipping %d values\n", 90 - 65); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 90 - 65 + 1); - OSMO_ASSERT(value == 1000 + 90); - - for (i = 91; i <= 96; i++) { - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + i); - } - - /* Test Discard (single item) */ - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 97); - rc = osmo_stat_item_discard(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a); - OSMO_ASSERT(rc == 1); - - rc = osmo_stat_item_discard(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a); - OSMO_ASSERT(rc == 0); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); - - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 98); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 98); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); + /* Test Reset, place back to default value. The previously reported value remains the same. */ + osmo_stat_item_reset(osmo_stat_item_get("test.one", 0, "item.a")); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == -1); + OSMO_ASSERT(sitem1->value.last == -1); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_get("test.one", 0, "item.a")) == -1); + OSMO_ASSERT(sitem1->value.max == -1); + OSMO_ASSERT(sitem1->value.sum == 0); + OSMO_ASSERT(sitem1->reported.n == 0); + OSMO_ASSERT(sitem1->reported.min == 97); + OSMO_ASSERT(sitem1->reported.last == 97); + OSMO_ASSERT(sitem1->reported.max == 97); + OSMO_ASSERT(sitem1->reported.sum == 0); osmo_stat_item_group_free(statg); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index 92d6ce1..a890e0f 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -1,7 +1,3 @@ -Skipping 28 values -DLSTATS ERROR item.a: 28 stats values skipped -Skipping 25 values -DLSTATS ERROR item.b: 25 stats values skipped Start test: test_reporting DLGLOBAL ERROR counter group 'ctr-test:one' already exists for index 2, instead using index 3. This is a software bug that needs fixing. DLGLOBAL ERROR 'ctr-test.one_dot' is not a valid counter group identifier -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 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 Sep 15 06:40:37 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 06:40:37 +0000 Subject: Change in libosmocore[master]: refactor stat_item: report only changed values References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25465 ) Change subject: refactor stat_item: report only changed values ...................................................................... refactor stat_item: report only changed values Change the functionality of skipping unchanged values: instead of looking up whether new values have been set on a stat item, rather remember the last reported value and skip reporting identical values. stats_test.c shows that previously, a stat item reported a value of 10 again, even though the previous report had already sent a value of 10. That's just because the value 10 was explicitly set again, internally. >From a perspective of preserving all data points, it could make sense to send consecutive identical values. But since we already collapse all data points per reporting period into a max, that is pointless. Related: SYS#5542 Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b --- M TODO-RELEASE M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 4 files changed, 9 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/25465/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 855ceaa..45371db 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -17,3 +17,4 @@ libosmgsm kdf functions New API libosmocore osmo_stat_item API change and ABI breakage due to new struct members; some osmo_stat_item API deprecated. libosmocore osmo_stat_item No FIFO buffer of values used anymore, the "skipped values" error is no longer possible. +libosmocore stats reporting for osmo_stat_item, values are now never repeated from one stats report to the next. diff --git a/src/stats.c b/src/stats.c index f9a3bbc..41b2a6a 100644 --- a/src/stats.c +++ b/src/stats.c @@ -698,15 +698,11 @@ if (!srep->running) continue; - /* If no new stat values have been set in the current reporting period, skip resending the value. - * However, if the previously sent value is not the same as the current value, then do send the changed - * value (while n == 0, the last value from the previous reporting period is in item->value.max == .last - * == .min, which was put in new_value above). - * Also if the stats reporter is set to resend all values, also do resend the current value regardless - * of repetitions. + /* If the previously reported value is the same as the current value, skip resending the value. + * However, if the stats reporter is set to resend all values, do resend the current value regardless of + * repetitions. */ - if ((!item->value.n && new_value == prev_reported_value) - && !srep->force_single_flush) + if (new_value == prev_reported_value && !srep->force_single_flush) continue; if (!osmo_stats_reporter_check_config(srep, diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index 23025d1..48318a5 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -449,10 +449,10 @@ osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); do_report(0, 2); - fprintf(stderr, "report (group 1, item 1 update twice):\n"); + fprintf(stderr, "report (group 1, item 1 update twice, with same value):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - do_report(0, 2); + do_report(0, 0); fprintf(stderr, "report (group 1, item 1 update twice, check max):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 20); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index a890e0f..1e604d1 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -114,10 +114,8 @@ test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma reported: 0 counter vals, 2 stat item vals -report (group 1, item 1 update twice): - test2: item p= g=test.one i=1 n=item.a v=10 u=ma - test1: item p= g=test.one i=1 n=item.a v=10 u=ma -reported: 0 counter vals, 2 stat item vals +report (group 1, item 1 update twice, with same value): +reported: 0 counter vals, 0 stat item vals report (group 1, item 1 update twice, check max): test2: item p= g=test.one i=1 n=item.a v=20 u=ma test1: item p= g=test.one i=1 n=item.a v=20 u=ma -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 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 Sep 15 08:48:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 15 Sep 2021 08:48:09 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 18: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 18 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 08:48:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 08:59:28 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 15 Sep 2021 08:59:28 +0000 Subject: Change in osmo-bsc[master]: fixup comments for 'rf_states' CTRL command In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25450 ) Change subject: fixup comments for 'rf_states' CTRL command ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac Gerrit-Change-Number: 25450 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 08:59: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 Sep 15 09:02:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 15 Sep 2021 09:02:36 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch.pl: add STRCPY_OSMO References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25466 ) Change subject: lint: checkpatch.pl: add STRCPY_OSMO ...................................................................... lint: checkpatch.pl: add STRCPY_OSMO Add Osmocom specific check to forbid using strncpy() and strcpy(). Instead, osmo_strlcpy() or OSMO_STRLCPY_ARRAY() should be used. Related: https://lists.osmocom.org/pipermail/openbsc/2021-September/013538.html Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e --- M lint/checkpatch/checkpatch.pl 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/66/25466/1 diff --git a/lint/checkpatch/checkpatch.pl b/lint/checkpatch/checkpatch.pl index 059a2a6..3d09318 100755 --- a/lint/checkpatch/checkpatch.pl +++ b/lint/checkpatch/checkpatch.pl @@ -7201,6 +7201,12 @@ "Where possible, use lockdep_assert_held instead of assertions based on spin_is_locked\n" . $herecurr); } +# Osmocom specific: check for strncpy(), strcpy() +# https://lists.osmocom.org/pipermail/openbsc/2021-September/013538.html + if ($line =~ /\bstr(n)?cpy\(/) { + ERROR("STRCPY_OSMO","Instead of strncpy()/strcpy(), use osmo_strlcpy() or OSMO_STRLCPY_ARRAY()\n" . $herecurr); + } + # check for deprecated apis if ($line =~ /\b($deprecated_apis_search)\b\s*\(/) { my $deprecated_api = $1; -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e Gerrit-Change-Number: 25466 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 09:08:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 15 Sep 2021 09:08:52 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch.pl: add STRCPY_OSMO In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ci/+/25466 to look at the new patch set (#2). Change subject: lint: checkpatch.pl: add STRCPY_OSMO ...................................................................... lint: checkpatch.pl: add STRCPY_OSMO Add Osmocom specific check to forbid using strncpy() and strcpy(). Instead, osmo_strlcpy() or OSMO_STRLCPY_ARRAY() should be used. Related: OS#5087 Related: https://lists.osmocom.org/pipermail/openbsc/2021-September/013538.html Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e --- M lint/checkpatch/checkpatch.pl 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/66/25466/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e Gerrit-Change-Number: 25466 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Wed Sep 15 09:20:29 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 15 Sep 2021 09:20:29 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... Patch Set 1: Verified+1 Code-Review+2 I have tested it and it works fine. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 15 Sep 2021 09:20:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 09:27:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 15 Sep 2021 09:27:16 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... Patch Set 17: Code-Review+1 (1 comment) Thanks for putting the API doc. Please do not forget the dot ;-) https://gerrit.osmocom.org/c/osmo-mgw/+/25429/17/src/libosmo-mgcp/mgcp_endp.c File src/libosmo-mgcp/mgcp_endp.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25429/17/src/libosmo-mgcp/mgcp_endp.c at 228 PS17, Line 228: * \param[in] trunk mgcp_trunk that might have this endpoint Looks good, but each line must end with a dot. I am not an expert in that and I also never look at the generated documentation but when the dot is missing there seems to be a huge problem. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 17 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 09:27: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 Wed Sep 15 10:02:19 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 15 Sep 2021 10:02:19 +0000 Subject: Change in osmo-mgw[master]: adjust mgcp response context In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25447 ) Change subject: adjust mgcp response context ...................................................................... Patch Set 5: Verified+1 (5 comments) https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5//COMMIT_MSG at 7 PS5, Line 7: adjust mgcp response context There is a policy: we must put the module name in front of the headline, like so: mgcp_protocol: adjust mgcp response context https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5/src/libosmo-mgcp/mgcp_protocol.c at 179 PS5, Line 179: msg = msgb_alloc_c(ctx, 4096, "MGCP msg"); I think you should use msgb_alloc_headroom_c() here. The patch is not wrong, you do the msgb_reserve() below - msgb_alloc_headroom_c() would do that for you. https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5/src/libosmo-mgcp/mgcp_protocol.c at 182 PS5, Line 182: LOGP(DLMGCP, LOGL_ERROR, "Failed to msgb for MGCP data.\n"); msgb_alloc_headroom_c/msgb_alloc_headroom_c already displays a log message - you can drop this log line now. https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5/src/libosmo-mgcp/mgcp_protocol.c at 244 PS5, Line 244: static struct msgb *create_ok_resp_with_param(void *msgctx, struct mgcp_endpoint *endp, int code, const char *msg, maybe you should keep the 80 column limit here. This is old code. In any case, the policy on this has never been thought to an end. If you think it looks better now, just keep it as it as it is. (We should really make a cut and reformat all code in all repositories to 120 columns using scripts) https://gerrit.osmocom.org/c/osmo-mgw/+/25447/5/src/libosmo-mgcp/mgcp_protocol.c at 287 PS5, Line 287: msgb_reserve(sdp, 128); same as above, I would use msgb_alloc_headroom_c() -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Id17f51d8bc0d1ba26f7fca72b1679ffadc9d6dc8 Gerrit-Change-Number: 25447 Gerrit-PatchSet: 5 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 10:02: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 Sep 15 10:04:47 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 15 Sep 2021 10:04:47 +0000 Subject: Change in osmo-bsc[master]: doc/mgwpool: update documentation In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25448 ) Change subject: doc/mgwpool: update documentation ...................................................................... doc/mgwpool: update documentation The mgw-pool now allows to set a decription for each MGW /MGCP client instance. Update the documentation so that it reflects the current state. Change-Id: I3026e027bba1a9a12ceca64e96df993b5957cb1d Related: SYS#5091 --- M doc/manuals/chapters/mgwpool.adoc 1 file changed, 23 insertions(+), 14 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/mgwpool.adoc b/doc/manuals/chapters/mgwpool.adoc index 7d9e9a6..2221925 100644 --- a/doc/manuals/chapters/mgwpool.adoc +++ b/doc/manuals/chapters/mgwpool.adoc @@ -47,12 +47,14 @@ Example configuration with two MGCP-Client instances in a pool: ---- mgw 0 + description media-gw-0 <2> mgw remote-ip 127.0.0.1 mgw remote-port 2432 mgw local-ip 127.0.0.1 mgw local-port 2431 mgw endpoint-domain mgw0 <1> mgw 1 + description media-gw-1 <2> mgw remote-ip 127.0.0.1 mgw remote-port 2430 mgw local-ip 127.0.0.1 @@ -65,6 +67,10 @@ endpoint names in the log. It should also be noted that the domain name must match the configuration of the related OsmoMGW instance. +<2> It is also possible to assign a descriptive name to each MGW instance. The +MGCP client specific log lines will then use this name as logging context. If +no description is set, the domain name will be used. + === MGW pool management While it was not possible to change the MGCP-Client configuration under the @@ -80,11 +86,11 @@ ---- OsmoBSC> show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 1 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 0 @@ -116,20 +122,23 @@ ---- % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 2 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 3 -% MGW 2 +% MGW 2:mgw <1> % mgcp-client: disconnected % service: unblocked % ongoing calls: 0 ---- +<1> In this example a description is not set yet, so the domain name ("mgw") +is displayed. + ==== Reconnecting an MGW / MGCP-Client It may become necessary to reconnect an MGCP-Client. This is the case when the @@ -149,15 +158,15 @@ ---- OsmoBSC# show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 2 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 3 -% MGW 2 +% MGW 2:mgw % mgcp-client: connected % service: unblocked % ongoing calls: 0 @@ -191,15 +200,15 @@ OsmoBSC# mgw 2 block OsmoBSC# show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 11 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 12 -% MGW 2 +% MGW 2:mgw % mgcp-client: connected % service: blocked % ongoing calls: 10 @@ -211,15 +220,15 @@ ---- OsmoBSC# show mgw-pool % MGW-Pool: -% MGW 0 +% MGW 0:media-gw-0 % mgcp-client: connected % service: unblocked % ongoing calls: 15 -% MGW 1 +% MGW 1:media-gw-1 % mgcp-client: connected % service: unblocked % ongoing calls: 14 -% MGW 2 +% MGW 2:mgw % mgcp-client: connected % service: blocked % ongoing calls: 0 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I3026e027bba1a9a12ceca64e96df993b5957cb1d Gerrit-Change-Number: 25448 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 11:33:09 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 15 Sep 2021 11:33:09 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25442/2/src/common/l1sap.c File src/common/l1sap.c: https://gerrit.osmocom.org/c/osmo-bts/+/25442/2/src/common/l1sap.c at 1617 PS2, Line 1617: ul_ci_cb_full Looks like you meant to use the '_sub' here and '_full' below? https://gerrit.osmocom.org/c/osmo-bts/+/25442/2/src/common/l1sap.c at 1662 PS2, Line 1662: ul_ci_cb_full Looks like you meant to use the '_sub' here and '_full' below? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 15 Sep 2021 11:33: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 Wed Sep 15 12:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:30:50 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix sub vs full being passed to algo References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25467 ) Change subject: MS Power Control Loop: Fix sub vs full being passed to algo ...................................................................... MS Power Control Loop: Fix sub vs full being passed to algo Fixes: c80abd109b9fc218de047a25ecf4d0de49ca2cdc Change-Id: Ib66ac938e3e71409848927a2972f1f77b9bacde2 --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/25467/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 40e818d..8aa80e7 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1614,10 +1614,10 @@ /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ if (lchan->tch.dtx.dl_active) { ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; + ul_ci_cb = lchan->meas.ul_ci_cb_sub; } else { ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; + ul_ci_cb = lchan->meas.ul_ci_cb_full; } lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, ul_rssi, ul_ci_cb); } @@ -1659,10 +1659,10 @@ /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ if (lchan->tch.dtx.dl_active) { ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; + ul_ci_cb = lchan->meas.ul_ci_cb_sub; } else { ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; + ul_ci_cb = lchan->meas.ul_ci_cb_full; } lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, ul_ci_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib66ac938e3e71409848927a2972f1f77b9bacde2 Gerrit-Change-Number: 25467 Gerrit-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 Sep 15 12:31:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:31:30 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Feed UL C/I from correct measurement period In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25442 ) Change subject: MS Power Control Loop: Feed UL C/I from correct measurement period ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25442/2/src/common/l1sap.c File src/common/l1sap.c: https://gerrit.osmocom.org/c/osmo-bts/+/25442/2/src/common/l1sap.c at 1617 PS2, Line 1617: ul_ci_cb_full > Looks like you meant to use the '_sub' here and '_full' below? Indeed, thanks for catching it! Fix submitted here: https://gerrit.osmocom.org/c/osmo-bts/+/25467 MS Power Control Loop: Fix sub vs full being passed to algo -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I13c0014fdd73f823ae5b1256c35bfa7d97cfa334 Gerrit-Change-Number: 25442 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 15 Sep 2021 12:31: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 Wed Sep 15 12:36:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 15 Sep 2021 12:36:20 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix sub vs full being passed to algo In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25467 ) Change subject: MS Power Control Loop: Fix sub vs full being passed to algo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib66ac938e3e71409848927a2972f1f77b9bacde2 Gerrit-Change-Number: 25467 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Wed, 15 Sep 2021 12:36: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 Sep 15 12:43:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:43:05 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix sub vs full being passed to algo In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25467 ) Change subject: MS Power Control Loop: Fix sub vs full being passed to algo ...................................................................... MS Power Control Loop: Fix sub vs full being passed to algo Fixes: c80abd109b9fc218de047a25ecf4d0de49ca2cdc Change-Id: Ib66ac938e3e71409848927a2972f1f77b9bacde2 --- M src/common/l1sap.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 40e818d..8aa80e7 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1614,10 +1614,10 @@ /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ if (lchan->tch.dtx.dl_active) { ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; + ul_ci_cb = lchan->meas.ul_ci_cb_sub; } else { ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; + ul_ci_cb = lchan->meas.ul_ci_cb_full; } lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, ul_rssi, ul_ci_cb); } @@ -1659,10 +1659,10 @@ /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ if (lchan->tch.dtx.dl_active) { ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; + ul_ci_cb = lchan->meas.ul_ci_cb_sub; } else { ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; + ul_ci_cb = lchan->meas.ul_ci_cb_full; } lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, ul_ci_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib66ac938e3e71409848927a2972f1f77b9bacde2 Gerrit-Change-Number: 25467 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 12:46:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:46:53 +0000 Subject: Change in osmo-mgw[master]: add a lock-free bounded spsc interthread queue In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25431 ) Change subject: add a lock-free bounded spsc interthread queue ...................................................................... Patch Set 19: FIne, now only the documentation part is missing. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f17042baf76d086ce6b20eb99402dc64c22c657 Gerrit-Change-Number: 25431 Gerrit-PatchSet: 19 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: dexter Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:46: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 Sep 15 12:53:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:53:34 +0000 Subject: Change in osmo-mgw[master]: Add multithreading for the virtual trunk In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25432 ) Change subject: Add multithreading for the virtual trunk ...................................................................... Patch Set 27: Lots of my comments from patchset 14 have not yet been addressed. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I31be8253600c8af0a43c967d0d128f5ba7b16260 Gerrit-Change-Number: 25432 Gerrit-PatchSet: 27 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: dexter Gerrit-Comment-Date: Wed, 15 Sep 2021 12:53:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 12:54:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:54:10 +0000 Subject: Change in osmo-mgw[master]: fix mgcp_conn_free_all In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25430 ) Change subject: fix mgcp_conn_free_all ...................................................................... Patch Set 18: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: If38ead0ba0c28396df2332990c98b2532cf17d1c Gerrit-Change-Number: 25430 Gerrit-PatchSet: 18 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:54:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 12:55:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:55:42 +0000 Subject: Change in osmo-mgw[master]: add modified .clang-format In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25460 ) Change subject: add modified .clang-format ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I080cf2d2437d0b8e6190fbd7c01af8cdc9420878 Gerrit-Change-Number: 25460 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:55:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 12:56:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:56:17 +0000 Subject: Change in osmo-mgw[master]: rename strip_epname and find_specific_endpoint and make them available In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25429 ) Change subject: rename strip_epname and find_specific_endpoint and make them available ...................................................................... Patch Set 17: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: I4f76676640a308ab84da3848e1c1ec22bd5d9566 Gerrit-Change-Number: 25429 Gerrit-PatchSet: 17 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:56: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 Sep 15 12:57:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:57:27 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch.pl: add STRCPY_OSMO In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25466 ) Change subject: lint: checkpatch.pl: add STRCPY_OSMO ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e Gerrit-Change-Number: 25466 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:57:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 12:57:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:57:36 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25440 ) Change subject: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5be890a296b37511affc17cb786f0709de822826 Gerrit-Change-Number: 25440 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:57:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 12:57:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 12:57:50 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25440 ) Change subject: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5be890a296b37511affc17cb786f0709de822826 Gerrit-Change-Number: 25440 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 12:57:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 13:32:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 15 Sep 2021 13:32:56 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bfor-1=2E6=5D=3A_Bump_version=3A_1=2E5=2E1=2E132-d7948_=E2=86=92_1=2E6=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25468 ) Change subject: Bump version: 1.5.1.132-d7948 ? 1.6.0 ...................................................................... Bump version: 1.5.1.132-d7948 ? 1.6.0 Change-Id: If6692b83da904499882fefc612e3196ac4d6cbe7 --- M TODO-RELEASE M contrib/libosmocore.spec.in M debian/changelog M debian/control R debian/libosmocore18.install R debian/libosmogb13.install R debian/libosmogsm17.install R debian/libosmovty10.install M src/Makefile.am M src/gb/Makefile.am M src/gsm/Makefile.am M src/sim/Makefile.am M src/vty/Makefile.am 13 files changed, 201 insertions(+), 57 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/25468/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index ad644aa..8ccfa49 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,9 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -libosmovty _LAST_OSMOVTY_NODE Raise _LAST_OSMOVTY_NODE by introducing some RESERVED*_NODE -libosmogsm gsm0808_old_bss_to_new_bss_info ABI break (struct changes size), gsm0808_old_bss_to_new_bss_info_att_tlvdef symbol added -libosmosim osim_card_hdl ABI + API breakage due to new struct members -libosmocore osmo_tdef_fsm_inst_state_chg change default_timeout arg from unsigned long to long type (API breakage, not ABI) -libosmovty vty_read_config_filep New API -libosmosim osim_card_{reset,close} New API diff --git a/contrib/libosmocore.spec.in b/contrib/libosmocore.spec.in index df36e89..b5d8353 100644 --- a/contrib/libosmocore.spec.in +++ b/contrib/libosmocore.spec.in @@ -111,13 +111,13 @@ This subpackage contains libraries and header files for developing applications that want to make use of libosmocoding. -%package -n libosmocore17 +%package -n libosmocore18 Summary: Osmocom core library # crc16.c has GPL2-only clauses, the rest (*.c) is GPL-2.0+ License: GPL-2.0-only AND GPL-2.0-or-later Group: System/Libraries -%description -n libosmocore17 +%description -n libosmocore18 libosmocore is a library with various utility functions shared between OpenBSC and OsmocomBB. @@ -126,7 +126,7 @@ # crc16.h has GPL2-only clauses, the rest (*.h) is GPL-2.0+ License: GPL-2.0-only AND GPL-2.0-or-later Group: Development/Libraries/C and C++ -Requires: libosmocore17 = %version +Requires: libosmocore18 = %version Requires: libtalloc-devel %description -n libosmocore-devel @@ -163,12 +163,12 @@ This subpackage contains libraries and header files for developing applications that want to make use of libosmoctrl. -%package -n libosmogb12 +%package -n libosmogb13 Summary: Osmocom GPRS Gb Interface (NS/BSSGP) library License: AGPL-3.0-or-later Group: System/Libraries -%description -n libosmogb12 +%description -n libosmogb13 libosmocore is a package with various utility functions that were originally developed as part of the OpenBSC project. @@ -179,7 +179,7 @@ License: AGPL-3.0-or-later Group: Development/Libraries/C and C++ Requires: libosmocore-devel = %version -Requires: libosmogb12 = %version +Requires: libosmogb13 = %version Requires: libosmovty-devel = %version %description -n libosmogb-devel @@ -188,12 +188,12 @@ This subpackage contains libraries and header files for developing applications that want to make use of libosmogb. -%package -n libosmogsm16 +%package -n libosmogsm17 Summary: Osmocom GSM utility library License: GPL-2.0-or-later AND AGPL-3.0-or-later Group: System/Libraries -%description -n libosmogsm16 +%description -n libosmogsm17 libosmocore is a package with various utility functions that were originally developed as part of the OpenBSC project. @@ -208,7 +208,7 @@ License: GPL-2.0-or-later AND AGPL-3.0-or-later Group: Development/Libraries/C and C++ Requires: libosmocore-devel = %version -Requires: libosmogsm16 = %version +Requires: libosmogsm17 = %version %description -n libosmogsm-devel The libosmogsm library in particular is a collection of common code @@ -220,12 +220,12 @@ This subpackage contains libraries and header files for developing applications that want to make use of libosmogsm. -%package -n libosmosim2 +%package -n libosmosim3 Summary: Osmocom SIM card related utility library License: GPL-2.0-or-later Group: System/Libraries -%description -n libosmosim2 +%description -n libosmosim3 libosmocore is a package with various utility functions that were originally developed as part of the OpenBSC project. @@ -237,7 +237,7 @@ License: GPL-2.0-or-later Group: Development/Libraries/C and C++ Requires: libosmocore-devel = %version -Requires: libosmosim2 = %version +Requires: libosmosim3 = %version %description -n libosmosim-devel The libosmosim library in particular contains routines for SIM card @@ -246,12 +246,12 @@ This subpackage contains libraries and header files for developing applications that want to make use of libosmosim. -%package -n libosmovty9 +%package -n libosmovty10 Summary: Osmocom VTY interface library License: GPL-2.0-or-later Group: System/Libraries -%description -n libosmovty9 +%description -n libosmovty10 libosmocore is a package with various utility functions that were originally developed as part of the OpenBSC project. @@ -263,7 +263,7 @@ License: GPL-2.0-or-later Group: Development/Libraries/C and C++ Requires: libosmocore-devel = %version -Requires: libosmovty9 = %version +Requires: libosmovty10 = %version %description -n libosmovty-devel The libosmovty library implements the interactive command-line on the @@ -322,18 +322,18 @@ %postun -n libosmocodec0 -p /sbin/ldconfig %post -n libosmocoding0 -p /sbin/ldconfig %postun -n libosmocoding0 -p /sbin/ldconfig -%post -n libosmocore17 -p /sbin/ldconfig -%postun -n libosmocore17 -p /sbin/ldconfig +%post -n libosmocore18 -p /sbin/ldconfig +%postun -n libosmocore18 -p /sbin/ldconfig %post -n libosmoctrl0 -p /sbin/ldconfig %postun -n libosmoctrl0 -p /sbin/ldconfig -%post -n libosmogb12 -p /sbin/ldconfig -%postun -n libosmogb12 -p /sbin/ldconfig -%post -n libosmogsm16 -p /sbin/ldconfig -%postun -n libosmogsm16 -p /sbin/ldconfig -%post -n libosmosim2 -p /sbin/ldconfig -%postun -n libosmosim2 -p /sbin/ldconfig -%post -n libosmovty9 -p /sbin/ldconfig -%postun -n libosmovty9 -p /sbin/ldconfig +%post -n libosmogb13 -p /sbin/ldconfig +%postun -n libosmogb13 -p /sbin/ldconfig +%post -n libosmogsm17 -p /sbin/ldconfig +%postun -n libosmogsm17 -p /sbin/ldconfig +%post -n libosmosim3 -p /sbin/ldconfig +%postun -n libosmosim3 -p /sbin/ldconfig +%post -n libosmovty10 -p /sbin/ldconfig +%postun -n libosmovty10 -p /sbin/ldconfig %post -n libosmousb0 -p /sbin/ldconfig %postun -n libosmousb0 -p /sbin/ldconfig @@ -365,9 +365,9 @@ %_libdir/libosmocoding.so %_libdir/pkgconfig/libosmocoding.pc -%files -n libosmocore17 +%files -n libosmocore18 %defattr(-,root,root) -%_libdir/libosmocore.so.17* +%_libdir/libosmocore.so.18* %files -n libosmocore-devel %defattr(-,root,root) @@ -391,9 +391,9 @@ %_libdir/libosmoctrl.so %_libdir/pkgconfig/libosmoctrl.pc -%files -n libosmogb12 +%files -n libosmogb13 %defattr(-,root,root) -%_libdir/libosmogb.so.12* +%_libdir/libosmogb.so.13* %files -n libosmogb-devel %defattr(-,root,root) @@ -403,9 +403,9 @@ %_libdir/libosmogb.so %_libdir/pkgconfig/libosmogb.pc -%files -n libosmogsm16 +%files -n libosmogsm17 %defattr(-,root,root) -%_libdir/libosmogsm.so.16* +%_libdir/libosmogsm.so.17* %files -n libosmogsm-devel %defattr(-,root,root) @@ -428,9 +428,9 @@ %_libdir/libosmosim.so %_libdir/pkgconfig/libosmosim.pc -%files -n libosmovty9 +%files -n libosmovty10 %defattr(-,root,root) -%_libdir/libosmovty.so.9* +%_libdir/libosmovty.so.10* %files -n libosmovty-devel %defattr(-,root,root) diff --git a/debian/changelog b/debian/changelog index 8fffac5..095e4c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,153 @@ +libosmocore (1.6.0) unstable; urgency=medium + + [ Pau Espin Pedrol ] + * osmo-release.sh: Check configure.ac dependency versions match those in rpm *.spec.in + * osmo-release.sh: Drop repeated DRY_RUN early exit + * osmo-release.sh: Check LIBVERSION matches rpm *.spec.in + * osmo-release.sh: Properly rearrange var init and sanity checks + * tests/gb: Fix printf format errors on ARM 32 bits + * Skip RPM checks if no *.spec.in available + * gsm_08_08.h: Add extra field elements defined in other sections + * cosmetic: tlv_parser: fix typo in func description + * cosmetic: Fix trailing whitespace + * gsm: Support Sending Last EUTRAN PLMN Id in Handover Required + * cosmetic: fix typo in comment + * gsm0808: Introduce gsm0808_old_bss_to_new_bss_info_att_tlvdef + * osmo_timer_pending: Make arg const + * gb: Fix naming and export symbol bssgp_enc_rim_pdu + * Revert "gb: Fix naming and export symbol bssgp_enc_rim_pdu" + * gb: Fix missing exporting symbol bssgp_encode_rim_pdu + * vty: Implement missing public API host_config_file() + * vty: Introduce API vty_read_config_filep + * range_enc_determine_range(): Don't dereference array on size=0 + * stat,rate_ctr: Introduce new API to get counter at given index + * Use new stat item/ctr getter APIs + + [ Oliver Smith ] + * osmo-release.sh: support epoch + * tests/stats: enable logging in test output + * stats: log error when missing stats values + * Revert "stats: log error when missing stats values" + * stat_item: make next_id argument name consistent + * stat_item: add comment with struct overview + * stat_item: make value ids item specific + * stats_test: restore stat_item_get_next asserts + * stats: log error when missing stats values (v2) + * stats: have_value is a bool, not int + + [ Alexander Couzens ] + * gprs_bssgp: add support for SGSN oriented RESET + * gprs_bssgp: use BVCI_SIGNALLING/BVCI_PTM instead of 0/1 + * gprs_ns2: don't OSMO_ASSERT() while freeing NS-VC. + * gprs_ns2: rework logging of Rx and Tx NS PDU + * gprs_ns2: always use the same method to print NSVCs + * gprs_ns2_vty: hide dynamic NSE information when ask for persistant only + * gprs_ns2_vty: make the `show ns entities` and `show ns binds` look similiar + * gprs_ns2: dump_nsvc: correct indention + * gprs_ns2: add vty command `nsvc reset` + * gprs_ns2: fix memory leaks when receiving SNS or invalid packets + * gprs_ns2: vty: remove a white space in `show binds` + * gprs_ns2: nsvc_fsm: reorder notification st_alive_on_enter() + * gprs_ns2: sns: ensure the sns->alive state is correct + * gprs_ns2: sns: remove the initial SNS NSVC if it's not part + * gprs_ns2_vty: print a response to vty `nsvc (block|unblock|reset) + * gprs_ns2: fix nsvc block and unblock vty command + * gprs_ns2: SNS: allow transition missing transition GPRS_SNS_ST_UNCONFIGURED + * gprs_ns2: add functions for SNS add/del/change-weight messages + * gprs_ns2: sns: fix del bind() + * gprs_ns2: vty: fix removing a bind from a SNS + * gprs_ns2: rework id strings of nsvcs + + [ Harald Welte ] + * cosmetic: ssn: some more comments + * gprs_ns2: Log all transmitted SNS messages + * gprs_ns2_sns: Dispatch inbound SNS-ACK to FSM + * gprs_ns2: Remove any references to DNS; we use DLNS in NS2. + * gprs_ns2: Pass peer/remote sockaddr argument to ns2_create_vc() + * TODO-RELEASE: Request increasing _LAST_OSMOVTY_NODE next release + * gprs_ns2_sns: Implement error log in case no binds found for NSE + * gprs_ns2_sns: Remove TODO (spec agrees, the correct cause code is used) + * gprs_ns2_vty: Clarify VTY help string wording + * gprs_ns2_sns: refactor ns2_sns_st_size_onenter() + * gprs_ns2_sns: Unify handling of SNS-CONFIG for IPv4 + IPv6 + * gprs_ns2: Encapsulate setting NSE dialect + * gprs_ns2_sns: Split allstate action in generic and BSS-specific part + * utils: osmo-aka-verify to verify UMTS AKA (SIM side) + * osmo-aka-verify: Fix use case with OP and not OPc + * gprs_ns2_sns: Support for SGSN-side IP-SNS + * gprs_ns2_sns: Add some more OSMO_ASSERT about BSS role + * gprs_ns2_sns: Rename BSS-side states to include 'bss' in name + * gprs_ns2: Introduce gprs_ns2_create_nse2() for SGSN side SNS + * gprs_ns2_vty: Allow creating NSE in sgsn-role + * gprs_ns2_sns: Don't clear remote IP endpoints in SGSN role + * gprs_ns2_sns: Verify mandatory IE presence in incoming SNS-SIZE + * gprs_ns2_sns: SNS-SIZE contains the actual number of local endpoints + * gprs_ns2_sns: Assume the SGSN has a very large number of max. NSVC + * gprs_ns2_sns: Implement checks during processing of inbound SNS-SIZE + * gprs_ns2_vty: Permit VTY configuration of bind->accept_sns + * gprs_ns2: dynamic NS-VC + NSE creation for IP-SNS in SGSN role + * gprs_ns2_sns: Allow VTY configuration of default binds for IP-SNS + * gprs_ns2: Add comments explaining the nsvc->sns_only field + * gprs_ns2_vc_fsm: In IP-SNS/ALIVE mode, initial state is ALIVE/UNBLOCKED + * gprs_ns2: Actually start Tns-test after SNS-CONFIG creates NS-VC + * gprs_ns2_sns: Compute local endpoints before using them + * gprs_ns2_sns: remove code duplication in create_missing_nsvcs() + * gprs_ns2_sns: Don't create NS-VCs for binds outside the NSE + * gprs_ns2_sns: Fix memory leak when creating ip[46]_local arrays + * sim: Obtain card ATR when opening the card + * sim: Remove 'printf' from library code + * frame_relay: Export osmo_fr_network_free() + * ns2: Dump frame relay state to VTY during "show ns" + * socket: Introduce osmo_sock_set_dscp() to set socket DSCP value + * ns2: Fix setting the DSCP value. + * socket: Introduce osmo_sock_set_priority() helper function + * socket: reduce code duplication, introduce socket_helper_tail() + * socket: QoS support for all our socket init functions + * socket: IPv6 support for osmo_sock_set_dscp() + * gprs_ns2: Fix yet another DSCP vs. TOS mix-up + * gprs_ns2_frgre: Ensure DSCP is sin premitted value range + * ns2: migrate from osmo_sock_set_dscp() to OSMO_SOCK_F_DSCP() + * gprs_ns: Fix another DSCP vs. TOS mistake in old NS code + * ns2: Allow setting the socket priority for a UDP bind + * Fix ipa_ccm_make_id_resp_from_req + * Fix ipa_ccm_make_id_resp_from_req to work at all + * ipa_ccm_make_id_resp: Make it work at all + * ns2: change the 'priority' setting name to 'socket-priority' + * osmo_sock_*_ofd(): Mark OSMO_FD_WRITE on non-blocking connect() + * sim: Add osim_card_{reset,close}() API + + [ Daniel Willmann ] + * stats: Ensure that each osmo_stat_item only reports once per interval + * tlv: Fix length returned by t{l16,16l}v_put + + [ Vadim Yanitskiy ] + * utils/osmo-aka-verify: fix swapped CK/IK arguments + * vty/logging: use consistent quiting in warning messages + * vty/logging: ensure consistent '%' prefix for warnings + * vty/logging: logp: properly handle library specific sub-systems + * protocol/gsm_08_58.h: add RSL_CMOD_SP_{GSM4,GSM5,GSM6} + * protocol/gsm_08_58.h: add more 'Channel rate and type' values + * protocol/gsm_08_58.h: add asymmetric CSD data rates + * gsm/abis_nm: add missing NM_OC_IPAC_* value-string entries + * rsl: make rsl_dec_chan_nr() more readable, use RSL_CHAN_NR_MASK + * gsm_08_58.h: add Osmocom specific Bm/Lm CBITs for VAMOS + * gsm_08_58.h: add mask for Osmocom specific VAMOS C-bits + * fsm: cosmetic: fix weird spacing in osmo_fsm_inst_alloc() + + [ Neels Hofmeyr ] + * add BTS_FEAT_VAMOS + * deprecate osmo_bts_feature_name(), add osmo_bts_features_desc() + * add osmo_bts_features_names: short BTS feature strings + * RR: add VAMOS channel modes + * RR: add missing Extended TSC Set IE + * gsm48_mr_cfg_from_gsm0808_sc_cfg(): drop bitmask without effect + * fix default_timeout type of osmo_tdef_fsm_inst_state_chg default_timeout + * add RSL_IE_OSMO_TRAINING_SEQUENCE + * add RSL_CMOD_CRT_OSMO_TCH_VAMOS_Bm, RSL_CMOD_CRT_OSMO_TCH_VAMOS_Lm + * fixup for gsm48_chan_mode_to_non_vamos() + + -- Harald Welte Wed, 15 Sep 2021 15:25:29 +0200 + libosmocore (1.5.1) unstable; urgency=medium [ Pau Espin Pedrol ] diff --git a/debian/control b/debian/control index b319132..9937681 100644 --- a/debian/control +++ b/debian/control @@ -31,10 +31,10 @@ Multi-Arch: foreign Depends: libosmocodec0 (= ${binary:Version}), libosmocoding0 (= ${binary:Version}), - libosmocore17 (= ${binary:Version}), - libosmogb12 (= ${binary:Version}), - libosmogsm16 (= ${binary:Version}), - libosmovty9 (= ${binary:Version}), + libosmocore18 (= ${binary:Version}), + libosmogb13 (= ${binary:Version}), + libosmogsm17 (= ${binary:Version}), + libosmovty10 (= ${binary:Version}), libosmoctrl0 (= ${binary:Version}), libosmosim2 (= ${binary:Version}), libosmousb0 (= ${binary:Version}), @@ -115,7 +115,7 @@ . This package contains the documentation for the libosmocoding library. -Package: libosmocore17 +Package: libosmocore18 Section: libs Architecture: any Multi-Arch: same @@ -129,14 +129,14 @@ (at least) other programs that are developed in the sphere of Free Software / Open Source mobile communication. . - The libosmocore17 library in particular is a collection of common code used in + The libosmocore18 library in particular is a collection of common code used in various sub-projects inside the Osmocom family of projects. Package: libosmocore-doc Architecture: all Section: doc Depends: ${misc:Depends}, - libosmocore17, + libosmocore18, libjs-jquery, libosmocodec-doc, libosmocoding-doc, @@ -151,7 +151,7 @@ . This package contains the documentation for the libosmocore library. -Package: libosmogb12 +Package: libosmogb13 Section: libs Architecture: any Multi-Arch: same @@ -172,7 +172,7 @@ Architecture: all Section: doc Depends: ${misc:Depends}, - libosmogb12, + libosmogb13, libjs-jquery Description: Documentation for the Osmo GPRS Gb library This is part of the libosmocore "meta"-library. The libosmocore library @@ -183,7 +183,7 @@ . This package contains the documentation for the libosmogb library. -Package: libosmogsm16 +Package: libosmogsm17 Section: libs Architecture: any Multi-Arch: same @@ -207,7 +207,7 @@ Architecture: all Section: doc Depends: ${misc:Depends}, - libosmogsm16, + libosmogsm17, libjs-jquery Description: Documentation for the Osmo GSM utility library This is part of the libosmocore "meta"-library. The libosmocore library @@ -218,7 +218,7 @@ . This package contains the documentation for the libosmogsm library. -Package: libosmovty9 +Package: libosmovty10 Section: libs Architecture: any Multi-Arch: same @@ -239,7 +239,7 @@ Architecture: all Section: doc Depends: ${misc:Depends}, - libosmovty9, + libosmovty10, libjs-jquery Description: Documentation for the Osmo VTY library This is part of the libosmocore "meta"-library. The libosmocore library diff --git a/debian/libosmocore17.install b/debian/libosmocore18.install similarity index 100% rename from debian/libosmocore17.install rename to debian/libosmocore18.install diff --git a/debian/libosmogb12.install b/debian/libosmogb13.install similarity index 100% rename from debian/libosmogb12.install rename to debian/libosmogb13.install diff --git a/debian/libosmogsm16.install b/debian/libosmogsm17.install similarity index 100% rename from debian/libosmogsm16.install rename to debian/libosmogsm17.install diff --git a/debian/libosmovty9.install b/debian/libosmovty10.install similarity index 100% rename from debian/libosmovty9.install rename to debian/libosmovty10.install diff --git a/src/Makefile.am b/src/Makefile.am index 2f18d09..cc073ff 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ # This is _NOT_ the library release version, it's an API version. # Please read chapter "Library interface versions" of the libtool documentation # before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html -LIBVERSION=17:0:0 +LIBVERSION=18:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include AM_CFLAGS = -Wall $(TALLOC_CFLAGS) $(PTHREAD_CFLAGS) $(LIBSCTP_CFLAGS) $(LIBMNL_CFLAGS) diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 2ccb757..c024af2 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -1,7 +1,7 @@ # This is _NOT_ the library release version, it's an API version. # Please read chapter "Library interface versions" of the libtool documentation # before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html -LIBVERSION=12:0:0 +LIBVERSION=13:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing \ diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am index f1e2a5a..74b8515 100644 --- a/src/gsm/Makefile.am +++ b/src/gsm/Makefile.am @@ -1,7 +1,7 @@ # This is _NOT_ the library release version, it's an API version. # Please read chapter "Library interface versions" of the libtool documentation # before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html -LIBVERSION=16:0:0 +LIBVERSION=17:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS) AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} diff --git a/src/sim/Makefile.am b/src/sim/Makefile.am index 52f3c6a..a88e341 100644 --- a/src/sim/Makefile.am +++ b/src/sim/Makefile.am @@ -1,7 +1,7 @@ # This is _NOT_ the library release version, it's an API version. # Please read chapter "Library interface versions" of the libtool documentation # before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html -LIBVERSION=2:1:0 +LIBVERSION=3:0:1 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir)/include AM_CFLAGS = -fPIC -Wall $(TALLOC_CFLAGS) diff --git a/src/vty/Makefile.am b/src/vty/Makefile.am index 794b96c..e7e695a 100644 --- a/src/vty/Makefile.am +++ b/src/vty/Makefile.am @@ -1,7 +1,7 @@ # This is _NOT_ the library release version, it's an API version. # Please read chapter "Library interface versions" of the libtool documentation # before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html -LIBVERSION=9:0:0 +LIBVERSION=10:0:0 AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include AM_CFLAGS = -Wall $(TALLOC_CFLAGS) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.6 Gerrit-Change-Id: If6692b83da904499882fefc612e3196ac4d6cbe7 Gerrit-Change-Number: 25468 Gerrit-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 Sep 15 13:33:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 15 Sep 2021 13:33:22 +0000 Subject: =?UTF-8?Q?Change_in_libosmo-abis=5Bmaster=5D=3A_Bump_version=3A_1=2E1=2E1=2E9-24e0-dirty_=E2=86=92_1=2E2=2E0?= References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25469 ) Change subject: Bump version: 1.1.1.9-24e0-dirty ? 1.2.0 ...................................................................... Bump version: 1.1.1.9-24e0-dirty ? 1.2.0 Change-Id: I861f11ac10144ad5af980089f75fc4d8b240b3b5 --- M TODO-RELEASE M configure.ac M contrib/libosmo-abis.spec.in M debian/changelog M debian/control R debian/libosmoabis11.install M src/Makefile.am 7 files changed, 43 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/69/25469/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 8c417cd..d0852fc 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,6 +7,3 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line -update libosmocore dependency to > 1.5.1 for OSMO_SOCK_F_{DSCP,PRIO}() -libosmo-abis new member ipa_client_conn new struct members dscp, priority -libosmo-abis new member ipa_server_link new struct members dscp, priority diff --git a/configure.ac b/configure.ac index 0becff9..d183a05 100644 --- a/configure.ac +++ b/configure.ac @@ -66,10 +66,10 @@ dnl Generate the output AM_CONFIG_HEADER(config.h) -PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.5.0) -PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.5.0) -PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.5.0) -PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 1.5.0) +PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.6.0) +PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.6.0) +PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.6.0) +PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 1.6.0) PKG_CHECK_MODULES(ORTP, ortp >= 0.22.0) AC_ARG_ENABLE([dahdi], diff --git a/contrib/libosmo-abis.spec.in b/contrib/libosmo-abis.spec.in index 629db97..32eec6a 100644 --- a/contrib/libosmo-abis.spec.in +++ b/contrib/libosmo-abis.spec.in @@ -27,11 +27,11 @@ BuildRequires: libtool >= 2 BuildRequires: pkgconfig >= 0.20 BuildRequires: xz -BuildRequires: pkgconfig(libosmocore) >= 1.5.0 -BuildRequires: pkgconfig(libosmogsm) >= 1.5.0 -BuildRequires: pkgconfig(libosmovty) >= 1.5.0 -BuildRequires: pkgconfig(libosmocodec) >= 1.5.0 -BuildRequires: pkgconfig(ortp) >= 0.22 +BuildRequires: pkgconfig(libosmocore) >= 1.6.0 +BuildRequires: pkgconfig(libosmogsm) >= 1.6.0 +BuildRequires: pkgconfig(libosmovty) >= 1.6.0 +BuildRequires: pkgconfig(libosmocodec) >= 1.6.0 +BuildRequires: pkgconfig(ortp) >= 0.22.0 BuildRequires: pkgconfig(talloc) %description @@ -39,12 +39,12 @@ BSC. This interface allows control of the radio equipment and radio frequency allocation in the BTS. -%package -n libosmoabis10 +%package -n libosmoabis11 Summary: Osmocom GSM A-bis interface library License: AGPL-3.0-or-later Group: System/Libraries -%description -n libosmoabis10 +%description -n libosmoabis11 In the GSM system architecture, A-bis is a Base Station System-internal interface linking the Base Transceiver Stations (BTS) and Base Station Controller (BSC). This interface allows control of @@ -58,7 +58,7 @@ Summary: Development files for the Osmocom GSM A-bis library License: AGPL-3.0-or-later Group: Development/Libraries/C and C++ -Requires: libosmoabis10 = %version +Requires: libosmoabis11 = %version Requires: libosmocore-devel >= 0.3.0 Requires: libosmogsm-devel >= 0.3.10 @@ -120,14 +120,14 @@ %check make %{?_smp_mflags} check || (find . -name testsuite.log -exec cat {} +) -%post -n libosmoabis10 -p /sbin/ldconfig -%postun -n libosmoabis10 -p /sbin/ldconfig +%post -n libosmoabis11 -p /sbin/ldconfig +%postun -n libosmoabis11 -p /sbin/ldconfig %post -n libosmotrau2 -p /sbin/ldconfig %postun -n libosmotrau2 -p /sbin/ldconfig -%files -n libosmoabis10 +%files -n libosmoabis11 %defattr(-,root,root) -%_libdir/libosmoabis.so.10* +%_libdir/libosmoabis.so.11* %files -n libosmoabis-devel %defattr(-,root,root) diff --git a/debian/changelog b/debian/changelog index 0d69185..e116882 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,24 @@ +libosmo-abis (1.2.0) unstable; urgency=medium + + [ Keith ] + * Configure E1 pcap file per line + * Log TRAU FSM at INFO not NOTICE + * Fix up vty 'show' commands for E1 line/timeslots + + [ Harald Welte ] + * ipa: Introduce support for user-specific DSCP and priority + * e1_input: Allow (vty) configuration of IP DSCP and socket priority + * trau: Introduce osmo_rtp_socket_set_priority() + + [ Philipp Maier ] + * ipaccess: do not block ipaccess_line_update on failure + + [ Pau Espin Pedrol ] + * Use new stat item/ctr getter APIs + * osmo_ortp: Fix seqno reset to 0 upon ssrc_changed + + -- Harald Welte Wed, 15 Sep 2021 15:31:33 +0200 + libosmo-abis (1.1.1) unstable; urgency=medium * attempt to fix RPM spec file after recent soversion bump diff --git a/debian/control b/debian/control index 4608ad6..48edea2 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,7 @@ dh-autoreconf, libdpkg-perl, git, - libosmocore-dev (>= 1.5.0), + libosmocore-dev (>= 1.6.0), pkg-config, libortp-dev Standards-Version: 3.9.7 @@ -22,13 +22,13 @@ Package: libosmo-abis Section: oldlibs Architecture: any -Depends: libosmoabis10 (= ${binary:Version}), libosmotrau2 (= ${binary:Version}), ${misc:Depends} +Depends: libosmoabis11 (= ${binary:Version}), libosmotrau2 (= ${binary:Version}), ${misc:Depends} Multi-Arch: same Description: Legacy package for libosmo-abis libosmo-abis is an empty package helping in the transition to one package per DSO. -Package: libosmoabis10 +Package: libosmoabis11 Section: libs Architecture: any Multi-Arch: same @@ -60,7 +60,7 @@ Section: libdevel Depends: ${misc:Depends}, libosmotrau2 (= ${binary:Version}), - libosmoabis10 (= ${binary:Version}) + libosmoabis11 (= ${binary:Version}) Description: Development headers for A-bis interface The libosmo-abis library contains common/shared code regarding the A-bis interface between GSM BTS and BSC. This package in particular contains the @@ -72,7 +72,7 @@ Multi-Arch: same Section: debug Priority: extra -Depends: libosmoabis10 (= ${binary:Version}), +Depends: libosmoabis11 (= ${binary:Version}), libosmotrau2 (= ${binary:Version}), ${misc:Depends} Description: Debug symbols for A-bis interface diff --git a/debian/libosmoabis10.install b/debian/libosmoabis11.install similarity index 100% rename from debian/libosmoabis10.install rename to debian/libosmoabis11.install diff --git a/src/Makefile.am b/src/Makefile.am index 346e67b..a68d757 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ # This is _NOT_ the library release version, it's an API version. # Please read chapter "Library interface versions" of the libtool documentation # before making any modifications: https://www.gnu.org/software/libtool/manual/html_node/Versioning.html -ABIS_LIBVERSION=10:0:0 +ABIS_LIBVERSION=11:0:0 TRAU_LIBVERSION=6:0:4 AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir) -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I861f11ac10144ad5af980089f75fc4d8b240b3b5 Gerrit-Change-Number: 25469 Gerrit-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 Sep 15 13:37:41 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Wed, 15 Sep 2021 13:37:41 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bfor-1=2E6=5D=3A_Bump_version=3A_1=2E5=2E1=2E132-d7948_=E2=86=92_1=2E6=2E0?= In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25468 ) Change subject: Bump version: 1.5.1.132-d7948 ? 1.6.0 ...................................................................... Patch Set 1: Code-Review-1 this was an attempt at doing a back-dated 1.6.0 before some stats related changes happen, but I now think it's better to tag master anyway. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.6 Gerrit-Change-Id: If6692b83da904499882fefc612e3196ac4d6cbe7 Gerrit-Change-Number: 25468 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 15 Sep 2021 13:37: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 Sep 15 13:45:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 13:45:54 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25461 ) Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25461/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/25461/1/src/stat_item.c at 96 PS1, Line 96: struct osmo_stat_item_group *osmo_stat_item_group_alloc(void *ctx, Update the header file too. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 13:45:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 13:48:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 13:48:03 +0000 Subject: Change in libosmocore[master]: stats_test: assert counter and stat item val counts separately In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25462 ) Change subject: stats_test: assert counter and stat item val counts separately ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb Gerrit-Change-Number: 25462 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 13:48:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 13:52:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 13:52:11 +0000 Subject: Change in libosmocore[master]: stat_item: add osmo_stat_item_get() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25463 ) Change subject: stat_item: add osmo_stat_item_get() ...................................................................... Patch Set 1: Not sure we really need this API, I don't see many benefits and only cons, like users using this API several times instead of reungiong the stat_item_group pointer, having to look it up more times internally. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58886ae8af6b1f770088410f63d27ac21bf979fb Gerrit-Change-Number: 25463 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 13:52: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 Sep 15 14:10:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 14:10:24 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 1: (8 comments) https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 42 PS1, Line 42: int32_t not_stats_next_id; Since it seems nobody is using this field outside libosmocore (you are changing the time), then probably change it to something even more understandable, like "reserved0", "reserved1", or alike. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 46 PS1, Line 46: struct osmo_stat_item_value not_values[0]; This one can be dropped since it adds no space, and you are changing the name so it means nobody is using it outside libosmocore. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 49 PS1, Line 49: struct osmo_stat_item_period value; I'm really not understanding fully why you leave the other fields while changing their name. Can you explain the motivation or rationale behind keeping them? Is this struct used directly (not as a pointer) or any of its fields somewhere outside libosmocore? https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 125 PS1, Line 125: OSMO_DEPRECATED("Access item->value.last, item->value.min, item->value.max or osmo_stat_item_get_avg() instead"); I'd add API getter for last, min and max if they are to be used outside libosmocore (I doubt so). https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 127 PS1, Line 127: void osmo_stat_item_flush(struct osmo_stat_item *item); There's a new function in between deprecated ones? please move it somewhere else. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/25464/1/src/stat_item.c at 68 PS1, Line 68: * "virtual-trunk-0" and can be looked up by that name instead of its more or less arbitrary group index number). Maybe add that user of this subsystem is in charge of avoiding group name collisions, ie assigning uniques names to different group instances. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/src/stat_item.c at 346 PS1, Line 346: int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, next_id is not being used here, but documentation still explains old behavior. IIRC this is marked as deprecated right? Is it used by anyone anymore? maybe also write it here somewhere. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/src/stat_item.c at 369 PS1, Line 369: item->value.min = item->value.max = item->value.last; Not sure whether this is really what's needed here. Do we care at all in case value n=0 anyway? Maybe call osmo_stat_item_reset? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 14:10: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 Sep 15 14:12:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 14:12:35 +0000 Subject: Change in libosmocore[master]: refactor stat_item: report only changed values In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25465 ) Change subject: refactor stat_item: report only changed values ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 14:12:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 14:18:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 14:18:43 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 to look at the new patch set (#2). Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... abis.c: Fix mess with priv->bsc_oml_host The pointer was used as "struct bsc_oml_host" sometimes, and other times as "struct llist_head". It just worked because bsc_oml_host->list is the first item in the script. The code was really confusing, also because the bts list of items has a name really similar to the one currently assigned. Let's rename the currently assigned address to "current_bsc", store it always as "struct bsc_oml_host*" and finally use llist_entry helpers when needed. The related code is also moved to a helper function to enclose there the logic to get next BSC in list. This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address w This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address will be skipped. This could be considered a bug, but this situation is really special and anyway the entire logic will be changed in new commits where we'll keep reconnecting in loop without exiting when reaching the end of the list, so we are fine with it. Think of this commit as a preparation commit for next ones. Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 32 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/58/25458/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 14:18:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 14:18:43 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: Hello Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 to look at the new patch set (#2). Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... abis.c: Loop over list of BSCs until connection succeeds Do not exit if all BSCs in the list fail to connect, keep trying forever. This commit still doesn't change the logic after BTS has successfully connected to a BSC. In that situation, if the link goes down, BTS will exit in order to reset all state and let the user/system restart it. Related: SYS#4971 Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 --- M src/common/abis.c 1 file changed, 25 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/25459/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 14:39:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 15 Sep 2021 14:39:56 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore debian/changelog References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25470 ) Change subject: lint: checkpatch_osmo.sh: ignore debian/changelog ...................................................................... lint: checkpatch_osmo.sh: ignore debian/changelog Auto-generated from commit log, may contain spelling errors. Fixes: OS#5232 Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/70/25470/1 diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index b9860b4..719e0ce 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -3,6 +3,7 @@ # Excluded paths: # * \.(ok|err)$: stdout and stderr of regression tests +# * debian/changelog: generated from commit log, which may contain spelling errors (OS#5232) # * ^lint/checkpatch/: so it does not warn about spelling errors in spelling.txt :) # * ^src/gsm/kdf/: libosmocore: imported code # * ^src/gsm/milenage/: libosmocore: imported code @@ -36,6 +37,7 @@ $SCRIPT_DIR/checkpatch.pl \ --exclude '\.(ok|err)$' \ + --exclude '^debian/changelog' \ --exclude '^lint/checkpatch/' \ --exclude '^src/gsm/kdf/' \ --exclude '^src/gsm/milenage/' \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f Gerrit-Change-Number: 25470 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 14:43:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 15 Sep 2021 14:43:36 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore debian/changelog 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-ci/+/25470 to look at the new patch set (#2). Change subject: lint: checkpatch_osmo.sh: ignore debian/changelog ...................................................................... lint: checkpatch_osmo.sh: ignore debian/changelog Auto-generated from commit log, may contain spelling errors. Fixes: OS#5232 Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/70/25470/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f Gerrit-Change-Number: 25470 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 14:45:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 15 Sep 2021 14:45:01 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25440 ) Change subject: lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT ...................................................................... lint: checkpatch_osmo.sh: ignore UNNECESSARY_INT Related: https://gerrit.osmocom.org/c/libosmocore/+/25345/4#message-8f6827dc90942698d23ebb909544bf60fa461b2d Related: OS#5087 Change-Id: I5be890a296b37511affc17cb786f0709de822826 --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index 849ccda..7ef8ca4 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -31,6 +31,7 @@ # * SPDX_LICENSE_TAG: we don't place it on line 1 # * SPLIT_STRING: we do split long messages over multiple lines # * STRING_FRAGMENTS: sometimes used intentionally to improve readability +# * UNNECESSARY_INT: not followed (see https://gerrit.osmocom.org/c/libosmocore/+/25345) $SCRIPT_DIR/checkpatch.pl \ --exclude '\.(ok|err)$' \ @@ -62,6 +63,7 @@ --ignore SPDX_LICENSE_TAG \ --ignore SPLIT_STRING \ --ignore STRING_FRAGMENTS \ + --ignore UNNECESSARY_INT \ --max-line-length 120 \ --no-signoff \ --no-tree \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I5be890a296b37511affc17cb786f0709de822826 Gerrit-Change-Number: 25440 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder 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 Wed Sep 15 14:52:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 14:52:55 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore debian/changelog In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25470 ) Change subject: lint: checkpatch_osmo.sh: ignore debian/changelog ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f Gerrit-Change-Number: 25470 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 14: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 Wed Sep 15 16:16:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 16:16:04 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CN... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25471 ) Change subject: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF ...................................................................... trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/25471/1 diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 5beca2a..19cbc8b 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -544,6 +544,7 @@ llist_for_each_entry(pinst, &plink->instances, list) { bts_model_trx_close_cb(pinst->trx, rc); } + trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWEROFF); } break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 Gerrit-Change-Number: 25471 Gerrit-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 Sep 15 16:16:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 16:16:06 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Add missing item in event mask list for state ENABLED References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25472 ) Change subject: nm_*_fsm: Add missing item in event mask list for state ENABLED ...................................................................... nm_*_fsm: Add missing item in event mask list for state ENABLED Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 --- M src/common/nm_bb_transc_fsm.c M src/common/nm_radio_carrier_fsm.c 2 files changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/25472/1 diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 936451f..5d38db7 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -188,7 +188,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", @@ -202,7 +203,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_BBTRANSC_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", @@ -212,7 +214,8 @@ [NM_BBTRANSC_ST_OP_ENABLED] = { .in_event_mask = X(NM_EV_RSL_DOWN) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 4cbdf68..21e1ac1 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -178,7 +178,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", @@ -192,7 +193,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_RCARRIER_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", @@ -202,7 +204,8 @@ [NM_RCARRIER_ST_OP_ENABLED] = { .in_event_mask = X(NM_EV_RSL_DOWN) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 Gerrit-Change-Number: 25472 Gerrit-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 Sep 15 16:16:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 16:16:06 +0000 Subject: Change in osmo-bts[master]: Allow setting administrative state through oml_mo_state_chg() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25473 ) Change subject: Allow setting administrative state through oml_mo_state_chg() ...................................................................... Allow setting administrative state through oml_mo_state_chg() This way it can be changed together with operative/availability state, and changes announced to the BSC if present. This commit presents no real change in osmo-bts behavior, since the only place where adm_state is passed different than -1 is in st_op_disabled_notinstalled_on_enter(), which is actually never called (yet) since it's the initial state and no other states transition later to it. However, this will change in the future once we support re-connecting to a (possibly different) BSC, which means objects will need to be moved to that state to restart the whole OML install procedure on the new BSC. Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c --- M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_radio_carrier_fsm.c M src/common/oml.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 14 files changed, 47 insertions(+), 38 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/25473/1 diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h index 27afc53..42284f9 100644 --- a/include/osmo-bts/oml.h +++ b/include/osmo-bts/oml.h @@ -47,7 +47,7 @@ int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause); /* Change the state and send STATE CHG REP */ -int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state); +int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state, int adm_state); /* First initialization of MO, does _not_ generate state changes */ void oml_mo_state_init(struct gsm_abis_mo *mo, int op_state, int avail_state); diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 5d38db7..2897675 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; bb_transc->mo.opstart_success = false; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -89,7 +89,7 @@ int i; bb_transc->mo.opstart_success = false; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); if (prev_state == NM_BBTRANSC_ST_OP_ENABLED) { for (i = 0; i < TRX_NR_TS; i++) { @@ -157,7 +157,7 @@ struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); uint8_t tn; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); /* Mark Dependency TS as Offline (ready to be Opstarted) */ for (tn = 0; tn < TRX_NR_TS; tn++) { struct gsm_bts_trx_ts *ts = &trx->ts[tn]; diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 12f1a61..6575b54 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; bts->mo.opstart_success = false; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -70,7 +70,7 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; bts->mo.opstart_success = false; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -95,7 +95,7 @@ static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); } static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index dedbacb..864aeab 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; site_mgr->mo.opstart_success = false; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -70,7 +70,7 @@ { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; site_mgr->mo.opstart_success = false; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -95,7 +95,7 @@ static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); } static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 15be6c6..4983c27 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -56,7 +56,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -80,7 +80,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY, -1); } static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -117,7 +117,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -147,7 +147,7 @@ static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); } static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 21e1ac1..9070737 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; trx->mo.opstart_success = false; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -82,7 +82,7 @@ unsigned int i; trx->mo.opstart_success = false; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); if (prev_state == NM_RCARRIER_ST_OP_ENABLED) { for (i = 0; i < TRX_NR_TS; i++) { @@ -147,7 +147,7 @@ struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; unsigned int tn; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); /* Mark Dependency TS as Offline (ready to be Opstarted) */ for (tn = 0; tn < TRX_NR_TS; tn++) { struct gsm_bts_trx_ts *ts = &trx->ts[tn]; diff --git a/src/common/oml.c b/src/common/oml.c index 819b033..d2cf877 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -340,12 +340,13 @@ mo->nm_state.operational = op_state; } -int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state) +int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state, int adm_state) { int rc = 0; if ((op_state != -1 && mo->nm_state.operational != op_state) || - (avail_state != -1 && mo->nm_state.availability != avail_state)) { + (avail_state != -1 && mo->nm_state.availability != avail_state) || + (adm_state != -1 && mo->nm_state.administrative != adm_state)) { if (avail_state != -1) { LOGP(DOML, LOGL_INFO, "%s AVAIL STATE %s -> %s\n", gsm_abis_mo_name(mo), @@ -361,6 +362,14 @@ mo->nm_state.operational = op_state; osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, NULL); } + if (adm_state != -1) { + LOGP(DOML, LOGL_INFO, "%s ADMIN STATE %s -> %s\n", + gsm_abis_mo_name(mo), + abis_nm_admin_name(mo->nm_state.administrative), + abis_nm_admin_name(adm_state)); + mo->nm_state.administrative = adm_state; + } + /* send state change report */ rc = oml_tx_state_changed(mo); diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index b4945be..9d0d99a 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -1906,13 +1906,13 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); if (mo->obj_class == NM_OC_BTS) { - oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1); } break; default: diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index 9791ab8..ea344fb 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -1898,10 +1898,10 @@ break; case NM_OC_BTS: rc = osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); - oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK), -1; + oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1); break; case NM_OC_RADIO_CARRIER: trx = (struct gsm_bts_trx *) obj; @@ -1918,7 +1918,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 1e2f89d..1830599 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1788,7 +1788,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index 46558a1..5bfcfca 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -143,7 +143,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 93ecf90..194afcd 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -1776,10 +1776,10 @@ break; case NM_OC_BTS: rc = osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); - oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1); break; case NM_OC_RADIO_CARRIER: trx = (struct gsm_bts_trx *) obj; @@ -1796,7 +1796,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 754e9d7..6b417f4 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -604,7 +604,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index af8a6f2..48e9400 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -156,7 +156,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); rc = oml_mo_opstart_ack(mo); break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c Gerrit-Change-Number: 25473 Gerrit-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 Sep 15 16:40:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 16:40:48 +0000 Subject: Change in osmo-bts[master]: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25474 ) Change subject: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS on C0 ...................................................................... scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS on C0 The commit implementing BCCH Carrier Power Reduction forgot to apply it for bursts for which there's no lchan controlled by OsmoBTS, such as those coming from PDCH timeslots. For other TRX, BS Power Reduction is still always 0. The BS Power Control Loop for those channels still needs to be implemented in OsmoPCU and the resulting bs_powerbe passed somehow over PCUIF together with RLCMAC data to OsmoBTS, so it can be applied there. Fixes: 0e8d68437af4a99dc99d11d4e1f441246bd3ec00 Related: SYS#4919 Change-Id: I3c6985c2bc6779b15094a34f5d4a345c7d8d7b38 --- M src/common/scheduler.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/25474/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 6e1e4fb..e7eac96 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1318,7 +1318,11 @@ /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) br->att = l1cs->lchan->bs_power_ctrl.current; - else /* Ensure no attenuation in the absence of lchan (e.g. on PDCH) */ + /* Ensure no/reduced attenuation in the absence of lchan (e.g. on PDCH). + * Use calculated value for TS on TRX0 as per BCCH Carrier Power Reduction: */ + else if (l1ts->ts->trx == l1ts->ts->trx->bts->c0) + br->att = l1ts->ts->c0_power_red_db; + else br->att = 0; /* encrypt */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c6985c2bc6779b15094a34f5d4a345c7d8d7b38 Gerrit-Change-Number: 25474 Gerrit-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 Sep 15 17:10:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:10:22 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch.pl: add STRCPY_OSMO In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25466 ) Change subject: lint: checkpatch.pl: add STRCPY_OSMO ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e Gerrit-Change-Number: 25466 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 17:10:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 17:10:52 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:10:52 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25441 ) Change subject: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I15345a154f490362093e46fc0df75e75bbb237fe Gerrit-Change-Number: 25441 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 17:10:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 17:11:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:11:16 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore debian/changelog In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25470 ) Change subject: lint: checkpatch_osmo.sh: ignore debian/changelog ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f Gerrit-Change-Number: 25470 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 17:11:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 17:11:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:11:21 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25441 ) Change subject: lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT ...................................................................... lint: checkpatch_osmo.sh: ignore UNSPECIFIED_INT As suggested by Pau, let's remove this check because it isn't useful for us. Related: OS#5087 Change-Id: I15345a154f490362093e46fc0df75e75bbb237fe --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index 7ef8ca4..b9860b4 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -32,6 +32,7 @@ # * SPLIT_STRING: we do split long messages over multiple lines # * STRING_FRAGMENTS: sometimes used intentionally to improve readability # * UNNECESSARY_INT: not followed (see https://gerrit.osmocom.org/c/libosmocore/+/25345) +# * UNSPECIFIED_INT: not followed (doesn't seem useful for us) $SCRIPT_DIR/checkpatch.pl \ --exclude '\.(ok|err)$' \ @@ -64,6 +65,7 @@ --ignore SPLIT_STRING \ --ignore STRING_FRAGMENTS \ --ignore UNNECESSARY_INT \ + --ignore UNSPECIFIED_INT \ --max-line-length 120 \ --no-signoff \ --no-tree \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I15345a154f490362093e46fc0df75e75bbb237fe Gerrit-Change-Number: 25441 Gerrit-PatchSet: 1 Gerrit-Owner: osmith 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 Sep 15 17:11:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:11:22 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch.pl: add STRCPY_OSMO In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25466 ) Change subject: lint: checkpatch.pl: add STRCPY_OSMO ...................................................................... lint: checkpatch.pl: add STRCPY_OSMO Add Osmocom specific check to forbid using strncpy() and strcpy(). Instead, osmo_strlcpy() or OSMO_STRLCPY_ARRAY() should be used. Related: OS#5087 Related: https://lists.osmocom.org/pipermail/openbsc/2021-September/013538.html Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e --- M lint/checkpatch/checkpatch.pl 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/lint/checkpatch/checkpatch.pl b/lint/checkpatch/checkpatch.pl index 059a2a6..06e6e36 100755 --- a/lint/checkpatch/checkpatch.pl +++ b/lint/checkpatch/checkpatch.pl @@ -7201,6 +7201,13 @@ "Where possible, use lockdep_assert_held instead of assertions based on spin_is_locked\n" . $herecurr); } +# Osmocom specific: check for strncpy(), strcpy() +# https://lists.osmocom.org/pipermail/openbsc/2021-September/013538.html + if ($line =~ /\bstr(n)?cpy\(/) { + ERROR("STRCPY_OSMO", + "Instead of strncpy()/strcpy(), use osmo_strlcpy() or OSMO_STRLCPY_ARRAY()\n" . $herecurr); + } + # check for deprecated apis if ($line =~ /\b($deprecated_apis_search)\b\s*\(/) { my $deprecated_api = $1; -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I6fa96c8f3d15110dd3d3509faa593285a78f469e Gerrit-Change-Number: 25466 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Sep 15 17:11:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:11:22 +0000 Subject: Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore debian/changelog In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25470 ) Change subject: lint: checkpatch_osmo.sh: ignore debian/changelog ...................................................................... lint: checkpatch_osmo.sh: ignore debian/changelog Auto-generated from commit log, may contain spelling errors. Fixes: OS#5232 Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f --- M lint/checkpatch/checkpatch_osmo.sh 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve neels: Looks good to me, approved diff --git a/lint/checkpatch/checkpatch_osmo.sh b/lint/checkpatch/checkpatch_osmo.sh index b9860b4..4710b7b 100755 --- a/lint/checkpatch/checkpatch_osmo.sh +++ b/lint/checkpatch/checkpatch_osmo.sh @@ -3,6 +3,7 @@ # Excluded paths: # * \.(ok|err)$: stdout and stderr of regression tests +# * ^debian/changelog$: generated from commit log, which may contain spelling errors (OS#5232) # * ^lint/checkpatch/: so it does not warn about spelling errors in spelling.txt :) # * ^src/gsm/kdf/: libosmocore: imported code # * ^src/gsm/milenage/: libosmocore: imported code @@ -36,6 +37,7 @@ $SCRIPT_DIR/checkpatch.pl \ --exclude '\.(ok|err)$' \ + --exclude '^debian/changelog$' \ --exclude '^lint/checkpatch/' \ --exclude '^src/gsm/kdf/' \ --exclude '^src/gsm/milenage/' \ -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: Id0ccfbff73464dac7f7f939c88a9e2677fa2a37f Gerrit-Change-Number: 25470 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Sep 15 17:12:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 17:12:35 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25475 ) Change subject: power_control: Drop unused param in function ...................................................................... power_control: Drop unused param in function Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d --- M src/common/power_control.c 1 file changed, 3 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/75/25475/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index d57c28d..bcea073 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -111,10 +111,9 @@ } return val_avg; } -/* Calculate a 'delta' value (for the given MS/BS power control state and parameters) +/* Calculate a 'delta' value (for the given MS/BS power control parameters) * to be applied to the current Tx power level to approach the target level. */ static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, - struct lchan_power_ctrl_state *state, const uint8_t rxlev) { int delta; @@ -236,7 +235,7 @@ new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta_rxlev(params, state, rxlev_avg); + new_dbm = ms_dbm + calc_delta_rxlev(params, rxlev_avg); } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on @@ -364,7 +363,7 @@ * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) */ - new_att = state->current - calc_delta_rxlev(params, state, rxlev_avg); + new_att = state->current - calc_delta_rxlev(params, rxlev_avg); } /* Make sure new TxAtt is never negative: */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 Gerrit-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 Sep 15 17:21:27 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:21:27 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25461 ) Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25461/1/src/stat_item.c File src/stat_item.c: https://gerrit.osmocom.org/c/libosmocore/+/25461/1/src/stat_item.c at 96 PS1, Line 96: struct osmo_stat_item_group *osmo_stat_item_group_alloc(void *ctx, > Update the header file too. thx for spotting -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 17:21: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 Wed Sep 15 17:38:34 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:38:34 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 1: (4 comments) https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 42 PS1, Line 42: int32_t not_stats_next_id; > Since it seems nobody is using this field outside libosmocore (you are changing the time), then prob [?] oh whoops i didn't mean to rename the member at all. The "not_" was just a temporary trick to catch all occurrences... The remaining question is do we drop these unused items because we assume they should never be used outside of libosmocore? Technically we guarantee that older code is able to compile against newer libosmocore, so those items should remain present (we always avoid API breakage). But in practice I agree that no-one is using it nor should be using it, so in practical terms we could break with that guarantee and just drop those unused members... that's a discussion on the level of release principles. Opinions welcome. These members have no use and no longer any meaning, simply there to avoid compilation errors, just in case some third party has code accessing them; of course such code would no longer work now either; so maybe would be nicer to indeed throw a compilation error instead of keeping the meaningless members? We don't need 'reserved' placeholders, because ABI breakage is not the point at all. There is ABI breakage, period, recompiling is necessary. We want to avoid errors when compiling. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 49 PS1, Line 49: struct osmo_stat_item_period value; > I'm really not understanding fully why you leave the other fields while changing their name. [?] (was a mistake to push those) https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 125 PS1, Line 125: OSMO_DEPRECATED("Access item->value.last, item->value.min, item->value.max or osmo_stat_item_get_avg() instead"); > I'd add API getter for last, min and max if they are to be used outside libosmocore (I doubt so). in the original stats API, the idea was to allow multiple consumers (hence the FIFO buffer in the first place), but we now assume the only consumer is the stats.c stats reporter. Also any user can simply access item->value.{last,min,max} directly, adding API for that would be Java-esque bloat IMO and not needed. Well, if struct osmo_stat_item were opaque (not defined in the .h file), then this API would be nice to have, and we would also never have API breakage in the struct definition. But every time I authored opaque structs so far it ended up being a real bloat pain, most of the times i later refactored for transparent structs. So my opinion is to not add API to return members of transparent structs, for me is just bloat. https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 127 PS1, Line 127: void osmo_stat_item_flush(struct osmo_stat_item *item); > There's a new function in between deprecated ones? please move it somewhere else. it's semantically related to the "discard" stuff, so I thought putting the replacement just above the deprecated functions it is replacing would be a courtesy to header file readers. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 17:38: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 Sep 15 17:56:25 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 17:56:25 +0000 Subject: Change in libosmocore[master]: stat_item: add osmo_stat_item_get() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25463 ) Change subject: stat_item: add osmo_stat_item_get() ...................................................................... Patch Set 1: > Not sure we really need this API Actually you're right. This came up while hacking on stats_test.c, while most real world callers actually have a osmo_stat_item_group pointer at hand already, e.g. osmo-bsc/src/osmo-bsc/bts.c:817: osmo_stat_item_set(osmo_stat_item_group_get_item(bts->bts_statg, BTS_STAT_CHAN_OSMO_DYN_TOTAL), 0); This here is an example of the actual use I was aiming to make nicer. Would you agree that it would look better as: osmo_stat_item_set2(bts->bts_statg, BTS_STAT_CHAN_OSMO_DYN_TOTAL, 0); ? OT now, but your con mentioning optimization is not valid IMO, because it is speculating on callers and is only about an O(n) algorithm. Your con about no-one besides stats_test.c using this function is indeed valid. I think I might put it static in stats_test.c or not bother at all. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58886ae8af6b1f770088410f63d27ac21bf979fb Gerrit-Change-Number: 25463 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 17:56: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 Sep 15 18:04:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 18:04:36 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25461 to look at the new patch set (#2). Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() There also is an osmo_stat_item_desc, so the name 'desc' makes it hard to read the code / the upcoming refactoring patches. It is an osmo_stat_item_group_desc, so call it group_desc. Related: SYS#5542 Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e --- M include/osmocom/core/stat_item.h M src/stat_item.c 2 files changed, 10 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/25461/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 Gerrit-PatchSet: 2 Gerrit-Owner: neels 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 Wed Sep 15 18:04:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 18:04:36 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25464 to look at the new patch set (#2). Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... refactor stat_item: get rid of FIFO and "skipped" error Intead of attempting to store all distinct values of a reporting period, just store min, max, last as well as a sum and N of each reporting period. This gets rid of error messages like DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped while at the same time more accurately reporting the max value for each reporting period. (So far stats_item only reports the max value; keep that part unchanged, as shown in stats_test.c.) With the other so far unused values (min, sum), we are ready to also report the minimum value as well as an average value per reporting period in the future, if/when our stats reporter allows for it. Store the complete record of the previous reporting period. So far we only compare the 'max' value, but like this we are ready to also see changes in min, last and average value between reporting periods. Related: SYS#5542 Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b --- M TODO-RELEASE M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 6 files changed, 315 insertions(+), 269 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/25464/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 18:04:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 18:04:50 +0000 Subject: Change in libosmocore[master]: stat_item: add osmo_stat_item_get() In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25463 ) Change subject: stat_item: add osmo_stat_item_get() ...................................................................... Abandoned useless patch -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I58886ae8af6b1f770088410f63d27ac21bf979fb Gerrit-Change-Number: 25463 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 18:05:15 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 18:05:15 +0000 Subject: Change in osmo-bsc[master]: fixup comments for 'rf_states' CTRL command In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25450 ) Change subject: fixup comments for 'rf_states' CTRL command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac Gerrit-Change-Number: 25450 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 18:05: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 Sep 15 18:05:20 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 15 Sep 2021 18:05:20 +0000 Subject: Change in osmo-bsc[master]: fixup comments for 'rf_states' CTRL command In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25450 ) Change subject: fixup comments for 'rf_states' CTRL command ...................................................................... fixup comments for 'rf_states' CTRL command Completely describe the 'rf_states' string elements (in one place), and fix the missing item in bsc_ctrl_commands.c comments. Related: SYS#5542 Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac --- M src/osmo-bsc/bsc_ctrl_commands.c M src/osmo-bsc/bsc_rf_ctrl.c 2 files changed, 24 insertions(+), 8 deletions(-) Approvals: 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/osmo-bsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c index c7547b0..a94baae 100644 --- a/src/osmo-bsc/bsc_ctrl_commands.c +++ b/src/osmo-bsc/bsc_ctrl_commands.c @@ -420,8 +420,9 @@ } CTRL_CMD_DEFINE_RO(bts_rf_state, "rf_state"); -/* Return a list of the states of each TRX for a given BTS: - * ,,,,;,,... +/* Return a list of the states of each TRX for a given BTS. + * ,,,,,;,,...;...; + * For details on the string, see bsc_rf_states_c(); */ static int get_bts_rf_states(struct ctrl_cmd *cmd, void *data) { @@ -443,7 +444,8 @@ CTRL_CMD_DEFINE_RO(bts_rf_states, "rf_states"); /* Return a list of the states of each TRX for all BTS: - * ,,,,;,,... + * ,,,,,;,,...;...; + * For details on the string, see bsc_rf_states_c(); */ static int get_net_rf_states(struct ctrl_cmd *cmd, void *data) { diff --git a/src/osmo-bsc/bsc_rf_ctrl.c b/src/osmo-bsc/bsc_rf_ctrl.c index 7040da4..749d2eb 100644 --- a/src/osmo-bsc/bsc_rf_ctrl.c +++ b/src/osmo-bsc/bsc_rf_ctrl.c @@ -139,8 +139,7 @@ } /* Return a string listing the state of the given TRX. - * The string has the form: - * ,,,,,; + * For details, see bsc_rf_states_c(). */ static int bsc_rf_state_of_trx_buf(char *buf, size_t buflen, struct gsm_bts_trx *trx) { @@ -154,6 +153,9 @@ return sb.chars_needed; } +/* Same as bsc_rf_states_of_bts_c() but return result in a fixed-size buffer. + * For details, see bsc_rf_states_c(). + * Return the amount of characters that would be written to the buffer if it is large enough, like snprintf(). */ static int bsc_rf_states_of_bts_buf(char *buf, size_t buflen, struct gsm_bts *bts) { struct gsm_bts_trx *trx; @@ -166,8 +168,8 @@ } /* Return a string listing the states of each TRX for the given BTS. - * The string has the form: - * ,,,,,;,,...;...; + * For details, see bsc_rf_states_c(). + * * \param ctx Talloc context to allocate the returned string from. * \param bts BTS of which to list the TRX states. * \return talloc allocated string. @@ -177,6 +179,9 @@ OSMO_NAME_C_IMPL(ctx, 256, "ERROR", bsc_rf_states_of_bts_buf, bts); } +/* Same as bsc_rf_states_c() but return result in a fixed-size buffer. + * For details, see bsc_rf_states_c(). + * Return the amount of characters that would be written to the buffer if it is large enough, like snprintf(). */ static int bsc_rf_states_buf(char *buf, size_t buflen) { struct gsm_bts *bts; @@ -191,8 +196,17 @@ /* Return a string listing the states of all TRX of all BTS. * The string has the form: * ,,,,,;,,...;...; + * (always terminates in a semicolon). + * + * Meaning of the elements: + * - bts_nr: 0..255 -- BTS index. + * - trx_nr: 0..255 -- TRX index. + * - opstate: inoperational|operational -- whether RF is active. + * - adminstate: unlocked|locked -- whether the TRX is configured as RF-locked. + * - rf_policy: off|on|grace|unknown -- which state RF should be in according to user rf_lock requests. + * - rsl_status: rsl-up|rsl-down -- 'rsl-up' if an RSL link to the TRX is currently present. + * * \param ctx Talloc context to allocate the returned string from. - * \param bts BTS of which to list the TRX states, or NULL to list all TRX of all BTS. * \return talloc allocated string. */ char *bsc_rf_states_c(void *ctx) -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ifc3610c344b3e270111e2f6c5155a6fb90d8f2ac Gerrit-Change-Number: 25450 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 15 18:29:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 15 Sep 2021 18:29:55 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25461 ) Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 15 Sep 2021 18:29:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:32:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:32:58 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25475 ) Change subject: power_control: Drop unused param in function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 16 Sep 2021 06:32:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:34:05 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:34:05 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25475 ) Change subject: power_control: Drop unused param in function ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25475/1/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25475/1/src/common/power_control.c at 117 PS1, Line 117: const uint8_t rxlev Would be good to also fix alignment here (in a separate patch). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 16 Sep 2021 06:34: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 Thu Sep 16 06:38:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:38:31 +0000 Subject: Change in osmo-bts[master]: abis.h: Drop unused state In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25452 ) Change subject: abis.h: Drop unused state ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 Gerrit-Change-Number: 25452 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:38:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:38:44 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:38:44 +0000 Subject: Change in osmo-bts[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25456 ) Change subject: cosmetic: fix typo in comment ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0e4fdad66c0bad849a7b960cf78f9f45b56fcb95 Gerrit-Change-Number: 25456 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:38:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:39:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:39:25 +0000 Subject: Change in osmo-bts[master]: abis.c: Rearrange code to follow logic state order In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25453 ) Change subject: abis.c: Rearrange code to follow logic state order ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cae561926b460dc5882390db969b7c925903e5d Gerrit-Change-Number: 25453 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:39: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 Sep 16 06:40:00 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:40:00 +0000 Subject: Change in osmo-bts[master]: abis.c: Convert early return to assert() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25455 ) Change subject: abis.c: Convert early return to assert() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f4953be735f526bb8b926979233b3c26ba67ce9 Gerrit-Change-Number: 25455 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:40:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:45:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:45:15 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CN... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25471 ) Change subject: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 Gerrit-Change-Number: 25471 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 16 Sep 2021 06: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 Thu Sep 16 06:45:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:45:32 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Add missing item in event mask list for state ENABLED In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25472 ) Change subject: nm_*_fsm: Add missing item in event mask list for state ENABLED ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 Gerrit-Change-Number: 25472 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 16 Sep 2021 06:45:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:54:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 06:54:02 +0000 Subject: Change in osmo-bts[master]: abis: Clear code and drop code not executed In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25451 ) Change subject: abis: Clear code and drop code not executed ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d Gerrit-Change-Number: 25451 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06: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 Thu Sep 16 06:55:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 06:55:19 +0000 Subject: Change in osmo-bts[master]: abis.c: Rearrange code to follow logic state order In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25453 ) Change subject: abis.c: Rearrange code to follow logic state order ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cae561926b460dc5882390db969b7c925903e5d Gerrit-Change-Number: 25453 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:55:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 06:56:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 06:56:54 +0000 Subject: Change in osmo-bts[master]: abis.c: Convert early return to assert() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25455 ) Change subject: abis.c: Convert early return to assert() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f4953be735f526bb8b926979233b3c26ba67ce9 Gerrit-Change-Number: 25455 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:56: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 Sep 16 06:59:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 16 Sep 2021 06:59:15 +0000 Subject: Change in osmo-bts[master]: abis: Clear code and drop code not executed In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25451 ) Change subject: abis: Clear code and drop code not executed ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d Gerrit-Change-Number: 25451 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 06:59: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 Sep 16 07:12:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 07:12:36 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 07:12: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 Sep 16 07:24:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 07:24:30 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25458/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25458/2//COMMIT_MSG at 21 PS2, Line 21: forwarded another time, meaning one address w This change actually Duplicated text: "This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address w" https://gerrit.osmocom.org/c/osmo-bts/+/25458/2/include/osmo-bts/abis.h File include/osmo-bts/abis.h: https://gerrit.osmocom.org/c/osmo-bts/+/25458/2/include/osmo-bts/abis.h at 12 PS2, Line 12: ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ Is this a leftover or intentional? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 07:24: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 Thu Sep 16 07:26:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 07:26:49 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 07:26:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 07:27:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 07:27:31 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CN... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25471 ) Change subject: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 Gerrit-Change-Number: 25471 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 07:27: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 Sep 16 07:29:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 07:29:13 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Add missing item in event mask list for state ENABLED In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25472 ) Change subject: nm_*_fsm: Add missing item in event mask list for state ENABLED ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 Gerrit-Change-Number: 25472 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 07: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 Thu Sep 16 09:14:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:14:01 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: msc_vlr_test: remove DLMGCP log messages from unit test output References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25476 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... msc_vlr_test: remove DLMGCP log messages from unit test output The log output of libosmo-mgcp-client has changed. This change causes the unit tests to fail because the log output does not match anymore. Lets disable the DLMGCP log output since it is of minor importance for VLR testing anyway. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 13 files changed, 1 insertion(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/76/25476/1 diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 288040f..cd98048 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index b651659..3f5c357 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index ad2b80c..cd179a3 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 5f6b370..a0f035a 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index f0d94b4..360563d 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 3717533..50662cd 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ccc82a..8f64a29 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 3350431..c08ae1a 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 3de18bf..0026b89 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index 4121a26..27f826e 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index db158d6..9ff099f 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 3e5dbae..1697230 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index e00c337..92129aa 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1215,6 +1215,7 @@ log_set_print_filename(osmo_stderr_target, 0); log_set_print_category(osmo_stderr_target, 1); log_set_category_filter(osmo_stderr_target, DLSMS, 1, LOGL_DEBUG); + log_set_category_filter(osmo_stderr_target, DLMGCP, 0, LOGL_NOTICE); if (cmdline_opts.verbose) { log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:14:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:14:02 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E1-fa9e_=E2=86=92_1=2E6=2E4?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25477 ) Change subject: Bump version: 1.6.3.1-fa9e ? 1.6.4 ...................................................................... Bump version: 1.6.3.1-fa9e ? 1.6.4 Fix building against osmo-mgw master. Change-Id: I6e312169873a37f7e10c4c8e0ed784cdf05bcfa7 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/77/25477/1 diff --git a/debian/changelog b/debian/changelog index 81555fb..bd1e63e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-msc (1.6.4) unstable; urgency=medium + + [ Philipp Maier ] + * msc_vlr_test: remove DLMGCP log messages from unit test output + + -- Oliver Smith Thu, 16 Sep 2021 11:11:01 +0200 + osmo-msc (1.6.3) unstable; urgency=medium [ Neels Hofmeyr ] -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I6e312169873a37f7e10c4c8e0ed784cdf05bcfa7 Gerrit-Change-Number: 25477 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:14:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:14:23 +0000 Subject: Change in osmo-msc[osmith/1.7.1]: msc_vlr_test: remove DLMGCP log messages from unit test output References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25478 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... msc_vlr_test: remove DLMGCP log messages from unit test output The log output of libosmo-mgcp-client has changed. This change causes the unit tests to fail because the log output does not match anymore. Lets disable the DLMGCP log output since it is of minor importance for VLR testing anyway. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 13 files changed, 1 insertion(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/78/25478/1 diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 43237cf..e62857d 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_auth_use_twice_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index e8e3880..2322720 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_call_mo - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index f27d826..cddc592 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_gsm_authen - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index e55c14c..29e75fe 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ciph - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index 40b26d2..c8aaf4f 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_hlr_rej_auth_info_unknown_imsi - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 0821a71..df26bd1 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_hlr_timeout_lu_auth_info - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 0663f9d..89bef91 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ms_timeout_lu_auth_resp - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 755f463..9a9f3df 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_no_authen - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index b211fbf..0f50103 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_reject_2nd_conn - Location Update Request on one connection MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index f27108c..02b20b9 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_cm_service_without_lu - CM Service Request without a prior Location Updating MSC <--GERAN-A-- MS: GSM48_MT_MM_CM_SERV_REQ diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index e83cb01..9a70513 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index be858b5..7b0c709 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_umts_authen_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index 56f3684..102fba7 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1194,6 +1194,7 @@ log_set_print_category(osmo_stderr_target, 1); log_set_print_category_hex(osmo_stderr_target, 0); log_set_category_filter(osmo_stderr_target, DLSMS, 1, LOGL_DEBUG); + log_set_category_filter(osmo_stderr_target, DLMGCP, 0, LOGL_NOTICE); if (cmdline_opts.verbose) { log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25478 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:14:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:14:24 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E7=2E1=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-8d822-dirty_=E2=86=92_1=2E7=2E1?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25479 ) Change subject: Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 ...................................................................... Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 * Fix building against osmo-mgw master * Set libosmo-ranap to >= 0.7.0 in configure.ac, osmo-msc.spec.in (new check in osmo-release.sh) Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 --- M configure.ac M contrib/osmo-msc.spec.in M debian/changelog 3 files changed, 9 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/79/25479/1 diff --git a/configure.ac b/configure.ac index db7507a..1207171 100644 --- a/configure.ac +++ b/configure.ac @@ -109,7 +109,7 @@ [osmo_ac_iu="$enableval"],[osmo_ac_iu="no"]) if test "x$osmo_ac_iu" = "xyes" ; then PKG_CHECK_MODULES(LIBASN1C, libasn1c >= 0.9.30) - PKG_CHECK_MODULES(LIBOSMORANAP, libosmo-ranap >= 0.3.0) + PKG_CHECK_MODULES(LIBOSMORANAP, libosmo-ranap >= 0.7.0) AC_DEFINE(BUILD_IU, 1, [Define if we want to build IuPS and IuCS interfaces support]) fi AM_CONDITIONAL(BUILD_IU, test "x$osmo_ac_iu" = "xyes") diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index d588e5b..bd671f5 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -52,7 +52,7 @@ %{?systemd_requires} %if %{with_iu} BuildRequires: pkgconfig(libasn1c) >= 0.9.30 -BuildRequires: pkgconfig(libosmo-ranap) >= 0.3.0 +BuildRequires: pkgconfig(libosmo-ranap) >= 0.7.0 %endif %description diff --git a/debian/changelog b/debian/changelog index 758173b..ab4aabe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-msc (1.7.1) unstable; urgency=medium + + [ Philipp Maier ] + * msc_vlr_test: remove DLMGCP log messages from unit test output + + -- Oliver Smith Thu, 16 Sep 2021 10:51:07 +0200 + osmo-msc (1.7.0) unstable; urgency=medium [ Keith Whyte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 Gerrit-Change-Number: 25479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:15:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:15:02 +0000 Subject: Change in osmo-ci[master]: build-old-tags: mark osmo-msc 1.7.0 as known error References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/25480 ) Change subject: build-old-tags: mark osmo-msc 1.7.0 as known error ...................................................................... build-old-tags: mark osmo-msc 1.7.0 as known error Old osmo-msc releases failed to build because logging output of libosmo-mgcp-client has changed. I'm backporting the fix as 1.7.1 and 1.6.4. The script builds the last 3 releases (1.6.4, 1.7.0, 1.7.1), so mark 1.7.0 as known error. Related: osmo-msc Id197e4ab9ba12e284299ef520edee9c362513bf1 Change-Id: I86f8252d450165f4be3d7c97fa70235638f7dd96 --- M scripts/osmocom-build-old-tags-against-master.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/80/25480/1 diff --git a/scripts/osmocom-build-old-tags-against-master.sh b/scripts/osmocom-build-old-tags-against-master.sh index e0abe8c..71d5a1f 100755 --- a/scripts/osmocom-build-old-tags-against-master.sh +++ b/scripts/osmocom-build-old-tags-against-master.sh @@ -72,6 +72,7 @@ ;; osmo-msc) echo "1.3.0" # -Werror and deprecated gsm0480_create_ussd_release_complete(), fixed in 1.3.1 + echo "1.7.0" # testsuite, fixed in 1.7.1 ;; osmo-pcu) echo "0.5.0" # testsuite -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I86f8252d450165f4be3d7c97fa70235638f7dd96 Gerrit-Change-Number: 25480 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:16:38 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:16:38 +0000 Subject: Change in osmo-msc[master]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25449 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 2: backport for old releases: https://gerrit.osmocom.org/q/topic:fix-msc-releases -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25449 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 09: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 Thu Sep 16 09:36:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:36:12 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: tests/test_nodes.vty: skip mgw local-ip line References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25481 ) Change subject: tests/test_nodes.vty: skip mgw local-ip line ...................................................................... tests/test_nodes.vty: skip mgw local-ip line Skip this line, as the format has changed in newer libosmo-mgcp-client code. Fix for: Exception: Result mismatch: Mismatch: Expect: ' mgw local-ip A.B.C.D' Got: ' mgw local-ip (A.B.C.D|X:X::X:X)' Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a --- M tests/test_nodes.vty 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/81/25481/1 diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index a4e0e15..7c0ef05 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -69,7 +69,7 @@ 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 no neighbor (a|iu) (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME - mgw local-ip A.B.C.D + ... mgw local-port <0-65535> mgw remote-ip A.B.C.D mgw remote-port <0-65535> -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a Gerrit-Change-Number: 25481 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:36:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:36:13 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E2-82203e_=E2=86=92_1=2E6=2E4?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25482 ) Change subject: Bump version: 1.6.3.2-82203e ? 1.6.4 ...................................................................... Bump version: 1.6.3.2-82203e ? 1.6.4 Fix building against osmo-mgw master. Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 --- M debian/changelog 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/82/25482/1 diff --git a/debian/changelog b/debian/changelog index 81555fb..42b19af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +osmo-msc (1.6.4) unstable; urgency=medium + + [ Philipp Maier ] + * msc_vlr_test: remove DLMGCP log messages from unit test output + + [ Oliver Smith ] + * tests/test_nodes.vty: skip mgw local-ip line + + -- Oliver Smith Thu, 16 Sep 2021 11:35:12 +0200 + osmo-msc (1.6.3) unstable; urgency=medium [ Neels Hofmeyr ] -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 Gerrit-Change-Number: 25482 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:37:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:37:00 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E1-fa9e_=E2=86=92_1=2E6=2E4?= In-Reply-To: References: Message-ID: osmith has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25477 ) Change subject: Bump version: 1.6.3.1-fa9e ? 1.6.4 ...................................................................... Abandoned vty tests failed, created a new release with those fixed. after 'make release', it has a new Change-Id. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I6e312169873a37f7e10c4c8e0ed784cdf05bcfa7 Gerrit-Change-Number: 25477 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:45:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:45:25 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: tests/test_nodes.vty: skip mgw local-ip line 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/+/25481 to look at the new patch set (#2). Change subject: tests/test_nodes.vty: skip mgw local-ip line ...................................................................... tests/test_nodes.vty: skip mgw local-ip line Skip this line, as the format has changed in newer libosmo-mgcp-client code. Fix for: Exception: Result mismatch: Mismatch: Expect: ' mgw local-ip A.B.C.D' Got: ' mgw local-ip (A.B.C.D|X:X::X:X)' Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a --- M tests/test_nodes.vty 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/81/25481/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a Gerrit-Change-Number: 25481 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 09:45:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 09:45:25 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E2-82203e_=E2=86=92_1=2E6=2E4?= 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/+/25482 to look at the new patch set (#2). Change subject: Bump version: 1.6.3.2-82203e ? 1.6.4 ...................................................................... Bump version: 1.6.3.2-82203e ? 1.6.4 Fix building against osmo-mgw master. Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 --- M debian/changelog 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/82/25482/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 Gerrit-Change-Number: 25482 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:12:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 10:12:28 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E2-fa47_=E2=86=92_1=2E6=2E4?= 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/+/25482 to look at the new patch set (#3). Change subject: Bump version: 1.6.3.2-fa47 ? 1.6.4 ...................................................................... Bump version: 1.6.3.2-fa47 ? 1.6.4 Fix building against osmo-mgw master. Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 --- M debian/changelog 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/82/25482/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 Gerrit-Change-Number: 25482 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:13:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 10:13:50 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: tests/test_nodes.vty: skip mgw ip lines In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25481 ) Change subject: tests/test_nodes.vty: skip mgw ip lines ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a Gerrit-Change-Number: 25481 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 16 Sep 2021 10:13:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:14:56 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 10:14:56 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25476 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 1: Verified+1 Jenkins failure is expected, since VTY tests are failing. The next patch fixes it. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 10:14:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:14:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 10:14:58 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: osmith has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25476 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:34:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:34:07 +0000 Subject: Change in osmo-ci[master]: build-old-tags: mark osmo-msc 1.7.0 as known error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25480 ) Change subject: build-old-tags: mark osmo-msc 1.7.0 as known error ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I86f8252d450165f4be3d7c97fa70235638f7dd96 Gerrit-Change-Number: 25480 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:34: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 Sep 16 10:34:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:34:21 +0000 Subject: Change in osmo-msc[osmith/1.7.1]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25478 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25478 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:34:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:34:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:34:30 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25476 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:34:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:35:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:35:15 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: tests/test_nodes.vty: skip mgw ip lines In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25481 ) Change subject: tests/test_nodes.vty: skip mgw ip lines ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a Gerrit-Change-Number: 25481 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:35:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:35:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:35:35 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E2-fa47_=E2=86=92_1=2E6=2E4?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25482 ) Change subject: Bump version: 1.6.3.2-fa47 ? 1.6.4 ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 Gerrit-Change-Number: 25482 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:35:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:37:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:37:07 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E7=2E1=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-8d822-dirty_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25479 ) Change subject: Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 ...................................................................... Patch Set 1: Why libosmo-ranap 0.7.0? Did you check the minimum required version there? or simply wrote last one? Is this fixed in master too? -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 Gerrit-Change-Number: 25479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:37:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 10:57:13 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 16 Sep 2021 10:57:13 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... pySim-shell: move command desc and verify_adm to PySimCommands Almost all pySim-shell related commands are agrgated in PySimCommands. There are a feq exceptions, so there are some commands in PysimApp. However, it makes sense to reserve PysimApp exclusively for very basic commands that do not directly relate to card operations. So lets move the command verify_adm and desc to PySimCommands. Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf --- M pySim-shell.py 1 file changed, 27 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/83/25483/1 diff --git a/pySim-shell.py b/pySim-shell.py index 7977ff5..244ad3c 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -114,35 +114,6 @@ """Display the intro banner""" self.poutput(self.intro) - @cmd2.with_category(CUSTOM_CATEGORY) - def do_verify_adm(self, arg): - """VERIFY the ADM1 PIN""" - if arg: - # use specified ADM-PIN - pin_adm = sanitize_pin_adm(arg) - else: - # try to find an ADM-PIN if none is specified - result = card_key_provider_get_field('ADM1', key='ICCID', value=self.iccid) - pin_adm = sanitize_pin_adm(result) - if pin_adm: - self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) - else: - self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self.iccid)) - return - - if pin_adm: - self.card.verify_adm(h2b(pin_adm)) - else: - self.poutput("error: cannot authenticate, no adm-pin!") - - @cmd2.with_category(CUSTOM_CATEGORY) - def do_desc(self, opts): - """Display human readable file description for the currently selected file""" - desc = self.rs.selected_file.desc - if desc: - self.poutput(desc) - else: - self.poutput("no description available") @with_default_category('pySim Commands') class PySimCommands(CommandSet): @@ -319,6 +290,33 @@ self._cmd.poutput('Card ATR: %s' % atr) self._cmd.update_prompt() + def do_desc(self, opts): + """Display human readable file description for the currently selected file""" + desc = self._cmd.rs.selected_file.desc + if desc: + self._cmd.poutput(desc) + else: + self._cmd.poutput("no description available") + + def do_verify_adm(self, arg): + """VERIFY the ADM1 PIN""" + if arg: + # use specified ADM-PIN + pin_adm = sanitize_pin_adm(arg) + else: + # try to find an ADM-PIN if none is specified + result = card_key_provider_get_field('ADM1', key='ICCID', value=self._cmd.iccid) + pin_adm = sanitize_pin_adm(result) + if pin_adm: + self._cmd.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self._cmd.iccid)) + else: + self._cmd.poutput("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) + return + + if pin_adm: + self._cmd.card.verify_adm(h2b(pin_adm)) + else: + self._cmd.poutput("error: cannot authenticate, no adm-pin!") @with_default_category('ISO7816 Commands') class Iso7816Commands(CommandSet): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 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 Sep 16 10:58:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 10:58:02 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25464/2/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/2/include/osmocom/core/stat_item.h at 46 PS2, Line 46: struct osmo_stat_item_value values[0]; It really makes no sense to keep this, since anyway it points to a now wrong memory region not containing the expected values? Or is it always 0 from last_offs? https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 42 PS1, Line 42: int32_t not_stats_next_id; > oh whoops i didn't mean to rename the member at all. [?] So I assume from your tests that these fields are not being used directl by anybody anymore? If that's the case, I'd favor dropping them. Specially since it's a few bytes per item, where a group instance can have a lot of items and a program can have a lot of group instances. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 10:58:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:01:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:01:23 +0000 Subject: Change in osmo-bts[master]: abis: Clear code and drop code not executed In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25451 ) Change subject: abis: Clear code and drop code not executed ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d Gerrit-Change-Number: 25451 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 11:01:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:01:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:01:39 +0000 Subject: Change in osmo-bts[master]: abis: Clear code and drop code not executed In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25451 ) Change subject: abis: Clear code and drop code not executed ...................................................................... abis: Clear code and drop code not executed abis_init() sets "g_bts = bts;", hence bts object is the same as g_bts (since we only have 1 BTS object in osmo-bts). As a result, dropping checking first bts->... and later g_bts->... makes no sense: the later condition will always be false. Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d --- M src/common/abis.c 1 file changed, 2 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified osmith: 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/abis.c b/src/common/abis.c index 3325fab..7503798 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -102,18 +102,12 @@ LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " "If this situation persists, please check your BTS and BSC configuration files for errors. " "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", - (uint64_t) (now.tv_sec - g_bts->oml_conn_established_timestamp.tv_sec)); + (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); } bts->oml_link = NULL; oml_rsl_was_connected = true; } - memset(&g_bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); - - if (g_bts->osmo_link) { - e1inp_sign_link_destroy(g_bts->osmo_link); - g_bts->osmo_link = NULL; - oml_rsl_was_connected = true; - } + memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); /* Then iterate over the RSL signalling links */ llist_for_each_entry(trx, &bts->trx_list, list) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5018199221fb3c3329a59d0b91e827f077cef85d Gerrit-Change-Number: 25451 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:01:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:01:40 +0000 Subject: Change in osmo-bts[master]: abis.h: Drop unused state In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25452 ) Change subject: abis.h: Drop unused state ...................................................................... abis.h: Drop unused state Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 --- M include/osmo-bts/abis.h 1 file changed, 0 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index 8963c3c..b05461b 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -6,16 +6,6 @@ #include -#define OML_RETRY_TIMER 5 -#define OML_PING_TIMER 20 - -enum { - LINK_STATE_IDLE = 0, - LINK_STATE_RETRYING, - LINK_STATE_CONNECTING, - LINK_STATE_CONNECT, -}; - enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_DOWN, ABIS_LINK_EV_VTY_RM_ADDR, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I11173af3a543f6679ca9d43064bf071c214b1898 Gerrit-Change-Number: 25452 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:01:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:01:40 +0000 Subject: Change in osmo-bts[master]: cosmetic: fix typo in comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25456 ) Change subject: cosmetic: fix typo in comment ...................................................................... cosmetic: fix typo in comment Change-Id: I0e4fdad66c0bad849a7b960cf78f9f45b56fcb95 --- 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 7503798..fc87739 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -192,7 +192,7 @@ struct gsm_bts *bts = priv->bts; /* None of the configured BSCs was reachable or there was an existing - * OML/RSL connection that beoke. Initiate BTS process shut down now. */ + * OML/RSL connection that broke. Initiate BTS process shut down now. */ bts_model_abis_close(bts); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0e4fdad66c0bad849a7b960cf78f9f45b56fcb95 Gerrit-Change-Number: 25456 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:01:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:01:40 +0000 Subject: Change in osmo-bts[master]: abis.c: Rearrange code to follow logic state order In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25453 ) Change subject: abis.c: Rearrange code to follow logic state order ...................................................................... abis.c: Rearrange code to follow logic state order CONNECTING state comes first in logical order of states (as properly seen in enum of states), however, the FSM struct definition and state action functions are swapped. Let's put them in order. Change-Id: I0cae561926b460dc5882390db969b7c925903e5d --- M src/common/abis.c 1 file changed, 55 insertions(+), 55 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/common/abis.c b/src/common/abis.c index fc87739..265883e 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,53 +81,6 @@ int line_ctr; }; -static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) -{ - struct abis_link_fsm_priv *priv = fi->priv; - struct gsm_bts *bts = priv->bts; - struct gsm_bts_trx *trx; - bool oml_rsl_was_connected = false; - - OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); - - /* First remove the OML signalling link */ - if (bts->oml_link) { - struct timespec now; - - e1inp_sign_link_destroy(bts->oml_link); - - /* Log a special notice if the OML connection was dropped relatively quickly. */ - if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && - bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { - LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " - "If this situation persists, please check your BTS and BSC configuration files for errors. " - "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", - (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); - } - bts->oml_link = NULL; - oml_rsl_was_connected = true; - } - memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); - - /* Then iterate over the RSL signalling links */ - llist_for_each_entry(trx, &bts->trx_list, list) { - if (trx->rsl_link) { - e1inp_sign_link_destroy(trx->rsl_link); - trx->rsl_link = NULL; - oml_rsl_was_connected = true; - } - } - - /* Note: if there was an OML or RSL connection present (the BTS was connected to a BSC). Then we will not try - * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states - * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host - * to restart osmo-bts. */ - if (oml_rsl_was_connected) - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); - else - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); -} - static void abis_link_connecting_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct e1inp_line *line; @@ -186,6 +139,53 @@ osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); } +static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct abis_link_fsm_priv *priv = fi->priv; + struct gsm_bts *bts = priv->bts; + struct gsm_bts_trx *trx; + bool oml_rsl_was_connected = false; + + OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); + + /* First remove the OML signalling link */ + if (bts->oml_link) { + struct timespec now; + + e1inp_sign_link_destroy(bts->oml_link); + + /* Log a special notice if the OML connection was dropped relatively quickly. */ + if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && + bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { + LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " + "If this situation persists, please check your BTS and BSC configuration files for errors. " + "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", + (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); + } + bts->oml_link = NULL; + oml_rsl_was_connected = true; + } + memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); + + /* Then iterate over the RSL signalling links */ + llist_for_each_entry(trx, &bts->trx_list, list) { + if (trx->rsl_link) { + e1inp_sign_link_destroy(trx->rsl_link); + trx->rsl_link = NULL; + oml_rsl_was_connected = true; + } + } + + /* Note: if there was an OML or RSL connection present (the BTS was connected to a BSC). Then we will not try + * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states + * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host + * to restart osmo-bts. */ + if (oml_rsl_was_connected) + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); + else + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); +} + static void abis_link_failed_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct abis_link_fsm_priv *priv = fi->priv; @@ -215,6 +215,14 @@ } static struct osmo_fsm_state abis_link_fsm_states[] = { + [ABIS_LINK_ST_CONNECTING] = { + .name = "CONNECTING", + .out_state_mask = + S(ABIS_LINK_ST_CONNECTING) | + S(ABIS_LINK_ST_CONNECTED) | + S(ABIS_LINK_ST_FAILED), + .onenter = abis_link_connecting_onenter, + }, [ABIS_LINK_ST_CONNECTED] = { .name = "CONNECTED", .in_event_mask = @@ -224,14 +232,6 @@ S(ABIS_LINK_ST_FAILED), .action = abis_link_connected, }, - [ABIS_LINK_ST_CONNECTING] = { - .name = "CONNECTING", - .out_state_mask = - S(ABIS_LINK_ST_CONNECTING) | - S(ABIS_LINK_ST_CONNECTED) | - S(ABIS_LINK_ST_FAILED), - .onenter = abis_link_connecting_onenter, - }, [ABIS_LINK_ST_FAILED] = { .name = "FAILED", .onenter = abis_link_failed_onenter, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0cae561926b460dc5882390db969b7c925903e5d Gerrit-Change-Number: 25453 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:01:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:01:41 +0000 Subject: Change in osmo-bts[master]: abis.c: Convert early return to assert() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25455 ) Change subject: abis.c: Convert early return to assert() ...................................................................... abis.c: Convert early return to assert() This should simply not happen. If other event is received, something is terribly wrong, so we should exit immediately instead of silently failing. Change-Id: I5f4953be735f526bb8b926979233b3c26ba67ce9 --- M src/common/abis.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/common/abis.c b/src/common/abis.c index 265883e..e82ac96 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -201,8 +201,7 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; - if (event != ABIS_LINK_EV_VTY_RM_ADDR) - return; + OSMO_ASSERT(event == ABIS_LINK_EV_VTY_RM_ADDR); if (priv->bsc_oml_host == data) { if (llist_count(&bts->bsc_oml_hosts) <= 1) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5f4953be735f526bb8b926979233b3c26ba67ce9 Gerrit-Change-Number: 25455 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:02:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:02:24 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 to look at the new patch set (#2). Change subject: power_control: Drop unused param in function ...................................................................... power_control: Drop unused param in function Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d --- M src/common/power_control.c 1 file changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/75/25475/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 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 Sep 16 11:06:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:06:45 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25458/2/include/osmo-bts/abis.h File include/osmo-bts/abis.h: https://gerrit.osmocom.org/c/osmo-bts/+/25458/2/include/osmo-bts/abis.h at 12 PS2, Line 12: ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ > Is this a leftover or intentional? Intentional, I'm documenting the same structure I'm changing in the FSM implementation. It was one of the points being a mess. VTY code was calling this event already passing struct bsc_oml_host, but in the FSM it was being matches directly against the llist_head. It just worked because the llist_head was the first item of the struct. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 11:06:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:08:46 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 to look at the new patch set (#3). Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... abis.c: Fix mess with priv->bsc_oml_host The pointer was used as "struct bsc_oml_host" sometimes, and other times as "struct llist_head". It just worked because bsc_oml_host->list is the first item in the script. The code was really confusing, also because the bts list of items has a name really similar to the one currently assigned. Let's rename the currently assigned address to "current_bsc", store it always as "struct bsc_oml_host*" and finally use llist_entry helpers when needed. The related code is also moved to a helper function to enclose there the logic to get next BSC in list. This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address will be skipped. This could be considered a bug, but this situation is really special and anyway the entire logic will be changed in new commits where we'll keep reconnecting in loop without exiting when reaching the end of the list, so we are fine with it. Think of this commit as a preparation commit for next ones. Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 32 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/58/25458/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:08:46 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 to look at the new patch set (#3). Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... abis.c: Loop over list of BSCs until connection succeeds Do not exit if all BSCs in the list fail to connect, keep trying forever. This commit still doesn't change the logic after BTS has successfully connected to a BSC. In that situation, if the link goes down, BTS will exit in order to reset all state and let the user/system restart it. Related: SYS#4971 Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 --- M src/common/abis.c 1 file changed, 25 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/59/25459/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:08:46 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CN... In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 to look at the new patch set (#2). Change subject: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF ...................................................................... trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/25471/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 Gerrit-Change-Number: 25471 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:08:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:08:46 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Add missing item in event mask list for state ENABLED In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 to look at the new patch set (#2). Change subject: nm_*_fsm: Add missing item in event mask list for state ENABLED ...................................................................... nm_*_fsm: Add missing item in event mask list for state ENABLED Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 --- M src/common/nm_bb_transc_fsm.c M src/common/nm_radio_carrier_fsm.c 2 files changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/25472/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 Gerrit-Change-Number: 25472 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:13:36 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 16 Sep 2021 11:13:36 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd --- M pySim-shell.py 1 file changed, 54 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/1 diff --git a/pySim-shell.py b/pySim-shell.py index 244ad3c..5f45cf4 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -50,6 +50,41 @@ from pySim.card_key_provider import CardKeyProviderCsv, card_key_provider_register, card_key_provider_get_field +def init_card(sl): + """ + Detect card in reader and setup card profile and runtime state. This + function must be called at least once on startup. The card and runtime + state object (rs) is required for all pySim-shell commands. + """ + + # Wait up to three seconds for a card in reader and try to detect + # the card type. + print("Waiting for card...") + try: + sl.wait_for_card(3); + except NoCardError: + print("No card detected!") + return None, None; + + card = card_detect("auto", scc) + if card is None: + print("Could not detect card type!") + return None, None; + + # Create runtime state with card profile + profile = CardProfileUICC() + profile.add_application(CardApplicationUSIM) + profile.add_application(CardApplicationISIM) + rs = RuntimeState(card, profile) + + # FIXME: do this dynamically + rs.mf.add_file(DF_TELECOM()) + rs.mf.add_file(DF_GSM()) + + # inform the transport that we can do context-specific SW interpretation + sl.set_sw_interpreter(rs) + + return rs, card class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' @@ -472,44 +507,12 @@ # Parse options opts = option_parser.parse_args() - # Init card reader driver - sl = init_reader(opts) - if (sl == None): - exit(1) - - # Create command layer - scc = SimCardCommands(transport=sl) - - sl.wait_for_card(); - - card_handler = card_handler(sl) - - card = card_detect("auto", scc) - if card is None: - print("No card detected!") - sys.exit(2) - - profile = CardProfileUICC() - profile.add_application(CardApplicationUSIM) - profile.add_application(CardApplicationISIM) - - rs = RuntimeState(card, profile) - # inform the transport that we can do context-specific SW interpretation - sl.set_sw_interpreter(rs) - - # FIXME: do this dynamically - rs.mf.add_file(DF_TELECOM()) - rs.mf.add_file(DF_GSM()) - # If a script file is specified, be sure that it actually exists if opts.script: if not os.access(opts.script, os.R_OK): print("Invalid script file!") sys.exit(2) - app = PysimApp(card, rs, opts.script) - rs.select('MF', app) - # Register csv-file as card data provider, either from specified CSV # or from CSV file in home directory csv_default = str(Path.home()) + "/.osmocom/pysim/card_data.csv" @@ -518,6 +521,25 @@ if os.path.isfile(csv_default): card_key_provider_register(CardKeyProviderCsv(csv_default)) + # Init card reader driver + sl = init_reader(opts) + if (sl == None): + exit(1) + + # Create command layer + scc = SimCardCommands(transport=sl) + + card_handler = card_handler(sl) + + # Detect and initalize the card in the reader. This may fail when there + # is no card in the reader or the card is unresponsive. PysimApp is + # able to tolerate and recover from that. + rs, card = init_card(sl) + if (rs == None or card == None): + exit(1) + app = PysimApp(card, rs, opts.script) + rs.select('MF', app) + # If the user supplies an ADM PIN at via commandline args authenticate # immediately so that the user does not have to use the shell commands pin_adm = sanitize_pin_adm(opts.pin_adm, opts.pin_adm_hex) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 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 Sep 16 11:14:32 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 16 Sep 2021 11:14:32 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: dexter has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd --- M pySim-shell.py 1 file changed, 51 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:30:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 11:30:42 +0000 Subject: Change in osmo-mgw[master]: Fix attribute parsing on gcc 11.1.0 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/+/25454 to look at the new patch set (#2). Change subject: Fix attribute parsing on gcc 11.1.0 ...................................................................... Fix attribute parsing on gcc 11.1.0 Fixes following compilation error: "osmo-mgw/src/libosmo-mgcp/mgcp_stat.c:39:1: error: ?integer? attribute directive ignored" Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Fixes: f936e10f07b7a55d53a6f426b80364f6d368c5a0 --- M src/libosmo-mgcp/mgcp_stat.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/54/25454/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Gerrit-Change-Number: 25454 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Hoernchen Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 11:33:12 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 16 Sep 2021 11:33:12 +0000 Subject: Change in pysim[master]: test please ignore References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25485 ) Change subject: test please ignore ...................................................................... test please ignore Change-Id: I0f04f115bbe1406817ee45be07ba1df1fab53242 --- A testme 1 file changed, 0 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/85/25485/1 diff --git a/testme b/testme new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/testme -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f04f115bbe1406817ee45be07ba1df1fab53242 Gerrit-Change-Number: 25485 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 Sep 16 12:34:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:34:58 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25486 ) Change subject: contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 ...................................................................... contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 Sync with configure.ac, debian/control. Nowadays osmo-release.sh complains about this. Related: I8dbbd63fdbd35f5f90f20dcd7e710078f2d9e12a Change-Id: Ib3b9d6af8f9d4e807ff4106f95f0a5b13834a126 --- M contrib/osmo-msc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/86/25486/1 diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index a832408..3ead299 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -52,7 +52,7 @@ %{?systemd_requires} %if %{with_iu} BuildRequires: pkgconfig(libasn1c) >= 0.9.30 -BuildRequires: pkgconfig(libosmo-ranap) >= 0.3.0 +BuildRequires: pkgconfig(libosmo-ranap) >= 0.7.0 %endif %if 0%{?suse_version} Requires: libdbi-drivers-dbd-sqlite3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib3b9d6af8f9d4e807ff4106f95f0a5b13834a126 Gerrit-Change-Number: 25486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:35:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:35:24 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E7=2E1=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-8d822-dirty_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25479 ) Change subject: Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 ...................................................................... Patch Set 1: > Patch Set 1: > > Why libosmo-ranap 0.7.0? Did you check the minimum required version there? or simply wrote last one? it was increased to => 0.7.0 in debian/control in your 1.7.0 commit. The osmo-release.sh script complained that it's different from configure.ac and the .spec.in file, so I increased it there as well. > Is this fixed in master too? https://gerrit.osmocom.org/c/osmo-msc/+/25486 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 Gerrit-Change-Number: 25479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 12:35:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:37:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:37:59 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25476 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... msc_vlr_test: remove DLMGCP log messages from unit test output The log output of libosmo-mgcp-client has changed. This change causes the unit tests to fail because the log output does not match anymore. Lets disable the DLMGCP log output since it is of minor importance for VLR testing anyway. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 13 files changed, 1 insertion(+), 12 deletions(-) Approvals: osmith: Verified pespin: Looks good to me, approved diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 288040f..cd98048 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index b651659..3f5c357 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index ad2b80c..cd179a3 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 5f6b370..a0f035a 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index f0d94b4..360563d 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 3717533..50662cd 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 6ccc82a..8f64a29 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 3350431..c08ae1a 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 3de18bf..0026b89 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index 4121a26..27f826e 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index db158d6..9ff099f 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index 3e5dbae..1697230 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,4 +1,3 @@ -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 diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index e00c337..92129aa 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1215,6 +1215,7 @@ log_set_print_filename(osmo_stderr_target, 0); log_set_print_category(osmo_stderr_target, 1); log_set_category_filter(osmo_stderr_target, DLSMS, 1, LOGL_DEBUG); + log_set_category_filter(osmo_stderr_target, DLMGCP, 0, LOGL_NOTICE); if (cmdline_opts.verbose) { log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25476 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:38:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:38:00 +0000 Subject: Change in osmo-msc[osmith/1.6.4]: tests/test_nodes.vty: skip mgw ip lines In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25481 ) Change subject: tests/test_nodes.vty: skip mgw ip lines ...................................................................... tests/test_nodes.vty: skip mgw ip lines Skip these lines, as the format has changed in newer libosmo-mgcp-client code. Fix for: Exception: Result mismatch: Mismatch: Expect: ' mgw local-ip A.B.C.D' Got: ' mgw local-ip (A.B.C.D|X:X::X:X)' Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a --- M tests/test_nodes.vty 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index a4e0e15..72a6235 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -69,9 +69,9 @@ 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 no neighbor (a|iu) (ran-pc|msc-ipa-name) RAN_PC_OR_MSC_IPA_NAME - mgw local-ip A.B.C.D +... mgw local-port <0-65535> - mgw remote-ip A.B.C.D +... mgw remote-port <0-65535> ... -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: Ib2bb68fce9f7ab031ddb891ef269172679f8fe1a Gerrit-Change-Number: 25481 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:38:00 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:38:00 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E6=2E4=5D=3A_Bump_version=3A_1=2E6=2E3=2E2-fa47_=E2=86=92_1=2E6=2E4?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25482 ) Change subject: Bump version: 1.6.3.2-fa47 ? 1.6.4 ...................................................................... Bump version: 1.6.3.2-fa47 ? 1.6.4 Fix building against osmo-mgw master. Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 --- M debian/changelog 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 81555fb..43c6201 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +osmo-msc (1.6.4) unstable; urgency=medium + + [ Philipp Maier ] + * msc_vlr_test: remove DLMGCP log messages from unit test output + + [ Oliver Smith ] + * tests/test_nodes.vty: skip mgw ip lines + + -- Oliver Smith Thu, 16 Sep 2021 12:11:31 +0200 + osmo-msc (1.6.3) unstable; urgency=medium [ Neels Hofmeyr ] -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.6.4 Gerrit-Change-Id: I5ba3b0aadc82cc867133e19f68c415b994c045f5 Gerrit-Change-Number: 25482 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:41:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:41:25 +0000 Subject: Change in osmo-ci[master]: build-old-tags: mark osmo-msc 1.7.0 as known error In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/25480 ) Change subject: build-old-tags: mark osmo-msc 1.7.0 as known error ...................................................................... build-old-tags: mark osmo-msc 1.7.0 as known error Old osmo-msc releases failed to build because logging output of libosmo-mgcp-client has changed. I'm backporting the fix as 1.7.1 and 1.6.4. The script builds the last 3 releases (1.6.4, 1.7.0, 1.7.1), so mark 1.7.0 as known error. Related: osmo-msc Id197e4ab9ba12e284299ef520edee9c362513bf1 Change-Id: I86f8252d450165f4be3d7c97fa70235638f7dd96 --- M scripts/osmocom-build-old-tags-against-master.sh 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/scripts/osmocom-build-old-tags-against-master.sh b/scripts/osmocom-build-old-tags-against-master.sh index e0abe8c..71d5a1f 100755 --- a/scripts/osmocom-build-old-tags-against-master.sh +++ b/scripts/osmocom-build-old-tags-against-master.sh @@ -72,6 +72,7 @@ ;; osmo-msc) echo "1.3.0" # -Werror and deprecated gsm0480_create_ussd_release_complete(), fixed in 1.3.1 + echo "1.7.0" # testsuite, fixed in 1.7.1 ;; osmo-pcu) echo "0.5.0" # testsuite -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/25480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I86f8252d450165f4be3d7c97fa70235638f7dd96 Gerrit-Change-Number: 25480 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:46:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:46:43 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 12:46:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 12:48:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 12:48:33 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25475 ) Change subject: power_control: Drop unused param in function ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 16 Sep 2021 12:48:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 13:32:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 13:32:13 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25486 ) Change subject: contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib3b9d6af8f9d4e807ff4106f95f0a5b13834a126 Gerrit-Change-Number: 25486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 13:32: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 Sep 16 13:32:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 13:32:15 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E7=2E1=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-8d822-dirty_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25479 ) Change subject: Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 Gerrit-Change-Number: 25479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 13:32: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 Sep 16 13:32:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 13:32:40 +0000 Subject: Change in osmo-msc[osmith/1.7.1]: msc_vlr_test: remove DLMGCP log messages from unit test output In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25478 ) Change subject: msc_vlr_test: remove DLMGCP log messages from unit test output ...................................................................... msc_vlr_test: remove DLMGCP log messages from unit test output The log output of libosmo-mgcp-client has changed. This change causes the unit tests to fail because the log output does not match anymore. Lets disable the DLMGCP log output since it is of minor importance for VLR testing anyway. Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Related: SYS#5091 --- 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 13 files changed, 1 insertion(+), 12 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 43237cf..e62857d 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_auth_use_twice_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index e8e3880..2322720 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_call_mo - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index f27d826..cddc592 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_gsm_authen - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index e55c14c..29e75fe 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ciph - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err index 40b26d2..c8aaf4f 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_hlr_rej_auth_info_unknown_imsi - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err index 0821a71..df26bd1 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_hlr_timeout_lu_auth_info - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 0663f9d..89bef91 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ms_timeout_lu_auth_resp - Total time passed: 0.000000 s - Location Update request causes a GSUP Send Auth Info request to HLR diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 755f463..9a9f3df 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_no_authen - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index b211fbf..0f50103 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_reject_2nd_conn - Location Update Request on one connection MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err index f27108c..02b20b9 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ b/tests/msc_vlr/msc_vlr_test_rest.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_cm_service_without_lu - CM Service Request without a prior Location Updating MSC <--GERAN-A-- MS: GSM48_MT_MM_CM_SERV_REQ diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index e83cb01..9a70513 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index be858b5..7b0c709 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -1,4 +1,3 @@ -DLMGCP MGCP client: using endpoint domain '@mgw' ===== test_umts_authen_geran - Location Update request causes a GSUP Send Auth Info request to HLR MSC <--GERAN-A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index 56f3684..102fba7 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -1194,6 +1194,7 @@ log_set_print_category(osmo_stderr_target, 1); log_set_print_category_hex(osmo_stderr_target, 0); log_set_category_filter(osmo_stderr_target, DLSMS, 1, LOGL_DEBUG); + log_set_category_filter(osmo_stderr_target, DLMGCP, 0, LOGL_NOTICE); if (cmdline_opts.verbose) { log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: Id197e4ab9ba12e284299ef520edee9c362513bf1 Gerrit-Change-Number: 25478 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 13:32:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 13:32:41 +0000 Subject: =?UTF-8?Q?Change_in_osmo-msc=5Bosmith/1=2E7=2E1=5D=3A_Bump_version=3A_1=2E7=2E0=2E1-8d822-dirty_=E2=86=92_1=2E7=2E1?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25479 ) Change subject: Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 ...................................................................... Bump version: 1.7.0.1-8d822-dirty ? 1.7.1 * Fix building against osmo-mgw master * Set libosmo-ranap to >= 0.7.0 in configure.ac, osmo-msc.spec.in (new check in osmo-release.sh) Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 --- M configure.ac M contrib/osmo-msc.spec.in M debian/changelog 3 files changed, 9 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/configure.ac b/configure.ac index db7507a..1207171 100644 --- a/configure.ac +++ b/configure.ac @@ -109,7 +109,7 @@ [osmo_ac_iu="$enableval"],[osmo_ac_iu="no"]) if test "x$osmo_ac_iu" = "xyes" ; then PKG_CHECK_MODULES(LIBASN1C, libasn1c >= 0.9.30) - PKG_CHECK_MODULES(LIBOSMORANAP, libosmo-ranap >= 0.3.0) + PKG_CHECK_MODULES(LIBOSMORANAP, libosmo-ranap >= 0.7.0) AC_DEFINE(BUILD_IU, 1, [Define if we want to build IuPS and IuCS interfaces support]) fi AM_CONDITIONAL(BUILD_IU, test "x$osmo_ac_iu" = "xyes") diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index d588e5b..bd671f5 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -52,7 +52,7 @@ %{?systemd_requires} %if %{with_iu} BuildRequires: pkgconfig(libasn1c) >= 0.9.30 -BuildRequires: pkgconfig(libosmo-ranap) >= 0.3.0 +BuildRequires: pkgconfig(libosmo-ranap) >= 0.7.0 %endif %description diff --git a/debian/changelog b/debian/changelog index 758173b..ab4aabe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +osmo-msc (1.7.1) unstable; urgency=medium + + [ Philipp Maier ] + * msc_vlr_test: remove DLMGCP log messages from unit test output + + -- Oliver Smith Thu, 16 Sep 2021 10:51:07 +0200 + osmo-msc (1.7.0) unstable; urgency=medium [ Keith Whyte ] -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: osmith/1.7.1 Gerrit-Change-Id: I0670373b6016100ef19bc2f459fa26cbaf288178 Gerrit-Change-Number: 25479 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 13:33:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 13:33:42 +0000 Subject: Change in osmo-msc[master]: contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25486 ) Change subject: contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 ...................................................................... contrib/osmo-msc.spec.in: require libosmo-ranap >= 0.7.0 Sync with configure.ac, debian/control. Nowadays osmo-release.sh complains about this. Related: I8dbbd63fdbd35f5f90f20dcd7e710078f2d9e12a Change-Id: Ib3b9d6af8f9d4e807ff4106f95f0a5b13834a126 --- M contrib/osmo-msc.spec.in 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/contrib/osmo-msc.spec.in b/contrib/osmo-msc.spec.in index a832408..3ead299 100644 --- a/contrib/osmo-msc.spec.in +++ b/contrib/osmo-msc.spec.in @@ -52,7 +52,7 @@ %{?systemd_requires} %if %{with_iu} BuildRequires: pkgconfig(libasn1c) >= 0.9.30 -BuildRequires: pkgconfig(libosmo-ranap) >= 0.3.0 +BuildRequires: pkgconfig(libosmo-ranap) >= 0.7.0 %endif %if 0%{?suse_version} Requires: libdbi-drivers-dbd-sqlite3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: Ib3b9d6af8f9d4e807ff4106f95f0a5b13834a126 Gerrit-Change-Number: 25486 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 14:26:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 14:26:16 +0000 Subject: Change in osmo-bts[master]: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS ... In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25474 to look at the new patch set (#2). Change subject: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS on C0 ...................................................................... scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS on C0 The commit implementing BCCH Carrier Power Reduction forgot to apply it for bursts for which there's no lchan controlled by OsmoBTS, such as those coming from PDCH timeslots. In PDCH timeslots, there's an lchan available, but it was not properly filled since there's no RSL Channel Activation being sent BSC->BTS. For other TRX, BS Power Reduction is still always 0. The BS Power Control Loop for those channels still needs to be implemented in OsmoPCU and the resulting bs_power be passed somehow over PCUIF together with RLCMAC data to OsmoBTS, so it can be applied there. In the case of TRX0, then the code would do something like: "att = OSMO_MIN(l1ts->ts->c0_power_red_db, data_ind.bs_power_att);" Fixes: 0e8d68437af4a99dc99d11d4e1f441246bd3ec00 Related: SYS#4919 Change-Id: I3c6985c2bc6779b15094a34f5d4a345c7d8d7b38 --- M src/common/scheduler.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/25474/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c6985c2bc6779b15094a34f5d4a345c7d8d7b38 Gerrit-Change-Number: 25474 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 Sep 16 15:40:59 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Thu, 16 Sep 2021 15:40:59 +0000 Subject: Change in osmo-ccid-firmware[master]: config: adjust dfll48m (usb) to match the docs References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25487 ) Change subject: config: adjust dfll48m (usb) to match the docs ...................................................................... config: adjust dfll48m (usb) to match the docs hal/documentation/usb_device_async.rst has a few things to say about the SOF clock recovery mode currently used for usb, so honor those settings. Additionally Footnote 1 in chapter 54.14 of the SAM D5x/E5x Family Data Sheet restricts the fine step value. Change-Id: I5d573859517eab6febda0bac836c4461c0f21bf0 --- M sysmoOCTSIM/config/hpl_oscctrl_config.h 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/87/25487/1 diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 17bcfc2..a7bc9b9 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -296,7 +296,7 @@ // Indicates whether Bypass Coarse Lock is enabled or not // dfll_arch_bplckc #ifndef CONF_DFLL_BPLCKC -#define CONF_DFLL_BPLCKC 0 +#define CONF_DFLL_BPLCKC 1 #endif // Quick Lock Disable @@ -324,7 +324,7 @@ // Indicates whether Stable DFLL Frequency is enabled or not // dfll_arch_stable #ifndef CONF_DFLL_STABLE -#define CONF_DFLL_STABLE 0 +#define CONF_DFLL_STABLE 1 #endif // Operating Mode Selection @@ -344,7 +344,7 @@ // Fine Maximum Step <0x0-0xFF> // dfll_arch_fstep #ifndef CONF_DFLL_FSTEP -#define CONF_DFLL_FSTEP 0x1 +#define CONF_DFLL_FSTEP 0xA #endif // DFLL Multiply Factor <0x0-0xFFFF> -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I5d573859517eab6febda0bac836c4461c0f21bf0 Gerrit-Change-Number: 25487 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 15:47:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:47:58 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 to look at the new patch set (#2). Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... pdch: has_gprs_only_tb_attached: use m_num_tbfs Make use of the separate GPRS counters added in previous patch I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 to shorten has_gprs_only_tb_attached. Related: SYS#4878 Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae --- M src/pdch.cpp 1 file changed, 1 insertion(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/01/25401/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Sep 16 15:48:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:48:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: enable 4 TRX References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 ) Change subject: pcu: TC_stat_pdch_avail_occ: enable 4 TRX ...................................................................... pcu: TC_stat_pdch_avail_occ: enable 4 TRX Enable multiple TRX to verify that counters work as expected if the allocator spreads TBFs over multiple TRX. Related: SYS#4878 Change-Id: Ibde5be120e893fcecceb72a888483d5a6bb8ce50 --- M pcu/PCU_Tests.ttcn 1 file changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/25488/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index c23e58c..b120587 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6000,9 +6000,12 @@ /* Initialize NS/BSSGP side */ f_init_bssgp(); - /* Only 1 TRX with 8 PDCH */ - f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0); - f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); + /* Only the 4 first TRX are enabled, each with 2 PDCHs. */ + f_PCUIF_PDCHMask_set(info_ind, '00000011'B, 0); + f_PCUIF_PDCHMask_set(info_ind, '00001100'B, 1); + f_PCUIF_PDCHMask_set(info_ind, '11000000'B, 2); + f_PCUIF_PDCHMask_set(info_ind, '00110000'B, 3); + f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (4 .. 7)); /* Allocate 4 GprsMS instances */ f_init_gprs_ms(4); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibde5be120e893fcecceb72a888483d5a6bb8ce50 Gerrit-Change-Number: 25488 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 15:48:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:48:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... pcu: add TC_stat_pdch_avail_occ_ms_not_known_* Add two new tests to verify occupied and available PDCH stats if MS is not known by the PCU. Related: SYS#4878 Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 --- M pcu/PCU_Tests.ttcn 1 file changed, 95 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/25489/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index d79e061..aa0795d 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -246,6 +246,14 @@ } } +private function f_pcuvty_set_alloc_algorithm_a() runs on RAW_PCU_Test_CT { + f_vty_config2(PCUVTY, {"pcu"}, "alloc-algorithm a"); +} + +private function f_pcuvty_set_alloc_algorithm_dynamic() runs on RAW_PCU_Test_CT { + f_vty_config2(PCUVTY, {"pcu"}, "alloc-algorithm dynamic"); +} + private function f_init_vty(charstring id, boolean egprs_only) runs on RAW_PCU_Test_CT { map(self:PCUVTY, system:PCUVTY); f_vty_set_prompts(PCUVTY); @@ -6047,6 +6055,91 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Test stats for available and occupied PDCHs, for MS which is not known by + * the PCU (e.g. because it was forgotten due to no interaction, and old DL + * data arrives from SGSN) */ +function f_tc_stat_pdch_avail_occ_ms_not_known(boolean egprs) runs on RAW_PCU_Test_CT { + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + const BssgpBvci bvci := mp_gb_cfg.bvc[0].bvci; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + + /* Only the 4 first TRX are enabled, each with 2 PDCHs. */ + f_PCUIF_PDCHMask_set(info_ind, '00000011'B, 0); + f_PCUIF_PDCHMask_set(info_ind, '00001100'B, 1); + f_PCUIF_PDCHMask_set(info_ind, '11000000'B, 2); + f_PCUIF_PDCHMask_set(info_ind, '00110000'B, 3); + f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (4 .. 7)); + + /* Allocate 1 GprsMS instance */ + f_init_gprs_ms(1); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Deterministic slot allocation */ + f_pcuvty_set_alloc_algorithm_a(); + + /* Reset stats */ + f_statsd_reset(); + + /* Establish BSSGP */ + f_bssgp_establish(); + + /* 8 PDCHs available, 0 occupied */ + var StatsDExpects expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 0, max := 0 } + }; + f_statsd_expect(expect); + + var GprsMS ms := g_ms[0]; /* We only use first MS in this test */ + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ + var octetstring data := f_rnd_octstring(1400); + if (egprs) { + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_egprs_def)); + } else { + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data)); + } + f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + + /* Wait timer X2002 and DL block is available after CCCH IMM ASS */ + f_sleep(X2002); + + /* 1 PDCH occupied */ + if (egprs) { + expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 1, max := 1 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 1, max := 1 } + }; + } else { + expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 1, max := 1 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 1, max := 1 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 0, max := 0 } + }; + } + f_statsd_expect(expect); + + /* Clean up */ + f_pcuvty_set_alloc_algorithm_dynamic(); + f_shutdown(__BFILE__, __LINE__, final := true); +} +testcase TC_stat_pdch_avail_occ_ms_not_known_gprs() runs on RAW_PCU_Test_CT { + f_tc_stat_pdch_avail_occ_ms_not_known(false); +} +testcase TC_stat_pdch_avail_occ_ms_not_known_egprs() runs on RAW_PCU_Test_CT { + f_tc_stat_pdch_avail_occ_ms_not_known(true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -6155,6 +6248,8 @@ execute (TC_pdch_energy_saving() ); execute( TC_stat_pdch_avail_occ() ); + execute( TC_stat_pdch_avail_occ_ms_not_known_gprs() ); + execute( TC_stat_pdch_avail_occ_ms_not_known_egprs() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 15:48:20 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:48:20 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 16 Sep 2021 15:48:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 15:48:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:48:54 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25401/1/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25401/1/src/pdch.cpp at 1111 PS1, Line 1111: return m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_EGPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_EGPRS] == 0; > That's incorrect. You want to check if there's at least one GPRS TBF, not if there's no EGPRS ones. [?] Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 15:48:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 15:49:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:49:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 ) Change subject: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 Gerrit-Change-Number: 25403 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 15:49: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 Sep 16 15:50:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 15:50:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 ) Change subject: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403/1/pcu/PCU_Tests.ttcn at 6034 PS1, Line 6034: > It would be great that you also test creation of a DL TBF for an MS which is not known by the PCU (for instance because it was forgotten due to no interaction and a quite older DL data arrives from SGSN). > Test with both non-being upgraded to GPRS and being upgraded to EGPRS. > See TC_mcs_max_dl() for idea on how to do it. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 > BTW, you probably want to enable multiple TRXs with PDCHs, this way the allocator should spread the TBFs over TRXs, which should help when counting and understanding the results. To enable more TRX, see f_PCUIF_PDCHMask_set() above and check other tests enabling more of them (most of the test don't do it). https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 Gerrit-Change-Number: 25403 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 15:50:30 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 16:23:39 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 16 Sep 2021 16:23:39 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/1/include/osmocom/core/stat_item.h at 42 PS1, Line 42: int32_t not_stats_next_id; > These members have no use and no longer any meaning, simply there to avoid compilation errors, just in case some third party has code accessing them; of course such code would no longer work now either; so maybe would be nicer to indeed throw a compilation error instead of keeping the meaningless members? +1 for that -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 16:23:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 16:51:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 16:51:33 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown proc... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25490 ) Change subject: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts ...................................................................... nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 --- M include/osmo-bts/nm_common_fsm.h M src/common/bts_shutdown_fsm.c M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c 8 files changed, 105 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/90/25490/1 diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 4679b23..4dab0ea 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -31,6 +31,7 @@ NM_EV_SW_ACT, NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, + NM_EV_SHUTDOWN_START, NM_EV_RSL_UP, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_RSL_DOWN, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_PHYLINK_UP, /* RadioCarrier and BaseBand Transceiver only */ diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index 0ac3078..cffe7cd 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -29,6 +29,7 @@ #include #include #include +#include #define X(s) (1 << (s)) @@ -58,6 +59,9 @@ unsigned int count; switch(event) { case BTS_SHUTDOWN_EV_START: + /* Firt announce to NM objects that we are starting a shutdown procedure: */ + osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SHUTDOWN_START, NULL); + count = count_trx_operational(bts); if (count) { bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL); diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 2897675..342699c 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -181,6 +181,28 @@ nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_DISABLED_OFFLINE); } +static void nm_bb_transc_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; + struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); + uint8_t tn; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&bb_transc->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + for (tn = 0; tn < TRX_NR_TS; tn++) { + struct gsm_bts_trx_ts *ts = &trx->ts[tn]; + osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SHUTDOWN_START, NULL); + } + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_bb_transc_fsm_states[] = { [NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -229,6 +251,8 @@ .states = nm_bb_transc_fsm_states, .num_states = ARRAY_SIZE(nm_bb_transc_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_bb_transc_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 6575b54..93e5740 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -102,6 +102,27 @@ { } +static void nm_bts_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&bts->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + llist_for_each_entry(trx, &bts->trx_list, list) { + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SHUTDOWN_START, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SHUTDOWN_START, NULL); + } + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_bts_fsm_states[] = { [NM_BTS_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -136,6 +157,8 @@ .states = nm_bts_fsm_states, .num_states = ARRAY_SIZE(nm_bts_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_bts_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 864aeab..e958917 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -102,6 +102,24 @@ { } +static void nm_bts_sm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&site_mgr->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SHUTDOWN_START, NULL); + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_bts_sm_fsm_states[] = { [NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -136,6 +154,8 @@ .states = nm_bts_sm_fsm_states, .num_states = ARRAY_SIZE(nm_bts_sm_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_bts_sm_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 4983c27..fc3c8a9 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -168,6 +168,20 @@ } } +static void nm_chan_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&ts->mo, -1, -1, NM_STATE_SHUTDOWN); + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_chan_fsm_states[] = { [NM_CHAN_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -226,6 +240,8 @@ .states = nm_chan_fsm_states, .num_states = ARRAY_SIZE(nm_chan_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_chan_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c index 7273e22..3b73605 100644 --- a/src/common/nm_common_fsm.c +++ b/src/common/nm_common_fsm.c @@ -27,6 +27,7 @@ { NM_EV_SW_ACT, "SW_ACT" }, { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, + { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" }, { NM_EV_RSL_UP, "RSL_UP" }, { NM_EV_RSL_DOWN, "RSL_DOWN" }, { NM_EV_PHYLINK_UP, "PHYLINK_UP" }, diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 9070737..daae6a6 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -171,6 +171,20 @@ nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_DISABLED_OFFLINE); } +static void nm_rcarrier_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&trx->mo, -1, -1, NM_STATE_SHUTDOWN); + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_rcarrier_fsm_states[] = { [NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -219,6 +233,8 @@ .states = nm_rcarrier_fsm_states, .num_states = ARRAY_SIZE(nm_rcarrier_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_rcarrier_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 Gerrit-Change-Number: 25490 Gerrit-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 Sep 16 16:51:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 16:51:34 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown pr... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25491 ) Change subject: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends ...................................................................... nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b --- M include/osmo-bts/nm_common_fsm.h M src/common/bts_shutdown_fsm.c M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c 8 files changed, 85 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/25491/1 diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 4dab0ea..13d7e0c 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -32,6 +32,7 @@ NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, NM_EV_SHUTDOWN_START, + NM_EV_SHUTDOWN_FINISH, NM_EV_RSL_UP, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_RSL_DOWN, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_PHYLINK_UP, /* RadioCarrier and BaseBand Transceiver only */ diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index cffe7cd..a9db76f 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -152,6 +152,10 @@ static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + + osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SHUTDOWN_FINISH, NULL); + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); exit(0); } diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 342699c..c270f7d 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -41,6 +41,17 @@ #define nm_bb_transc_fsm_state_chg(fi, NEXT_STATE) \ osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) +static void ev_dispatch_children(struct gsm_bts_bb_trx *bb_transc, uint32_t event) +{ + struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); + uint8_t tn; + + for (tn = 0; tn < TRX_NR_TS; tn++) { + struct gsm_bts_trx_ts *ts = &trx->ts[tn]; + osmo_fsm_inst_dispatch(ts->mo.fi, event, NULL); + } +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -184,8 +195,6 @@ static void nm_bb_transc_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; - struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); - uint8_t tn; switch (event) { case NM_EV_SHUTDOWN_START: @@ -193,10 +202,12 @@ oml_mo_state_chg(&bb_transc->mo, -1, -1, NM_STATE_SHUTDOWN); /* Propagate event to children: */ - for (tn = 0; tn < TRX_NR_TS; tn++) { - struct gsm_bts_trx_ts *ts = &trx->ts[tn]; - osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SHUTDOWN_START, NULL); - } + ev_dispatch_children(bb_transc, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(bb_transc, event); + nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(false); @@ -213,6 +224,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -228,6 +240,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BBTRANSC_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -239,6 +252,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", .onenter = st_op_enabled_on_enter, @@ -252,7 +266,8 @@ .num_states = ARRAY_SIZE(nm_bb_transc_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_bb_transc_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 93e5740..9210e7a 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -41,6 +41,15 @@ #define nm_bts_fsm_state_chg(fi, NEXT_STATE) \ osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) +static void ev_dispatch_children(struct gsm_bts *bts, uint32_t event) +{ + struct gsm_bts_trx *trx; + llist_for_each_entry(trx, &bts->trx_list, list) { + osmo_fsm_inst_dispatch(trx->mo.fi, event, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, event, NULL); + } +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -105,7 +114,6 @@ static void nm_bts_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; - struct gsm_bts_trx *trx; switch (event) { case NM_EV_SHUTDOWN_START: @@ -113,10 +121,12 @@ oml_mo_state_chg(&bts->mo, -1, -1, NM_STATE_SHUTDOWN); /* Propagate event to children: */ - llist_for_each_entry(trx, &bts->trx_list, list) { - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SHUTDOWN_START, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SHUTDOWN_START, NULL); - } + ev_dispatch_children(bts, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(bts, event); + nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(false); @@ -128,6 +138,7 @@ .in_event_mask = X(NM_EV_SW_ACT), .out_state_mask = + X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -138,6 +149,7 @@ X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = + X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -145,7 +157,8 @@ }, [NM_BTS_ST_OP_ENABLED] = { .in_event_mask = 0, - .out_state_mask = 0, + .out_state_mask = + X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED), .name = "ENABLED", .onenter = st_op_enabled_on_enter, .action = st_op_enabled, @@ -158,7 +171,8 @@ .num_states = ARRAY_SIZE(nm_bts_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_bts_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index e958917..267341e 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -41,6 +41,13 @@ #define nm_bts_sm_fsm_state_chg(fi, NEXT_STATE) \ osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +static void ev_dispatch_children(struct gsm_bts_sm *site_mgr, uint32_t event) +{ + struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); + osmo_fsm_inst_dispatch(bts->mo.fi, event, NULL); +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -105,7 +112,6 @@ static void nm_bts_sm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; - struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); switch (event) { case NM_EV_SHUTDOWN_START: @@ -113,7 +119,12 @@ oml_mo_state_chg(&site_mgr->mo, -1, -1, NM_STATE_SHUTDOWN); /* Propagate event to children: */ - osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SHUTDOWN_START, NULL); + ev_dispatch_children(site_mgr, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(site_mgr, event); + nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(false); @@ -125,6 +136,7 @@ .in_event_mask = X(NM_EV_SW_ACT), .out_state_mask = + X(NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_SM_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -135,6 +147,7 @@ X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = + X(NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_SM_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -142,7 +155,8 @@ }, [NM_BTS_SM_ST_OP_ENABLED] = { .in_event_mask = 0, - .out_state_mask = 0, + .out_state_mask = + X(NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED), .name = "ENABLED", .onenter = st_op_enabled_on_enter, .action = st_op_enabled, @@ -155,7 +169,8 @@ .num_states = ARRAY_SIZE(nm_bts_sm_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_bts_sm_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index fc3c8a9..e6c296f 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -177,6 +177,9 @@ /* Announce we start shutting down */ oml_mo_state_chg(&ts->mo, -1, -1, NM_STATE_SHUTDOWN); break; + case NM_EV_SHUTDOWN_FINISH: + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_NOTINSTALLED); + break; default: OSMO_ASSERT(false); } @@ -187,6 +190,7 @@ .in_event_mask = X(NM_EV_BBTRANSC_INSTALLED), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY), .name = "DISABLED_NOTINSTALLED", @@ -202,6 +206,7 @@ X(NM_EV_BBTRANSC_DISABLED) | X(NM_EV_RCARRIER_DISABLED), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_ENABLED), /* backward compatibility, buggy BSC */ .name = "DISABLED_DEPENDENCY", @@ -215,6 +220,7 @@ X(NM_EV_BBTRANSC_DISABLED) | X(NM_EV_RCARRIER_DISABLED), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_ENABLED) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY), .name = "DISABLED_OFFLINE", @@ -227,6 +233,7 @@ X(NM_EV_RCARRIER_DISABLED) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY), .name = "ENABLED", @@ -241,7 +248,8 @@ .num_states = ARRAY_SIZE(nm_chan_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_chan_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c index 3b73605..2182fef 100644 --- a/src/common/nm_common_fsm.c +++ b/src/common/nm_common_fsm.c @@ -28,6 +28,7 @@ { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" }, + { NM_EV_SHUTDOWN_FINISH, "SHUTDOWN_FINISH" }, { NM_EV_RSL_UP, "RSL_UP" }, { NM_EV_RSL_DOWN, "RSL_DOWN" }, { NM_EV_PHYLINK_UP, "PHYLINK_UP" }, diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index daae6a6..2772f19 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -180,6 +180,9 @@ /* Announce we start shutting down */ oml_mo_state_chg(&trx->mo, -1, -1, NM_STATE_SHUTDOWN); break; + case NM_EV_SHUTDOWN_FINISH: + nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED); + break; default: OSMO_ASSERT(false); } @@ -195,6 +198,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) | X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -210,6 +214,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) | X(NM_RCARRIER_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -221,6 +226,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) | X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", .onenter = st_op_enabled_on_enter, @@ -234,7 +240,8 @@ .num_states = ARRAY_SIZE(nm_rcarrier_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_rcarrier_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b Gerrit-Change-Number: 25491 Gerrit-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 Sep 16 16:51:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 16:51:34 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Make sure adm state is LOCKED when entering state Disabled ... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25492 ) Change subject: nm_*_fsm: Make sure adm state is LOCKED when entering state Disabled Offline ...................................................................... nm_*_fsm: Make sure adm state is LOCKED when entering state Disabled Offline TS 12.21 Figure 2 states that Attribute Setting is done when in Disabled Offline state, and unlocking must be done after attributes are set. Finally, transition to state Enabled can only be done once attribute setting, unlocking is done and Opstart is received. Hence, at the start of this operative+avaialbility state "Disable Offline", adminsitrative state is Locked by definition. Change-Id: Ife5fa22f007897db8b0f15b28f3b72c9970d298a --- M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_radio_carrier_fsm.c 5 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/25492/1 diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index c270f7d..1bb78f2 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -100,7 +100,7 @@ int i; bb_transc->mo.opstart_success = false; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, NM_STATE_LOCKED); if (prev_state == NM_BBTRANSC_ST_OP_ENABLED) { for (i = 0; i < TRX_NR_TS; i++) { diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 9210e7a..cea7e6d 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -79,7 +79,7 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; bts->mo.opstart_success = false; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, NM_STATE_LOCKED); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 267341e..d8ae5ff 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -77,7 +77,7 @@ { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; site_mgr->mo.opstart_success = false; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, NM_STATE_LOCKED); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index e6c296f..7c13915 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -117,7 +117,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, NM_STATE_LOCKED); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 2772f19..61feca3 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -82,7 +82,7 @@ unsigned int i; trx->mo.opstart_success = false; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, NM_STATE_LOCKED); if (prev_state == NM_RCARRIER_ST_OP_ENABLED) { for (i = 0; i < TRX_NR_TS; i++) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ife5fa22f007897db8b0f15b28f3b72c9970d298a Gerrit-Change-Number: 25492 Gerrit-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 Sep 16 16:51:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 16:51:34 +0000 Subject: Change in osmo-bts[master]: abis: Drop internal OML msg queue References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25493 ) Change subject: abis: Drop internal OML msg queue ...................................................................... abis: Drop internal OML msg queue There's no real use for this queue. If the link is gone, it makes no sense to keep old messages. Instead, BTS should generate new messages sharing current state when link becomes established (it actually does so already). Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 --- M include/osmo-bts/bts.h M src/common/abis.c M src/common/bts.c 3 files changed, 6 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/25493/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 6e0e47b..d3cb6bf 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -302,7 +302,6 @@ struct paging_state *paging_state; struct llist_head bsc_oml_hosts; - struct llist_head oml_queue; unsigned int rtp_jitter_buf_ms; bool rtp_jitter_adaptive; diff --git a/src/common/abis.c b/src/common/abis.c index 31a3505..8e713d2 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -104,19 +104,6 @@ memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); } -static void drain_oml_queue(struct gsm_bts *bts) -{ - struct msgb *msg, *msg2; - - llist_for_each_entry_safe(msg, msg2, &bts->oml_queue, list) { - /* osmo-bts uses msg->trx internally, but libosmo-abis uses - * the signalling link at msg->dst */ - llist_del(&msg->list); - msg->dst = bts->oml_link; - abis_sendmsg(msg); - } -} - static int pick_next_bsc(struct osmo_fsm_inst *fi) { struct abis_link_fsm_priv *priv = fi->priv; @@ -208,7 +195,6 @@ static void abis_link_connected_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { - drain_oml_queue(g_bts); bts_link_estab(g_bts); } @@ -324,14 +310,14 @@ struct gsm_bts *bts = msg->trx->bts; if (!bts->oml_link) { - llist_add_tail(&msg->list, &bts->oml_queue); + LOGP(DABIS, LOGL_INFO, "Drop Tx OML msg, OML link is down\n"); return 0; - } else { - /* osmo-bts uses msg->trx internally, but libosmo-abis uses - * the signalling link at msg->dst */ - msg->dst = bts->oml_link; - return abis_sendmsg(msg); } + + /* osmo-bts uses msg->trx internally, but libosmo-abis uses + * the signalling link at msg->dst */ + msg->dst = bts->oml_link; + return abis_sendmsg(msg); } int abis_bts_rsl_sendmsg(struct msgb *msg) diff --git a/src/common/bts.c b/src/common/bts.c index 05584aa..67e6736 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -407,7 +407,6 @@ bts->smscb_queue_tgt_len = 2; bts->smscb_queue_hyst = 2; - INIT_LLIST_HEAD(&bts->oml_queue); INIT_LLIST_HEAD(&bts->bsc_oml_hosts); /* register DTX DL FSM */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 Gerrit-Change-Number: 25493 Gerrit-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 Sep 16 18:56:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 18:56:16 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown proc... 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/+/25490 to look at the new patch set (#2). Change subject: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts ...................................................................... nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 --- M include/osmo-bts/nm_common_fsm.h M src/common/bts_shutdown_fsm.c M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c 8 files changed, 105 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/90/25490/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 Gerrit-Change-Number: 25490 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 Sep 16 18:56:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 18:56:16 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown pr... 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/+/25491 to look at the new patch set (#2). Change subject: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends ...................................................................... nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b --- M include/osmo-bts/nm_common_fsm.h M src/common/bts_shutdown_fsm.c M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c 8 files changed, 85 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/25491/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b Gerrit-Change-Number: 25491 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 Sep 16 18:59:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 18:59:04 +0000 Subject: Change in osmo-bts[master]: Allow setting administrative state through oml_mo_state_chg() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25473 ) Change subject: Allow setting administrative state through oml_mo_state_chg() ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c Gerrit-Change-Number: 25473 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 16 Sep 2021 18:59:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 19:00:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 19:00:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: enable 4 TRX In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 ) Change subject: pcu: TC_stat_pdch_avail_occ: enable 4 TRX ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibde5be120e893fcecceb72a888483d5a6bb8ce50 Gerrit-Change-Number: 25488 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 19:00: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 Sep 16 19:01:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 19:01:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 ) Change subject: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 Gerrit-Change-Number: 25403 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 19: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 Thu Sep 16 19:03:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 19:03:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/1/pcu/PCU_Tests.ttcn at 249 PS1, Line 249: private function f_pcuvty_set_alloc_algorithm_a() runs on RAW_PCU_Test_CT { why do you need this? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/1/pcu/PCU_Tests.ttcn at 6082 PS1, Line 6082: f_pcuvty_set_alloc_algorithm_a(); why do you need this? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 19:03: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 Sep 16 19:10:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 19:10:25 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 2: Code-Review-1 (5 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.h File src/pdch.h: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.h at 81 PS2, Line 81: void num_tbfs_update(gprs_rlcmac_tbf *tbf, enum tbf_type type, bool is_attach); type should be known from tbf, no need to pass it? https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.cpp at 1065 PS2, Line 1065: enum tbf_type type = tbf->is_egprs_enabled() ? TBF_TYPE_EGPRS : TBF_TYPE_GPRS; why aren't you calling tbf->is_egprs_enabled() inside num_tbfs_update()!? https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.h File src/tbf.h: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.h at 90 PS2, Line 90: TBF_TYPE_GPRS, No need for this! https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp File src/tbf.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp at 773 PS2, Line 773: for (int ts = 0; ts < 8; ts++) { what about using ARRAY_SIZE(pdch) here instead of 8? https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp at 779 PS2, Line 779: if (direction == GPRS_RLCMAC_DL_TBF && pdch[ts]->dl_tbf_by_tfi(m_tfi) != this) why are the last 2 if conditions needed? if pdch[ts] it means it's attached right? no need to do this second check you do here. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 19:10:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 16 19:11:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 16 Sep 2021 19:11:51 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25401/2/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25401/2/src/pdch.cpp at 1112 PS2, Line 1112: return (m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_GPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_GPRS]) > 0; I'd welcome split in 2 lines, will look easier to understand since both lines are almost the same: return (m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_GPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_GPRS]) > 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 16 Sep 2021 19:11: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 Sep 17 04:15:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 17 Sep 2021 04:15:51 +0000 Subject: Change in osmo-bts[master]: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS ... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25474 ) Change subject: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS on C0 ...................................................................... Patch Set 2: Code-Review-1 Let's keep this patch WIP for now, I'll explain in the ticket. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c6985c2bc6779b15094a34f5d4a345c7d8d7b38 Gerrit-Change-Number: 25474 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 17 Sep 2021 04:15: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 Sep 17 05:34:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 17 Sep 2021 05:34:52 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25475 ) Change subject: power_control: Drop unused param in function ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 17 Sep 2021 05:34:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 05:57:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 05:57:56 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25494 ) Change subject: osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format ...................................................................... osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format Use base '0' of strtoul to permit both decimal and hexadecimal input to the SQN parameter. Some other tools represent the SQN as hex, so this avoids having to use some external tool to convert and allows you to copy+paste it to the osmo-auc-gen command line. Change-Id: I67c6341a989de433451994b824e12afd0c26cb8a --- M utils/osmo-auc-gen.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/94/25494/1 diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c index 65cfa31..eb6c65b 100644 --- a/utils/osmo-auc-gen.c +++ b/utils/osmo-auc-gen.c @@ -207,7 +207,7 @@ fprintf(stderr, "Only UMTS has SQN\n"); exit(2); } - sqn = strtoull(optarg, 0, 10); + sqn = strtoull(optarg, 0, 0); sqn_is_set = 1; break; case 'i': -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67c6341a989de433451994b824e12afd0c26cb8a Gerrit-Change-Number: 25494 Gerrit-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 Sep 17 06:01:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:01:59 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25495 ) Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res This is useful when debugging IMS Authentication which uses RFC3310 representation of the nonce and expected result. Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 --- M utils/Makefile.am M utils/osmo-auc-gen.c 2 files changed, 29 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/25495/1 diff --git a/utils/Makefile.am b/utils/Makefile.am index 3f2b13f..f8fe895 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -2,8 +2,8 @@ bin_PROGRAMS = noinst_PROGRAMS = AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(TALLOC_CFLAGS) -AM_CFLAGS = -Wall $(PTHREAD_CFLAGS) -LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la $(PTHREAD_LIBS) +AM_CFLAGS = -Wall $(PTHREAD_CFLAGS) $(LIBGNUTLS_CFLAGS) +LDADD = $(top_builddir)/src/libosmocore.la $(top_builddir)/src/gsm/libosmogsm.la $(PTHREAD_LIBS) $(LIBGNUTLS_LIBS) if ENABLE_UTILITIES EXTRA_DIST = conv_gen.py conv_codes_gsm.py diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c index eb6c65b..f0c733e 100644 --- a/utils/osmo-auc-gen.c +++ b/utils/osmo-auc-gen.c @@ -36,6 +36,24 @@ #include #include +#include "../config.h" + +#ifdef USE_GNUTLS +#include +static void print_base64(const char *fmt, const uint8_t *data, unsigned int len) +{ + gnutls_datum_t in, out; + + in.data = (uint8_t *)data; + in.size = len; + + gnutls_base64_encode2(&in, &out); + + printf(fmt, out.data); + gnutls_free(out.data); +} +#endif /* USE_GNUTLS */ + static void dump_triplets_dat(struct osmo_auth_vector *vec) { if (vec->auth_types & OSMO_AUTH_TYPE_UMTS) { @@ -57,6 +75,15 @@ printf("IK:\t%s\n", osmo_hexdump_nospc(vec->ik, sizeof(vec->ik))); printf("CK:\t%s\n", osmo_hexdump_nospc(vec->ck, sizeof(vec->ck))); printf("RES:\t%s\n", osmo_hexdump_nospc(vec->res, vec->res_len)); + +#ifdef USE_GNUTLS +#include + uint8_t inbuf[sizeof(vec->rand) + sizeof(vec->autn)]; + memcpy(inbuf, vec->rand, sizeof(vec->rand)); + memcpy(inbuf + sizeof(vec->rand), vec->autn, sizeof(vec->autn)); + print_base64("IMS nonce:\t%s\n", inbuf, sizeof(inbuf)); + print_base64("IMS res:\t%s\n", vec->res, vec->res_len); +#endif /* USE_GNUTLS */ } if (vec->auth_types & OSMO_AUTH_TYPE_GSM) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-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 Sep 17 06:07:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:07:34 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25495 ) Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... Patch Set 1: sigh. gnutls in debian9 doesn't have base64 yet. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 17 Sep 2021 06:07:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 06:07:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:07:46 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25494 ) Change subject: osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67c6341a989de433451994b824e12afd0c26cb8a Gerrit-Change-Number: 25494 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Fri, 17 Sep 2021 06:07:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 06:07:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:07:48 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25494 ) Change subject: osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format ...................................................................... osmo-auc-gen: Permit specifying the SQN in hex (0x12345) format Use base '0' of strtoul to permit both decimal and hexadecimal input to the SQN parameter. Some other tools represent the SQN as hex, so this avoids having to use some external tool to convert and allows you to copy+paste it to the osmo-auc-gen command line. Change-Id: I67c6341a989de433451994b824e12afd0c26cb8a --- M utils/osmo-auc-gen.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c index 65cfa31..eb6c65b 100644 --- a/utils/osmo-auc-gen.c +++ b/utils/osmo-auc-gen.c @@ -207,7 +207,7 @@ fprintf(stderr, "Only UMTS has SQN\n"); exit(2); } - sqn = strtoull(optarg, 0, 10); + sqn = strtoull(optarg, 0, 0); sqn_is_set = 1; break; case 'i': -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I67c6341a989de433451994b824e12afd0c26cb8a Gerrit-Change-Number: 25494 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 06:53:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:53:30 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res 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/+/25495 to look at the new patch set (#2). Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res This is useful when debugging IMS Authentication which uses RFC3310 representation of the nonce and expected result. Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 --- M utils/osmo-auc-gen.c 1 file changed, 20 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/25495/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 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 Sep 17 06:53:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:53:30 +0000 Subject: Change in libosmocore[master]: copy base64 implementation from mbedtls References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25496 ) Change subject: copy base64 implementation from mbedtls ...................................................................... copy base64 implementation from mbedtls Using mbedtls commit f9c599cd8ac9d00c484d4f5b027e18c6af4f9fdf before they re-licensed to Apache 2.0, so we have a GPL-v2-or-later bsae64 implementation and avoid having code under a different license in the tree. This code is the unmodified import, so we can record any local changes compared to the original version. Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 --- A include/osmocom/core/base64.h A src/base64.c 2 files changed, 370 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/25496/1 diff --git a/include/osmocom/core/base64.h b/include/osmocom/core/base64.h new file mode 100644 index 0000000..0f7233d --- /dev/null +++ b/include/osmocom/core/base64.h @@ -0,0 +1,86 @@ +/** + * \file base64.h + * + * \brief RFC 1521 base64 encoding/decoding + * + * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * + * This file is part of mbed TLS (https://tls.mbed.org) + * + * 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. + */ +#ifndef MBEDTLS_BASE64_H +#define MBEDTLS_BASE64_H + +#include + +#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL -0x002A /**< Output buffer too small. */ +#define MBEDTLS_ERR_BASE64_INVALID_CHARACTER -0x002C /**< Invalid character in input. */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Encode a buffer into base64 format + * + * \param dst destination buffer + * \param dlen size of the destination buffer + * \param olen number of bytes written + * \param src source buffer + * \param slen amount of data to be encoded + * + * \return 0 if successful, or MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL. + * *olen is always updated to reflect the amount + * of data that has (or would have) been written. + * + * \note Call this function with dlen = 0 to obtain the + * required buffer size in *olen + */ +int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ); + +/** + * \brief Decode a base64-formatted buffer + * + * \param dst destination buffer (can be NULL for checking size) + * \param dlen size of the destination buffer + * \param olen number of bytes written + * \param src source buffer + * \param slen amount of data to be decoded + * + * \return 0 if successful, MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL, or + * MBEDTLS_ERR_BASE64_INVALID_CHARACTER if the input data is + * not correct. *olen is always updated to reflect the amount + * of data that has (or would have) been written. + * + * \note Call this function with *dst = NULL or dlen = 0 to obtain + * the required buffer size in *olen + */ +int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ); + +/** + * \brief Checkup routine + * + * \return 0 if successful, or 1 if the test failed + */ +int mbedtls_base64_self_test( int verbose ); + +#ifdef __cplusplus +} +#endif + +#endif /* base64.h */ diff --git a/src/base64.c b/src/base64.c new file mode 100644 index 0000000..11cb30b --- /dev/null +++ b/src/base64.c @@ -0,0 +1,284 @@ +/* + * RFC 1521 base64 encoding/decoding + * + * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * + * This file is part of mbed TLS (https://tls.mbed.org) + * + * 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. + */ + +#if !defined(MBEDTLS_CONFIG_FILE) +#include "mbedtls/config.h" +#else +#include MBEDTLS_CONFIG_FILE +#endif + +#if defined(MBEDTLS_BASE64_C) + +#include "mbedtls/base64.h" + +#include + +#if defined(MBEDTLS_SELF_TEST) +#include +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#else +#include +#define mbedtls_printf printf +#endif /* MBEDTLS_PLATFORM_C */ +#endif /* MBEDTLS_SELF_TEST */ + +static const unsigned char base64_enc_map[64] = +{ + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', + 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '+', '/' +}; + +static const unsigned char base64_dec_map[128] = +{ + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 62, 127, 127, 127, 63, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 127, 127, + 127, 64, 127, 127, 127, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 127, 127, 127, 127, 127, 127, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 127, 127, 127, 127, 127 +}; + +/* + * Encode a buffer into base64 format + */ +int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ) +{ + size_t i, n; + int C1, C2, C3; + unsigned char *p; + + if( slen == 0 ) + { + *olen = 0; + return( 0 ); + } + + n = ( slen << 3 ) / 6; + + switch( ( slen << 3 ) - ( n * 6 ) ) + { + case 2: n += 3; break; + case 4: n += 2; break; + default: break; + } + + if( dlen < n + 1 ) + { + *olen = n + 1; + return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + } + + n = ( slen / 3 ) * 3; + + for( i = 0, p = dst; i < n; i += 3 ) + { + C1 = *src++; + C2 = *src++; + C3 = *src++; + + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F]; + *p++ = base64_enc_map[C3 & 0x3F]; + } + + if( i < slen ) + { + C1 = *src++; + C2 = ( ( i + 1 ) < slen ) ? *src++ : 0; + + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + + if( ( i + 1 ) < slen ) + *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F]; + else *p++ = '='; + + *p++ = '='; + } + + *olen = p - dst; + *p = 0; + + return( 0 ); +} + +/* + * Decode a base64-formatted buffer + */ +int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ) +{ + size_t i, n; + uint32_t j, x; + unsigned char *p; + + /* First pass: check for validity and get output length */ + for( i = n = j = 0; i < slen; i++ ) + { + /* Skip spaces before checking for EOL */ + x = 0; + while( i < slen && src[i] == ' ' ) + { + ++i; + ++x; + } + + /* Spaces at end of buffer are OK */ + if( i == slen ) + break; + + if( ( slen - i ) >= 2 && + src[i] == '\r' && src[i + 1] == '\n' ) + continue; + + if( src[i] == '\n' ) + continue; + + /* Space inside a line is an error */ + if( x != 0 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if( src[i] == '=' && ++j > 2 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if( src[i] > 127 || base64_dec_map[src[i]] == 127 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if( base64_dec_map[src[i]] < 64 && j != 0 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + n++; + } + + if( n == 0 ) + return( 0 ); + + n = ( ( n * 6 ) + 7 ) >> 3; + n -= j; + + if( dst == NULL || dlen < n ) + { + *olen = n; + return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + } + + for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) + { + if( *src == '\r' || *src == '\n' || *src == ' ' ) + continue; + + j -= ( base64_dec_map[*src] == 64 ); + x = ( x << 6 ) | ( base64_dec_map[*src] & 0x3F ); + + if( ++n == 4 ) + { + n = 0; + if( j > 0 ) *p++ = (unsigned char)( x >> 16 ); + if( j > 1 ) *p++ = (unsigned char)( x >> 8 ); + if( j > 2 ) *p++ = (unsigned char)( x ); + } + } + + *olen = p - dst; + + return( 0 ); +} + +#if defined(MBEDTLS_SELF_TEST) + +static const unsigned char base64_test_dec[64] = +{ + 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, + 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, + 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, + 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, + 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, + 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, + 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, + 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 +}; + +static const unsigned char base64_test_enc[] = + "JEhuVodiWr2/F9mixBcaAZTtjx4Rs9cJDLbpEG8i7hPK" + "swcFdsn6MWwINP+Nwmw4AEPpVJevUEvRQbqVMVoLlw=="; + +/* + * Checkup routine + */ +int mbedtls_base64_self_test( int verbose ) +{ + size_t len; + const unsigned char *src; + unsigned char buffer[128]; + + if( verbose != 0 ) + mbedtls_printf( " Base64 encoding test: " ); + + src = base64_test_dec; + + if( mbedtls_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || + memcmp( base64_test_enc, buffer, 88 ) != 0 ) + { + if( verbose != 0 ) + mbedtls_printf( "failed\n" ); + + return( 1 ); + } + + if( verbose != 0 ) + mbedtls_printf( "passed\n Base64 decoding test: " ); + + src = base64_test_enc; + + if( mbedtls_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || + memcmp( base64_test_dec, buffer, 64 ) != 0 ) + { + if( verbose != 0 ) + mbedtls_printf( "failed\n" ); + + return( 1 ); + } + + if( verbose != 0 ) + mbedtls_printf( "passed\n\n" ); + + return( 0 ); +} + +#endif /* MBEDTLS_SELF_TEST */ + +#endif /* MBEDTLS_BASE64_C */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 Gerrit-Change-Number: 25496 Gerrit-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 Sep 17 06:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:53:31 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... base64: Migrate over to osmocom This containts the osmocom changes to the mbedtls base64 code merged in the previous commit. Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 --- M include/Makefile.am M include/osmocom/core/base64.h M src/Makefile.am M src/base64.c M tests/Makefile.am A tests/base64/base64_test.c A tests/base64/base64_test.ok M tests/testsuite.at 8 files changed, 84 insertions(+), 107 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/25497/1 diff --git a/include/Makefile.am b/include/Makefile.am index e25ed48..7df651a 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -6,6 +6,7 @@ osmocom/codec/gsm610_bits.h \ osmocom/core/application.h \ osmocom/core/backtrace.h \ + osmocom/core/base64.h \ osmocom/core/bit16gen.h \ osmocom/core/bit32gen.h \ osmocom/core/bit64gen.h \ diff --git a/include/osmocom/core/base64.h b/include/osmocom/core/base64.h index 0f7233d..f73db0d 100644 --- a/include/osmocom/core/base64.h +++ b/include/osmocom/core/base64.h @@ -21,14 +21,10 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef MBEDTLS_BASE64_H -#define MBEDTLS_BASE64_H +#pragma once #include -#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL -0x002A /**< Output buffer too small. */ -#define MBEDTLS_ERR_BASE64_INVALID_CHARACTER -0x002C /**< Invalid character in input. */ - #ifdef __cplusplus extern "C" { #endif @@ -49,7 +45,7 @@ * \note Call this function with dlen = 0 to obtain the * required buffer size in *olen */ -int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ); /** @@ -69,18 +65,9 @@ * \note Call this function with *dst = NULL or dlen = 0 to obtain * the required buffer size in *olen */ -int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ); -/** - * \brief Checkup routine - * - * \return 0 if successful, or 1 if the test failed - */ -int mbedtls_base64_self_test( int verbose ); - #ifdef __cplusplus } #endif - -#endif /* base64.h */ diff --git a/src/Makefile.am b/src/Makefile.am index 2f18d09..3c589e6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -31,6 +31,7 @@ exec.c \ it_q.c \ probes.d \ + base64.c \ $(NULL) if HAVE_SSSE3 diff --git a/src/base64.c b/src/base64.c index 11cb30b..dbc908b 100644 --- a/src/base64.c +++ b/src/base64.c @@ -20,27 +20,11 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif - -#if defined(MBEDTLS_BASE64_C) - -#include "mbedtls/base64.h" +#include #include - -#if defined(MBEDTLS_SELF_TEST) -#include -#if defined(MBEDTLS_PLATFORM_C) -#include "mbedtls/platform.h" -#else #include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ -#endif /* MBEDTLS_SELF_TEST */ +#include static const unsigned char base64_enc_map[64] = { @@ -73,7 +57,7 @@ /* * Encode a buffer into base64 format */ -int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ) { size_t i, n; @@ -98,7 +82,7 @@ if( dlen < n + 1 ) { *olen = n + 1; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return( -ENOBUFS ); } n = ( slen / 3 ) * 3; @@ -139,7 +123,7 @@ /* * Decode a base64-formatted buffer */ -int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ) { size_t i, n; @@ -170,16 +154,16 @@ /* Space inside a line is an error */ if( x != 0 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); if( src[i] == '=' && ++j > 2 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); if( src[i] > 127 || base64_dec_map[src[i]] == 127 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); if( base64_dec_map[src[i]] < 64 && j != 0 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); n++; } @@ -193,7 +177,7 @@ if( dst == NULL || dlen < n ) { *olen = n; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return( -ENOBUFS ); } for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) @@ -217,68 +201,3 @@ return( 0 ); } - -#if defined(MBEDTLS_SELF_TEST) - -static const unsigned char base64_test_dec[64] = -{ - 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, - 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, - 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, - 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, - 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, - 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, - 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, - 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 -}; - -static const unsigned char base64_test_enc[] = - "JEhuVodiWr2/F9mixBcaAZTtjx4Rs9cJDLbpEG8i7hPK" - "swcFdsn6MWwINP+Nwmw4AEPpVJevUEvRQbqVMVoLlw=="; - -/* - * Checkup routine - */ -int mbedtls_base64_self_test( int verbose ) -{ - size_t len; - const unsigned char *src; - unsigned char buffer[128]; - - if( verbose != 0 ) - mbedtls_printf( " Base64 encoding test: " ); - - src = base64_test_dec; - - if( mbedtls_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || - memcmp( base64_test_enc, buffer, 88 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); - } - - if( verbose != 0 ) - mbedtls_printf( "passed\n Base64 decoding test: " ); - - src = base64_test_enc; - - if( mbedtls_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || - memcmp( base64_test_dec, buffer, 64 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); - } - - if( verbose != 0 ) - mbedtls_printf( "passed\n\n" ); - - return( 0 ); -} - -#endif /* MBEDTLS_SELF_TEST */ - -#endif /* MBEDTLS_BASE64_C */ diff --git a/tests/Makefile.am b/tests/Makefile.am index 5c6f30c..4f87618 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,6 +43,7 @@ bssmap_le/bssmap_le_test \ it_q/it_q_test \ gsm48/rest_octets_test \ + base64/base64_test \ $(NULL) if ENABLE_MSGFILE @@ -79,6 +80,8 @@ check_PROGRAMS += gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_bssgp_rim_test gb/gprs_ns_test gb/gprs_ns2_test fr/fr_test endif +base64_base64_test_SOURCES = base64/base64_test.c + utils_utils_test_SOURCES = utils/utils_test.c utils_utils_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la diff --git a/tests/base64/base64_test.c b/tests/base64/base64_test.c new file mode 100644 index 0000000..e85f649 --- /dev/null +++ b/tests/base64/base64_test.c @@ -0,0 +1,57 @@ +#include +#include +#include + +static const unsigned char base64_test_dec[64] = +{ + 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, + 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, + 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, + 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, + 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, + 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, + 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, + 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 +}; + +static const unsigned char base64_test_enc[] = + "JEhuVodiWr2/F9mixBcaAZTtjx4Rs9cJDLbpEG8i7hPK" + "swcFdsn6MWwINP+Nwmw4AEPpVJevUEvRQbqVMVoLlw=="; + +/* + * Checkup routine + */ +int main(int argc, char **argv) +{ + size_t len; + const unsigned char *src; + unsigned char buffer[128]; + + printf( " Base64 encoding test: " ); + + src = base64_test_dec; + + if( osmo_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || + memcmp( base64_test_enc, buffer, 88 ) != 0 ) + { + printf( "failed\n" ); + + return( 1 ); + } + + printf( "passed\n Base64 decoding test: " ); + + src = base64_test_enc; + + if( osmo_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || + memcmp( base64_test_dec, buffer, 64 ) != 0 ) + { + printf( "failed\n" ); + + return( 1 ); + } + + printf( "passed\n\n" ); + + return( 0 ); +} diff --git a/tests/base64/base64_test.ok b/tests/base64/base64_test.ok new file mode 100644 index 0000000..ff187d9 --- /dev/null +++ b/tests/base64/base64_test.ok @@ -0,0 +1,3 @@ + Base64 encoding test: passed + Base64 decoding test: passed + diff --git a/tests/testsuite.at b/tests/testsuite.at index cb84229..6ac5970 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -446,3 +446,9 @@ cat $abs_srcdir/it_q/it_q_test.ok > expout AT_CHECK([$abs_top_builddir/tests/it_q/it_q_test], [0], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([base64]) +AT_KEYWORDS([base64]) +cat $abs_srcdir/base64/base64_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/base64/base64_test], [0], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-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 Sep 17 06:53:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:53:31 +0000 Subject: Change in libosmocore[master]: base64: reformat using Lindent to conform to our coding style References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25498 ) Change subject: base64: reformat using Lindent to conform to our coding style ...................................................................... base64: reformat using Lindent to conform to our coding style Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 --- M include/osmocom/core/base64.h M src/base64.c M tests/base64/base64_test.c 3 files changed, 158 insertions(+), 165 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/25498/1 diff --git a/include/osmocom/core/base64.h b/include/osmocom/core/base64.h index f73db0d..86b862e 100644 --- a/include/osmocom/core/base64.h +++ b/include/osmocom/core/base64.h @@ -45,8 +45,8 @@ * \note Call this function with dlen = 0 to obtain the * required buffer size in *olen */ -int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ); +int osmo_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen); /** * \brief Decode a base64-formatted buffer @@ -65,8 +65,8 @@ * \note Call this function with *dst = NULL or dlen = 0 to obtain * the required buffer size in *olen */ -int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ); +int osmo_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen); #ifdef __cplusplus } diff --git a/src/base64.c b/src/base64.c index dbc908b..0e59f5a 100644 --- a/src/base64.c +++ b/src/base64.c @@ -26,178 +26,174 @@ #include #include -static const unsigned char base64_enc_map[64] = -{ - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', - 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', - 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', - 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', - 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', '+', '/' +static const unsigned char base64_enc_map[64] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', + 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '+', '/' }; -static const unsigned char base64_dec_map[128] = -{ - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 62, 127, 127, 127, 63, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 127, 127, - 127, 64, 127, 127, 127, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 127, 127, 127, 127, 127, 127, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 127, 127, 127, 127, 127 +static const unsigned char base64_dec_map[128] = { + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 62, 127, 127, 127, 63, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 127, 127, + 127, 64, 127, 127, 127, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 127, 127, 127, 127, 127, 127, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 127, 127, 127, 127, 127 }; /* * Encode a buffer into base64 format */ -int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ) +int osmo_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen) { - size_t i, n; - int C1, C2, C3; - unsigned char *p; + size_t i, n; + int C1, C2, C3; + unsigned char *p; - if( slen == 0 ) - { - *olen = 0; - return( 0 ); - } + if (slen == 0) { + *olen = 0; + return (0); + } - n = ( slen << 3 ) / 6; + n = (slen << 3) / 6; - switch( ( slen << 3 ) - ( n * 6 ) ) - { - case 2: n += 3; break; - case 4: n += 2; break; - default: break; - } + switch ((slen << 3) - (n * 6)) { + case 2: + n += 3; + break; + case 4: + n += 2; + break; + default: + break; + } - if( dlen < n + 1 ) - { - *olen = n + 1; - return( -ENOBUFS ); - } + if (dlen < n + 1) { + *olen = n + 1; + return (-ENOBUFS); + } - n = ( slen / 3 ) * 3; + n = (slen / 3) * 3; - for( i = 0, p = dst; i < n; i += 3 ) - { - C1 = *src++; - C2 = *src++; - C3 = *src++; + for (i = 0, p = dst; i < n; i += 3) { + C1 = *src++; + C2 = *src++; + C3 = *src++; - *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; - *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; - *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F]; - *p++ = base64_enc_map[C3 & 0x3F]; - } + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F]; + *p++ = base64_enc_map[C3 & 0x3F]; + } - if( i < slen ) - { - C1 = *src++; - C2 = ( ( i + 1 ) < slen ) ? *src++ : 0; + if (i < slen) { + C1 = *src++; + C2 = ((i + 1) < slen) ? *src++ : 0; - *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; - *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; - if( ( i + 1 ) < slen ) - *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F]; - else *p++ = '='; + if ((i + 1) < slen) + *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F]; + else + *p++ = '='; - *p++ = '='; - } + *p++ = '='; + } - *olen = p - dst; - *p = 0; + *olen = p - dst; + *p = 0; - return( 0 ); + return (0); } /* * Decode a base64-formatted buffer */ -int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ) +int osmo_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen) { - size_t i, n; - uint32_t j, x; - unsigned char *p; + size_t i, n; + uint32_t j, x; + unsigned char *p; - /* First pass: check for validity and get output length */ - for( i = n = j = 0; i < slen; i++ ) - { - /* Skip spaces before checking for EOL */ - x = 0; - while( i < slen && src[i] == ' ' ) - { - ++i; - ++x; - } + /* First pass: check for validity and get output length */ + for (i = n = j = 0; i < slen; i++) { + /* Skip spaces before checking for EOL */ + x = 0; + while (i < slen && src[i] == ' ') { + ++i; + ++x; + } - /* Spaces at end of buffer are OK */ - if( i == slen ) - break; + /* Spaces at end of buffer are OK */ + if (i == slen) + break; - if( ( slen - i ) >= 2 && - src[i] == '\r' && src[i + 1] == '\n' ) - continue; + if ((slen - i) >= 2 && src[i] == '\r' && src[i + 1] == '\n') + continue; - if( src[i] == '\n' ) - continue; + if (src[i] == '\n') + continue; - /* Space inside a line is an error */ - if( x != 0 ) - return( -EINVAL ); + /* Space inside a line is an error */ + if (x != 0) + return (-EINVAL); - if( src[i] == '=' && ++j > 2 ) - return( -EINVAL ); + if (src[i] == '=' && ++j > 2) + return (-EINVAL); - if( src[i] > 127 || base64_dec_map[src[i]] == 127 ) - return( -EINVAL ); + if (src[i] > 127 || base64_dec_map[src[i]] == 127) + return (-EINVAL); - if( base64_dec_map[src[i]] < 64 && j != 0 ) - return( -EINVAL ); + if (base64_dec_map[src[i]] < 64 && j != 0) + return (-EINVAL); - n++; - } + n++; + } - if( n == 0 ) - return( 0 ); + if (n == 0) + return (0); - n = ( ( n * 6 ) + 7 ) >> 3; - n -= j; + n = ((n * 6) + 7) >> 3; + n -= j; - if( dst == NULL || dlen < n ) - { - *olen = n; - return( -ENOBUFS ); - } + if (dst == NULL || dlen < n) { + *olen = n; + return (-ENOBUFS); + } - for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) - { - if( *src == '\r' || *src == '\n' || *src == ' ' ) - continue; + for (j = 3, n = x = 0, p = dst; i > 0; i--, src++) { + if (*src == '\r' || *src == '\n' || *src == ' ') + continue; - j -= ( base64_dec_map[*src] == 64 ); - x = ( x << 6 ) | ( base64_dec_map[*src] & 0x3F ); + j -= (base64_dec_map[*src] == 64); + x = (x << 6) | (base64_dec_map[*src] & 0x3F); - if( ++n == 4 ) - { - n = 0; - if( j > 0 ) *p++ = (unsigned char)( x >> 16 ); - if( j > 1 ) *p++ = (unsigned char)( x >> 8 ); - if( j > 2 ) *p++ = (unsigned char)( x ); - } - } + if (++n == 4) { + n = 0; + if (j > 0) + *p++ = (unsigned char)(x >> 16); + if (j > 1) + *p++ = (unsigned char)(x >> 8); + if (j > 2) + *p++ = (unsigned char)(x); + } + } - *olen = p - dst; + *olen = p - dst; - return( 0 ); + return (0); } diff --git a/tests/base64/base64_test.c b/tests/base64/base64_test.c index e85f649..05ac417 100644 --- a/tests/base64/base64_test.c +++ b/tests/base64/base64_test.c @@ -2,16 +2,15 @@ #include #include -static const unsigned char base64_test_dec[64] = -{ - 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, - 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, - 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, - 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, - 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, - 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, - 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, - 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 +static const unsigned char base64_test_dec[64] = { + 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, + 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, + 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, + 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, + 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, + 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, + 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, + 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 }; static const unsigned char base64_test_enc[] = @@ -23,35 +22,33 @@ */ int main(int argc, char **argv) { - size_t len; - const unsigned char *src; - unsigned char buffer[128]; + size_t len; + const unsigned char *src; + unsigned char buffer[128]; - printf( " Base64 encoding test: " ); + printf(" Base64 encoding test: "); - src = base64_test_dec; + src = base64_test_dec; - if( osmo_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || - memcmp( base64_test_enc, buffer, 88 ) != 0 ) - { - printf( "failed\n" ); + if (osmo_base64_encode(buffer, sizeof(buffer), &len, src, 64) != 0 || + memcmp(base64_test_enc, buffer, 88) != 0) { + printf("failed\n"); - return( 1 ); - } + return (1); + } - printf( "passed\n Base64 decoding test: " ); + printf("passed\n Base64 decoding test: "); - src = base64_test_enc; + src = base64_test_enc; - if( osmo_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || - memcmp( base64_test_dec, buffer, 64 ) != 0 ) - { - printf( "failed\n" ); + if (osmo_base64_decode(buffer, sizeof(buffer), &len, src, 88) != 0 || + memcmp(base64_test_dec, buffer, 64) != 0) { + printf("failed\n"); - return( 1 ); - } + return (1); + } - printf( "passed\n\n" ); + printf("passed\n\n"); - return( 0 ); + return (0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 Gerrit-Change-Number: 25498 Gerrit-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 Sep 17 06:55:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 06:55:15 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res 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/+/25495 to look at the new patch set (#3). Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res This is useful when debugging IMS Authentication which uses RFC3310 representation of the nonce and expected result. Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 --- M tests/osmo-auc-gen/osmo-auc-gen_test.ok M utils/osmo-auc-gen.c 2 files changed, 50 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/25495/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 08:03:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:03:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: enable 4 TRX In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 ) Change subject: pcu: TC_stat_pdch_avail_occ: enable 4 TRX ...................................................................... pcu: TC_stat_pdch_avail_occ: enable 4 TRX Enable multiple TRX to verify that counters work as expected if the allocator spreads TBFs over multiple TRX. Related: SYS#4878 Change-Id: Ibde5be120e893fcecceb72a888483d5a6bb8ce50 --- M pcu/PCU_Tests.ttcn 1 file changed, 6 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 15c451b..6e6104b 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6023,9 +6023,12 @@ /* Initialize NS/BSSGP side */ f_init_bssgp(); - /* Only 1 TRX with 8 PDCH */ - f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0); - f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7)); + /* Only the 4 first TRX are enabled, each with 2 PDCHs. */ + f_PCUIF_PDCHMask_set(info_ind, '00000011'B, 0); + f_PCUIF_PDCHMask_set(info_ind, '00001100'B, 1); + f_PCUIF_PDCHMask_set(info_ind, '11000000'B, 2); + f_PCUIF_PDCHMask_set(info_ind, '00110000'B, 3); + f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (4 .. 7)); /* Allocate 4 GprsMS instances */ f_init_gprs_ms(4); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ibde5be120e893fcecceb72a888483d5a6bb8ce50 Gerrit-Change-Number: 25488 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 08:03:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:03:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 ) Change subject: pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats ...................................................................... pcu: TC_stat_pdch_avail_occ: test gprs/egprs stats Extend the test to verify that TTCN3.bts.0.pdch.occupied.gprs and TTCN3.bts.0.pdch.occupied.egprs work as expected. These new stats are needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Related: SYS#4878 Depends: osmo-pcu I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 --- M pcu/PCU_Tests.ttcn 1 file changed, 11 insertions(+), 4 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 6e6104b..07d35c3 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6045,18 +6045,25 @@ /* 8 PDCHs available, 0 occupied */ var StatsDExpects expect := { { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, - { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 } + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 0, max := 0 } }; f_statsd_expect(expect); - /* Establish an Uplink TBF for each GprsMS instance */ + /* Establish an Uplink TBF for each GprsMS instance (3x GPRS, 1x EGPRS) */ f_multi_ms_bssgp_register(); - f_multi_ms_establish_tbf(do_activate := false); + f_ms_establish_ul_tbf(g_ms[0]); + f_ms_establish_ul_tbf(g_ms[1]); + f_ms_establish_ul_tbf(g_ms[2]); + f_ms_establish_ul_tbf_2phase_access(g_ms[3], ts_RlcMacUlCtrl_PKT_RES_REQ(g_ms[3].tlli, ms_racap_egprs_def)); /* 4 PDCHs occupied */ expect := { { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, - { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 } + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 3, max := 3 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 1, max := 1 } }; f_statsd_expect(expect); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ia98de17187810acb2e1b327c37beab79a0c211b8 Gerrit-Change-Number: 25403 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 08:05:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:05:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 to look at the new patch set (#2). Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... pcu: add TC_stat_pdch_avail_occ_ms_not_known_* Add two new tests to verify occupied and available PDCH stats if MS is not known by the PCU. Related: SYS#4878 Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 --- M pcu/PCU_Tests.ttcn 1 file changed, 87 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/25489/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 2 Gerrit-Owner: osmith 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 Sep 17 08:07:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:07:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/1/pcu/PCU_Tests.ttcn at 249 PS1, Line 249: private function f_pcuvty_set_alloc_algorithm_a() runs on RAW_PCU_Test_CT { > why do you need this? I thought I'd call it twice (from each test), but it's not needed. Removed the extra functions. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 08:07:11 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 08:47:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:47:13 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 to look at the new patch set (#3). Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 6 files changed, 65 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/25400/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 3 Gerrit-Owner: osmith 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 Sep 17 08:47:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:47:44 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 3: (5 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.h File src/pdch.h: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.h at 81 PS2, Line 81: void num_tbfs_update(gprs_rlcmac_tbf *tbf, enum tbf_type type, bool is_attach); > type should be known from tbf, no need to pass it? Done https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/pdch.cpp at 1065 PS2, Line 1065: enum tbf_type type = tbf->is_egprs_enabled() ? TBF_TYPE_EGPRS : TBF_TYPE_GPRS; > why aren't you calling tbf->is_egprs_enabled() inside num_tbfs_update()!? Done https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.h File src/tbf.h: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.h at 90 PS2, Line 90: TBF_TYPE_GPRS, > No need for this! Are you sure? just using 0 and 1 there makes the code harder to read IMHO, e.g. return (m_num_tbfs[GPRS_RLCMAC_UL_TBF][TBF_TYPE_GPRS] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][TBF_TYPE_GPRS]) > 0; vs return (m_num_tbfs[GPRS_RLCMAC_UL_TBF][0] + m_num_tbfs[GPRS_RLCMAC_DL_TBF][0]) > 0; and return m_num_tbfs[dir][TBF_TYPE_GPRS] + m_num_tbfs[dir][TBF_TYPE_EGPRS]; vs return m_num_tbfs[dir][0] + m_num_tbfs[dir][1]; https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp File src/tbf.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp at 773 PS2, Line 773: for (int ts = 0; ts < 8; ts++) { > what about using ARRAY_SIZE(pdch) here instead of 8? Done https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp at 779 PS2, Line 779: if (direction == GPRS_RLCMAC_DL_TBF && pdch[ts]->dl_tbf_by_tfi(m_tfi) != this) > why are the last 2 if conditions needed? if pdch[ts] it means it's attached right? no need to do thi [?] If I remove the checks, it will run num_tbfs_update on PDCHs where _any_ TBF is attached, instead of only the PDCH where the relevant TBF ("this") is attached. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 08:47:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 08:55:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 08:55:43 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 to look at the new patch set (#4). Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... pdch: has_gprs_only_tb_attached: use m_num_tbfs Make use of the separate GPRS counters added in previous patch I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 to shorten has_gprs_only_tb_attached. Related: SYS#4878 Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae --- M src/pdch.cpp 1 file changed, 2 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/01/25401/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From noreply at opensuse.org Fri Sep 17 09:01:57 2021 From: noreply at opensuse.org (OBS Notification) Date: Fri, 17 Sep 2021 09:01:57 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <61445993a9ddb_68252b0c0d0ac5f08949@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:latest/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 49s] Processing triggers for libc-bin (2.24-11+deb9u4) ... [ 50s] [284/436] installing ucf-3.0036 [ 50s] Moving old data out of the way [ 50s] [285/436] installing dictionaries-common-1.27.2 [ 50s] Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' [ 50s] Processing triggers for dictionaries-common (1.27.2) ... [ 50s] [286/436] installing libosmo-abis-dev-1.1.1 [ 50s] [287/436] installing libpam0g-1.1.8-3.6 [ 50s] Processing triggers for libc-bin (2.24-11+deb9u4) ... [ 50s] [288/436] installing gawk-1:4.1.4+dfsg-1 [ 50s] [289/436] installing libosmo-gsup-client0-1.3.1 [ 50s] Processing triggers for libc-bin (2.24-11+deb9u4) ... [ 50s] [290/436] installing libperl5.24-5.24.1-3+deb9u7 [ 51s] Processing triggers for libc-bin (2.24-11+deb9u4) ... [ 51s] [291/436] installing gnupg-agent-2.1.18-8~deb9u4 [ 51s] [292/436] installing procps-2:3.3.12-3+deb9u1 [ 51s] update-alternatives: using /usr/bin/w.procps to provide /usr/bin/w (w) in auto mode [ 51s] insserv: Service mountkernfs has to be enabled to start service procps [ 51s] [293/436] installing libosmo-sigtran5-1.4.0 [ 51s] Processing triggers for libc-bin (2.24-11+deb9u4) ... [ 51s] [294/436] installing man-db-2.7.6.1-2 [ 51s] Building database of manual pages ... [28854s] qemu-kvm: terminating on signal 15 from pid 14779 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28854s] ### VM INTERACTION END ### [28854s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28854s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From noreply at opensuse.org Fri Sep 17 09:02:14 2021 From: noreply at opensuse.org (OBS Notification) Date: Fri, 17 Sep 2021 09:02:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <614459b271f99_68252b0c0d0ac5f0895d0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_18.04/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 30s] [10/462] installing gcc-8-base-8-20180414-1ubuntu2 [ 30s] [11/462] installing gnupg-l10n-2.2.4-1ubuntu1 [ 30s] [12/462] installing hicolor-icon-theme-0.17-2 [ 30s] [13/462] installing imagemagick-6-common-8:6.9.7.4+dfsg-16ubuntu6 [ 30s] [14/462] installing libatk1.0-data-2.28.1-1 [ 30s] [15/462] installing libaudit-common-1:2.8.2-1ubuntu1 [ 30s] [16/462] installing libavahi-common-data-0.7-3.1ubuntu1 [ 30s] [17/462] installing libbison-dev-2:3.0.4.dfsg-1build1 [ 30s] [18/462] installing libgdk-pixbuf2.0-common-2.36.11-2 [ 30s] [19/462] installing libgs9-common-9.22~dfsg+1-0ubuntu1 [ 30s] [20/462] installing libgtk2.0-common-2.24.32-1ubuntu1 [ 30s] [21/462] installing libldap-common-2.4.45+dfsg-1ubuntu1 [ 30s] [22/462] installing libmagic-mgc-1:5.32-2 [ 30s] [23/462] installing libpython2.7-minimal-2.7.15~rc1-1 [ 30s] [24/462] installing libsemanage-common-2.7-2build2 [ 30s] [25/462] installing libthai-data-0.1.27-2 [ 30s] [26/462] installing libx11-data-2:1.6.4-3 [ 30s] [27/462] installing linux-libc-dev-4.15.0-20.21 [ 31s] [28/462] installing lsb-base-9.20170808ubuntu1 [ 31s] [29/462] installing lynx-common-2.8.9dev16-3 [ 31s] [30/462] installing mime-support-3.60ubuntu1 [ 31s] [31/462] installing ncurses-base-6.1-1ubuntu1 [28839s] qemu-kvm: terminating on signal 15 from pid 16259 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28839s] ### VM INTERACTION END ### [28839s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28839s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From noreply at opensuse.org Fri Sep 17 09:06:12 2021 From: noreply at opensuse.org (OBS Notification) Date: Fri, 17 Sep 2021 09:06:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bts in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <61445aa3d165a_68252b0c0d0ac5f090912@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bts/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-bts failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bts Last lines of build log: [ 51s] [328/421] installing asciidoc-base-8.6.9-5 [ 51s] Processing triggers for man-db (2.7.6.1-2) ... [ 51s] [329/421] installing docbook-dsssl-1.79-9.1 [ 51s] Processing triggers for sgml-base (1.29) ... [ 51s] Processing triggers for man-db (2.7.6.1-2) ... [ 51s] [330/421] installing python3-3.5.3-1 [ 51s] dpkg: python3: dependency problems, but configuring anyway as you requested: [ 51s] python3 depends on dh-python; however: [ 51s] Package dh-python is not installed. [ 51s] Processing triggers for man-db (2.7.6.1-2) ... [ 51s] [331/421] installing build-essential-12.3 [ 51s] [332/421] installing login-1:4.4-4.1 [ 52s] Processing triggers for man-db (2.7.6.1-2) ... [ 52s] [333/421] installing libcairomm-1.0-1v5-1.12.0-1+b1 [ 52s] Processing triggers for libc-bin (2.24-11+deb9u4) ... [ 52s] [334/421] installing asciidoc-8.6.9-5 [ 52s] [335/421] installing dh-python-2.20170125 [ 52s] Processing triggers for man-db (2.7.6.1-2) ... [ 52s] [336/421] installing python3-funcparserlib-0.3.6-7 [ 52s] [337/421] installing python3-pkg-resources-33.1.1-1 [ 52s] [338/421] installing python3-roman-2.0.0-2 [ 52s] [339/421] installing python3-webcolors-1.5-2 [28853s] qemu-kvm: terminating on signal 15 from pid 58019 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28853s] ### VM INTERACTION END ### [28853s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28853s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:01:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:01:51 +0000 Subject: Change in osmo-bts[master]: power_control: Drop unused param in function In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25475 ) Change subject: power_control: Drop unused param in function ...................................................................... power_control: Drop unused param in function Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d --- M src/common/power_control.c 1 file changed, 4 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/common/power_control.c b/src/common/power_control.c index d57c28d..62905bd 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -111,11 +111,9 @@ } return val_avg; } -/* Calculate a 'delta' value (for the given MS/BS power control state and parameters) +/* Calculate a 'delta' value (for the given MS/BS power control parameters) * to be applied to the current Tx power level to approach the target level. */ -static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, - struct lchan_power_ctrl_state *state, - const uint8_t rxlev) +static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, const uint8_t rxlev) { int delta; @@ -236,7 +234,7 @@ new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ - new_dbm = ms_dbm + calc_delta_rxlev(params, state, rxlev_avg); + new_dbm = ms_dbm + calc_delta_rxlev(params, rxlev_avg); } /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on @@ -364,7 +362,7 @@ * RxLev + Delta = TxPwr - PathLoss - TxAtt + Delta * RxLev + Delta = TxPwr - PathLoss - (TxAtt - Delta) */ - new_att = state->current - calc_delta_rxlev(params, state, rxlev_avg); + new_att = state->current - calc_delta_rxlev(params, rxlev_avg); } /* Make sure new TxAtt is never negative: */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6c0c2b983e153b06b84664565bd485e748a8af7d Gerrit-Change-Number: 25475 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:04:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:04:03 +0000 Subject: Change in libosmocore[master]: copy base64 implementation from mbedtls In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25496 ) Change subject: copy base64 implementation from mbedtls ...................................................................... Patch Set 1: Code-Review+1 It would be great to know why do we need this in libosmocore to start with :D -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 Gerrit-Change-Number: 25496 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:04:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:06:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:06:51 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... Patch Set 1: Code-Review+1 Am I the only one having difficulties reviewing this due to the previously existing code style? it makes me cry. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:06: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 Sep 17 10:07:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:07:36 +0000 Subject: Change in libosmocore[master]: base64: reformat using Lindent to conform to our coding style In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25498 ) Change subject: base64: reformat using Lindent to conform to our coding style ...................................................................... Patch Set 1: Code-Review+1 Would be great removing all those parantehssis around return statements. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 Gerrit-Change-Number: 25498 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:07:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:08:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:08:39 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25495 ) Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... Patch Set 3: Code-Review+1 why not simply using osmo_hexdump? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:08:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:11:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:11:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn at 6097 PS2, Line 6097: f_vty_config2(PCUVTY, {"pcu"}, "alloc-algorithm a"); Still, I'm not getting why you need this. And by "this" I mean changing the allocation algorithm. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:11:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:15:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:15:25 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp at 1073 PS3, Line 1073: num_tbfs_update(tbf, 1); it's a bool, then true/false. https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp at 1093 PS3, Line 1093: num_tbfs_update(tbf, 0); it's a bool, then true/false. https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp File src/tbf.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp at 779 PS2, Line 779: if (direction == GPRS_RLCMAC_DL_TBF && pdch[ts]->dl_tbf_by_tfi(m_tfi) != this) > If I remove the checks, it will run num_tbfs_update on PDCHs where _any_ TBF is attached, instead of [?] IIRC pdch is an array of pointers to pdch structs, which are non null only on TS where the TBF is attached. Hence, if the TBF is not attached toa given PDCH, the first condition will skip the loop iteration. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:15:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:20:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:20:32 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp at 1041 PS3, Line 1041: enum tbf_type type = tbf->is_egprs_enabled() ? TBF_TYPE_EGPRS : TBF_TYPE_GPRS; you can simply change this to: uint8_t is_egprs = tbf->is_egprs_enabled() ? 1 : 0; ... m_num_tbfs[tbf->direction][is_egprs] += inc; https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/tbf.h File src/tbf.h: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/tbf.h at 89 PS3, Line 89: enum tbf_type { I would really avoid having an enum for 2 different options, which can be easily simplified to "is_egprs". I'd like to avoid having this enum only for the sake of accessing one array of 2 items, which could even be split into 2 variables if you feel it looks better to you. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:20:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:21:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 10:21:24 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... Patch Set 4: Code-Review+1 This will probably change according to requested changes in previous commit. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 4 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10: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 Fri Sep 17 10:37:18 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:37:18 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... pySim-prog: rename card_handler to Card_handler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim/card_handler.py 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/25499/1 diff --git a/pySim-prog.py b/pySim-prog.py index 4c85be7..849e703 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -741,9 +741,9 @@ init_batch(opts) if opts.card_handler: - card_handler = card_handler_auto(sl, opts.card_handler) + card_handler = Card_handler_auto(sl, opts.card_handler) else: - card_handler = card_handler(sl) + card_handler = Card_handler(sl) # Iterate first = True diff --git a/pySim/card_handler.py b/pySim/card_handler.py index 9beab51..bce0416 100644 --- a/pySim/card_handler.py +++ b/pySim/card_handler.py @@ -27,7 +27,7 @@ import yaml # Manual card handler: User is prompted to insert/remove card from the reader. -class card_handler: +class Card_handler: sl = None @@ -47,7 +47,7 @@ print("") # Automatic card handler: A machine is used to handle the cards. -class card_handler_auto: +class Card_handler_auto: sl = None cmds = None -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 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 Sep 17 10:37:19 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:37:19 +0000 Subject: Change in pysim[master]: pySim-shell: remove card handler object References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25500 ) Change subject: pySim-shell: remove card handler object ...................................................................... pySim-shell: remove card handler object The card handler object is for bulk handling of cards, it is not needed in pySim-shell Change-Id: I9e176248dab146a1bcb27981f09ba630fe2cae97 --- M pySim-shell.py 1 file changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/00/25500/1 diff --git a/pySim-shell.py b/pySim-shell.py index 7977ff5..aa9b123 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -40,7 +40,6 @@ from pySim.cards import card_detect, SimCard from pySim.utils import h2b, swap_nibbles, rpad, b2h, h2s, JsonEncoder, bertlv_parse_one from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str -from pySim.card_handler import card_handler from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF from pySim.ts_51_011 import CardProfileSIM, DF_TELECOM, DF_GSM @@ -484,8 +483,6 @@ sl.wait_for_card(); - card_handler = card_handler(sl) - card = card_detect("auto", scc) if card is None: print("No card detected!") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9e176248dab146a1bcb27981f09ba630fe2cae97 Gerrit-Change-Number: 25500 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 Sep 17 10:38:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 10:38:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn at 6097 PS2, Line 6097: f_vty_config2(PCUVTY, {"pcu"}, "alloc-algorithm a"); > Still, I'm not getting why you need this. And by "this" I mean changing the allocation algorithm. With alloc-algorithm dynamic (the default), I found that sometimes it uses algorithm a, sometimes algorithm b. In case algorithm b is used, it will use two PDCHs for the TBF (see src/gprs_rlcmac_ts_alloc.cpp, alloc_algorithm_b()). The value for the occupied PDCHs will be 2 then (as expected). So I'm setting it to algorithm a to have it deterministically use only one PDCH for the TBF. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 10:38: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 Fri Sep 17 10:45:08 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:45:08 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:45:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:45:54 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler In-Reply-To: References: Message-ID: dexter has restored this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... Restored -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: restore -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:46:03 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:46:03 +0000 Subject: Change in pysim[master]: pySim-shell: remove card handler object In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/c/pysim/+/25500 ) Change subject: pySim-shell: remove card handler object ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9e176248dab146a1bcb27981f09ba630fe2cae97 Gerrit-Change-Number: 25500 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-CC: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:46:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:46:16 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler 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/+/25499 to look at the new patch set (#2). Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... pySim-prog: rename card_handler to Card_handler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim-shell.py M pySim/card_handler.py 3 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/25499/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 10:56:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 10:56:30 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler 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/+/25499 to look at the new patch set (#3). Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... pySim-prog: rename card_handler to Card_handler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim-shell.py M pySim/card_handler.py 3 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/25499/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 11:03:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 11:03:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn at 6097 PS2, Line 6097: f_vty_config2(PCUVTY, {"pcu"}, "alloc-algorithm a"); > With alloc-algorithm dynamic (the default), I found that sometimes it uses algorithm a, sometimes al [?] yes, dynamic uses algo B unless in high congestion, then it switches to algo A IIRC. I don't think you should be triggering use of algo A in this test, so you should be fine using default algo, which tries to allocate as many TS as possible to the MS given is ms_class. Are you really triggering allocation with algo A if you leave it as "dynamic"?. I think it's fine to use the default algo and assume all PDCHs of the TS (you only enable 2 per TS) will be used. If you don't want that, you can change the ms_class you send in bssgp_ms_racap_egprs_def to one which only allows 1 TS. This way you test one specific thing instead of mangling with the allocator here. See https://www.rfwireless-world.com/Terminology/GPRS-mobile-multislot-classes.html gprs_ms_class 1 allows for 1 UL TBF and 1 DL TBF at the time. Whatever algo you use, it should allocate 1 PDCH to it. See right now you are using "gprsmultislotclass := '00011'B," (PCU_Tests.ttcn:135). -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 11:03:17 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 11:15:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 11:15:12 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 to look at the new patch set (#4). Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 6 files changed, 61 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/25400/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 4 Gerrit-Owner: osmith 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 Sep 17 11:15:12 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 11:15:12 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 to look at the new patch set (#5). Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... pdch: has_gprs_only_tb_attached: use m_num_tbfs Make use of the separate GPRS counters added in previous patch I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 to shorten has_gprs_only_tb_attached. Related: SYS#4878 Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae --- M src/pdch.cpp 1 file changed, 2 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/01/25401/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 5 Gerrit-Owner: osmith 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 Sep 17 11:15:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 11:15:32 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 3: (5 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp at 1041 PS3, Line 1041: enum tbf_type type = tbf->is_egprs_enabled() ? TBF_TYPE_EGPRS : TBF_TYPE_GPRS; > you can simply change this to: [?] I split it into two variables, as suggested in your other comment. https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp at 1073 PS3, Line 1073: num_tbfs_update(tbf, 1); > it's a bool, then true/false. Done https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/pdch.cpp at 1093 PS3, Line 1093: num_tbfs_update(tbf, 0); > it's a bool, then true/false. Done https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/tbf.h File src/tbf.h: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/3/src/tbf.h at 89 PS3, Line 89: enum tbf_type { > I would really avoid having an enum for 2 different options, which can be easily simplified to "is_e [?] Done https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp File src/tbf.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/2/src/tbf.cpp at 779 PS2, Line 779: if (direction == GPRS_RLCMAC_DL_TBF && pdch[ts]->dl_tbf_by_tfi(m_tfi) != this) > IIRC pdch is an array of pointers to pdch structs, which are non null only on TS where the TBF is at [?] Oh you're right! then it's not needed, removed. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 11:15:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 11:20:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 11:20:40 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 to look at the new patch set (#5). Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 6 files changed, 61 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/25400/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 5 Gerrit-Owner: osmith 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 Sep 17 11:28:50 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 11:28:50 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... Patch Set 3: I would have assumed it's the more logical approach to rename the local variables rather than the class. However, if the class is renamed to uppercase (which is generally a good idea) I would suggest to go for CamelCase altogether, like CardHandler. That's how all the later shell related code does it, AFAICT. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 17 Sep 2021 11:28:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 11:30:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 11:30:15 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25495 ) Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... Patch Set 3: > why not simply using osmo_hexdump? Because in IMS the "native" encoding is base64, so if you look at packet traces of SIP with IMS-AKA, you will see those exact base64 strings. So if you debug that, you want to be able to compare it as a human being, in the same representation. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 11:30: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 Fri Sep 17 11:31:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 11:31:19 +0000 Subject: Change in libosmocore[master]: copy base64 implementation from mbedtls In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25496 ) Change subject: copy base64 implementation from mbedtls ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 Gerrit-Change-Number: 25496 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 11:31:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 11:31:23 +0000 Subject: Change in libosmocore[master]: copy base64 implementation from mbedtls In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25496 ) Change subject: copy base64 implementation from mbedtls ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 Gerrit-Change-Number: 25496 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 11: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 Fri Sep 17 11:39:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 11:39:54 +0000 Subject: Change in pysim[master]: pySim-prog: rename variable card_handler References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25501 ) Change subject: pySim-prog: rename variable card_handler ...................................................................... pySim-prog: rename variable card_handler The variable card_handler is assigned in the following way: card_handler = card_handler(sl) This may cause problems since the class name and the variable name are the same. Lets rename card_handler to avoid problems here. Change-Id: I84dafc49862e373ae9f6a56bd2e8d1a02c27430a --- M pySim-prog.py 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/01/25501/1 diff --git a/pySim-prog.py b/pySim-prog.py index 4c85be7..922ca86 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -649,11 +649,11 @@ fh.close() -def process_card(opts, first, card_handler): +def process_card(opts, first, ch): if opts.dry_run is False: # Connect transport - card_handler.get(first) + ch.get(first) if opts.dry_run is False: # Get card @@ -681,13 +681,13 @@ if opts.read_iccid: if opts.dry_run: # Connect transport - card_handler.get(False) + ch.get(False) (res,_) = scc.read_binary(['3f00', '2fe2'], length=10) iccid = dec_iccid(res) elif opts.read_imsi: if opts.dry_run: # Connect transport - card_handler.get(False) + ch.get(False) (res,_) = scc.read_binary(EF['IMSI']) imsi = swap_nibbles(res)[3:] else: @@ -713,7 +713,7 @@ opts.num += 1 save_batch(opts) - card_handler.done() + ch.done() return 0 @@ -741,9 +741,9 @@ init_batch(opts) if opts.card_handler: - card_handler = card_handler_auto(sl, opts.card_handler) + ch = card_handler_auto(sl, opts.card_handler) else: - card_handler = card_handler(sl) + ch = card_handler(sl) # Iterate first = True @@ -751,7 +751,7 @@ while 1: try: - rc = process_card(opts, first, card_handler) + rc = process_card(opts, first, ch) except (KeyboardInterrupt): print("") print("Terminated by user!") @@ -770,7 +770,7 @@ # Something did not work as well as expected, however, lets # make sure the card is pulled from the reader. if rc != 0: - card_handler.error() + ch.error() # If we are not in batch mode we are done in any case, so lets # exit here. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I84dafc49862e373ae9f6a56bd2e8d1a02c27430a Gerrit-Change-Number: 25501 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 Sep 17 11:52:40 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 11:52:40 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to Card_handler In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25499 to look at the new patch set (#4). Change subject: pySim-prog: rename card_handler to Card_handler ...................................................................... pySim-prog: rename card_handler to Card_handler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim-shell.py M pySim/card_handler.py 3 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/25499/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 11:52:57 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 11:52:57 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25499 to look at the new patch set (#5). Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... pySim-prog: rename card_handler to CardHandler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim-shell.py M pySim/card_handler.py 3 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/25499/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 12:23:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 12:23:55 +0000 Subject: Change in osmo-bts[master]: tests: MS Power Control Loop: Show oscillation among good power levels References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25502 ) Change subject: tests: MS Power Control Loop: Show oscillation among good power levels ...................................................................... tests: MS Power Control Loop: Show oscillation among good power levels This test showcases the current issue where the loop keeps bouncing between 2 good MS Power Level values due to the loop "accepting" and "reporting back" the previously considered good MS Power Level announced/used by the MS. Hence, upon report back from the network, the MS will switch to this new MS Power Level, and same thing will ocurr over and over. Related: SYS#4917 Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c --- M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 3 files changed, 54 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/02/25502/1 diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 559eacc..d8d1c71 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -70,13 +70,11 @@ printf("\nStarting test case '%s'\n", name); } -static inline void apply_power_test(struct gsm_lchan *lchan, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) +static void apply_power_test_ext(struct gsm_lchan *lchan, uint8_t ms_pwr, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) { - uint8_t old; int ret; - old = lchan->ms_power_ctrl.current; - ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, rxlev, lqual_cb); + ret = lchan_ms_pwr_ctrl(lchan, ms_pwr, rxlev, lqual_cb); /* Keep the measurement counter updated */ lchan->meas.res_nr++; @@ -84,7 +82,12 @@ printf("lchan_ms_pwr_ctrl(RxLvl=%d dBm) returns %d (expected %d)\n", rxlev, ret, exp_ret); printf("\tMS current power %u -> %u (expected %u)\n", - old, lchan->ms_power_ctrl.current, exp_current); + ms_pwr, lchan->ms_power_ctrl.current, exp_current); +} + +static inline void apply_power_test(struct gsm_lchan *lchan, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) +{ + apply_power_test_ext(lchan, lchan->ms_power_ctrl.current, rxlev, lqual_cb, exp_ret, exp_current); } static void test_power_loop(void) @@ -374,6 +377,34 @@ apply_power_test(lchan, -60, too_high_lqual, 1, 14); } +/* Test whether ping pong between requested MS Power Level and announced MS + * Power level occurs, oscillating between considered good levels all the time: + * FIXME: Current code shows there's an issue with oscillating values. */ +static void test_good_threshold_convergence(void) +{ + struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual, good_rxlev; + + init_test(__func__); + lchan = &g_trx->ts[0].lchan[0]; + params = lchan->ms_power_ctrl.dpc_params; + lchan->ms_dpc_params.rxlev_meas.upper_thresh = 37; + lchan->ms_dpc_params.rxlev_meas.lower_thresh = 30; + lchan->type = GSM_LCHAN_SDCCH; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; + good_rxlev = rxlev2dbm(params->rxlev_meas.lower_thresh + 2); + + lchan->ms_power_ctrl.current = 10; + lchan->ms_power_ctrl.max = 2; + + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); +} + int main(int argc, char **argv) { printf("Testing power loop...\n"); @@ -394,6 +425,7 @@ test_power_hysteresis(); test_power_ctrl_interval(); test_power_loop_ci(); + test_good_threshold_convergence(); printf("Power loop test OK\n"); diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 8f58882..5a68e3b 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -58,3 +58,8 @@ (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 27992b1..4dc01e4 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -164,4 +164,16 @@ MS current power 12 -> 13 (expected 13) lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 1 (expected 1) MS current power 13 -> 14 (expected 14) + +Starting test case 'test_good_threshold_convergence' +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 9 -> 9 (expected 9) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 10 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 9 -> 9 (expected 9) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 10 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 9 -> 9 (expected 9) Power loop test OK -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c Gerrit-Change-Number: 25502 Gerrit-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 Sep 17 12:23:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 12:23:56 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... MS Power Control Loop: Fix oscillations within good MS Power Levels Related: SYS#4917 Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 44 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/25503/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index 62905bd..a29d6db 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -199,6 +199,7 @@ uint8_t rxlev_avg; int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; + bool ignore; if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; @@ -265,15 +266,39 @@ } current_dbm = ms_pwr_dbm(band, state->current); + + /* In this Power Control Loop, we infer a new good MS Power Level based + * on the previous MS Power Level announced by the MS (not the previous + * one we requested!) together with the related computed measurements. + * Hence, and since we allow for several good MS Power Levels falling into our + * thresholds, we could finally converge into an oscillation loop where + * the MS bounces between 2 different correct MS Power levels all the + * time, due to the fact that we "accept" and "request back" whatever + * good MS Power Level we received from the MS, but at that time the MS + * will be transmitting using the previous MS Powever Level we + * requested, which we will later "accept" and "request back" on next loop + * iteration. As a result MS effectively bounces between those 2 MS + * Power Levels. + * In order to fix this permanent oscillation, if current MS_PWR used/announced + * by MS is good ("ms_dbm == new_dbm", hence within thresholds and no change + * required) but has higher Tx power than the one we last requested, we ignore + * it and keep requesting for one with lower Tx power. This way we converge to + * the lowest good Tx power avoiding oscillating over values within thresholds. + */ + ignore = (ms_dbm == new_dbm && ms_dbm > current_dbm); + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power control level %d (%d dBm) => %d (%d dBm): " "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," " C/I[curr %d, avg %d, thresh %d..%d] dB\n", - (new_dbm > current_dbm) ? "Raising" : "Lowering", + ignore ? "Ignoring" : ((new_dbm > current_dbm) ? "Raising" : "Lowering"), state->current, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, state->max, ul_rssi_dbm, rxlev2dbm(rxlev_avg), rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh), ul_lqual_cb/10, ul_lqual_cb_avg/10, ci_meas->lower_thresh, ci_meas->upper_thresh); + if (ignore) + return 0; + /* store the resulting new MS power level in the lchan */ state->current = new_power_lvl; bts_model_adjst_ms_pwr(lchan); diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index d8d1c71..a343ee2 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -398,11 +398,11 @@ lchan->ms_power_ctrl.current = 10; lchan->ms_power_ctrl.max = 2; - apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); - apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); - apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); - apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); - apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 10); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 0, 10); } int main(int argc, char **argv) diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 5a68e3b..a85b9b2 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -58,8 +58,8 @@ (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Ignoring MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Ignoring MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Ignoring MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 4dc01e4..2bb780d 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -166,14 +166,14 @@ MS current power 13 -> 14 (expected 14) Starting test case 'test_good_threshold_convergence' -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) - MS current power 9 -> 9 (expected 9) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 1) + MS current power 9 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) MS current power 10 -> 10 (expected 10) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) - MS current power 9 -> 9 (expected 9) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) + MS current power 9 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) MS current power 10 -> 10 (expected 10) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) - MS current power 9 -> 9 (expected 9) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) + MS current power 9 -> 10 (expected 10) Power loop test OK -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-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 Sep 17 14:10:44 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 14:10:44 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 5: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 14:10:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 14:12:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 14:12:59 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 to look at the new patch set (#7). Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 6 files changed, 63 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/25400/7 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 7 Gerrit-Owner: osmith 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 Sep 17 14:20:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 14:20:33 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 8 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 14:20:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:01:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:01:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 to look at the new patch set (#3). Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... pcu: add TC_stat_pdch_avail_occ_ms_not_known_* Add two new tests to verify occupied and available PDCH stats if MS is not known by the PCU. Related: SYS#4878 Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 --- M pcu/PCU_Tests.ttcn 1 file changed, 97 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/25489/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 3 Gerrit-Owner: osmith 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 Sep 17 15:01:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:01:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489/2/pcu/PCU_Tests.ttcn at 6097 PS2, Line 6097: f_vty_config2(PCUVTY, {"pcu"}, "alloc-algorithm a"); > Are you really triggering allocation with algo A if you leave it as "dynamic"?. Sorry, that was a misconception. I just ran the test and it didn't use algo A, but it used algo B and (when running multiple times) I got either one or two slots: > [DL] algo B (suggested TRX: -1): using single slot at TS 6 > [DL] algo B (suggested TRX: -1): using 2 slots I read in the code that with algo A it's always one slot, so I used that. > gprs_ms_class 1 allows for 1 UL TBF and 1 DL TBF at the time. Whatever algo you use, it should allocate 1 PDCH to it. See right now you are using "gprsmultislotclass := '00011'B," (PCU_Tests.ttcn:135). thanks, done :) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:01:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:04:36 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:04:36 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 8: lol, jenkins finished building patchset 7 (failure) *after* building patchset 8 (success). re-triggering... -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 8 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:04:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:12:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 15:12:44 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 8: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/8/src/tbf.cpp File src/tbf.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/8/src/tbf.cpp at 777 PS8, Line 777: m_egprs_enabled = false; This looks really ugly. Rather do a pass over before setting m_egprs_enabled=true. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 8 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:12:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:13:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 15:13:34 +0000 Subject: Change in pysim[master]: pySim-prog: rename variable card_handler In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25501 ) Change subject: pySim-prog: rename variable card_handler ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I84dafc49862e373ae9f6a56bd2e8d1a02c27430a Gerrit-Change-Number: 25501 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:13:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:14:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 15:14:11 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:14:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:15:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 15:15:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:15:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:20:31 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:20:31 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/25499/5/pySim-prog.py File pySim-prog.py: https://gerrit.osmocom.org/c/pysim/+/25499/5/pySim-prog.py at 203 PS5, Line 203: parser.add_option("--card_handler", dest="card_handler", metavar="FILE", I'm not familiar at all with the pySim codebase. But FWIW, I would find it much more readable if the option here has dest="card_handler_config". Maybe make that as additional patch? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:20:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:24:33 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 15:24:33 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... Patch Set 5: > Patch Set 3: > > I would have assumed it's the more logical approach to rename the local variables rather than the class. However, if the class is renamed to uppercase (which is generally a good idea) I would suggest to go for CamelCase altogether, like CardHandler. That's how all the later shell related code does it, AFAICT. I did not rename the local variables for consistency reasons. Here is a patch that follows the approach to rename the variables: https://gerrit.osmocom.org/c/pysim/+/25501 In the end I am not sure what makes more sense. Both patches do fix the problem. I personally would prefer to rename the class to "CardHandler". -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:24:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:26:03 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 17 Sep 2021 15:26:03 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25499/5/pySim-prog.py File pySim-prog.py: https://gerrit.osmocom.org/c/pysim/+/25499/5/pySim-prog.py at 203 PS5, Line 203: parser.add_option("--card_handler", dest="card_handler", metavar="FILE", > I'm not familiar at all with the pySim codebase. [?] I put it on my list. I am currently in that code anyway. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:26:03 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:30:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:30:09 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 to look at the new patch set (#9). Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 6 files changed, 65 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/00/25400/9 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 9 Gerrit-Owner: osmith 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 Sep 17 15:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:31:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 ) Change subject: pcu: add TC_stat_pdch_avail_occ_ms_not_known_* ...................................................................... pcu: add TC_stat_pdch_avail_occ_ms_not_known_* Add two new tests to verify occupied and available PDCH stats if MS is not known by the PCU. Related: SYS#4878 Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 --- M pcu/PCU_Tests.ttcn 1 file changed, 97 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 07d35c3..0324439 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -6070,6 +6070,101 @@ f_shutdown(__BFILE__, __LINE__, final := true); } +/* Test stats for available and occupied PDCHs, for MS which is not known by + * the PCU (e.g. because it was forgotten due to no interaction, and old DL + * data arrives from SGSN) */ +function f_tc_stat_pdch_avail_occ_ms_not_known(boolean egprs) runs on RAW_PCU_Test_CT { + var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default); + const BssgpBvci bvci := mp_gb_cfg.bvc[0].bvci; + + /* Ensure a deterministic slot allocation of 1 PDCH with MS class 1 */ + const MultislotCap_GPRS_BSSGP bssgp_mscap_gprs := { + gprsmultislotclass := '00001'B, + gprsextendeddynalloccap := '0'B + }; + const MultislotCap_EGPRS_BSSGP bssgp_mscap_egprs := { + egprsmultislotclass := '00001'B, + egprsextendeddynalloccap := '0'B + }; + template (value) MSRadioAccessCapabilityV_BSSGP bssgp_ms_racap_gprs := { + valueof(ts_RaCapRec_BSSGP('0001'B /* E-GSM */, bssgp_mscap_gprs, omit)) }; + template (value) MSRadioAccessCapabilityV_BSSGP bssgp_ms_racap_egprs := { + valueof(ts_RaCapRec_BSSGP('0001'B /* E-GSM */, bssgp_mscap_gprs, bssgp_mscap_egprs)) }; + + /* Initialize NS/BSSGP side */ + f_init_bssgp(); + + /* Only the 4 first TRX are enabled, each with 2 PDCHs. */ + f_PCUIF_PDCHMask_set(info_ind, '00000011'B, 0); + f_PCUIF_PDCHMask_set(info_ind, '00001100'B, 1); + f_PCUIF_PDCHMask_set(info_ind, '11000000'B, 2); + f_PCUIF_PDCHMask_set(info_ind, '00110000'B, 3); + f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (4 .. 7)); + + /* Allocate 1 GprsMS instance */ + f_init_gprs_ms(1); + + /* Initialize the PCU interface abstraction */ + f_init_raw(testcasename(), info_ind); + + /* Reset stats */ + f_statsd_reset(); + + /* Establish BSSGP */ + f_bssgp_establish(); + + /* 8 PDCHs available, 0 occupied */ + var StatsDExpects expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 0, max := 0 } + }; + f_statsd_expect(expect); + + var GprsMS ms := g_ms[0]; /* We only use first MS in this test */ + f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli); + + /* SGSN sends some DL data, PCU will page on CCCH (PCH) */ + var octetstring data := f_rnd_octstring(1400); + if (egprs) { + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_egprs)); + } else { + BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data, bssgp_ms_racap_gprs)); + } + f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH); + + /* Wait timer X2002 and DL block is available after CCCH IMM ASS */ + f_sleep(X2002); + + /* 1 PDCH occupied */ + if (egprs) { + expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 1, max := 1 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 0, max := 0 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 1, max := 1 } + }; + } else { + expect := { + { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 }, + { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 1, max := 1 }, + { name := "TTCN3.bts.0.pdch.occupied.gprs", mtype := "g", min := 1, max := 1 }, + { name := "TTCN3.bts.0.pdch.occupied.egprs", mtype := "g", min := 0, max := 0 } + }; + } + f_statsd_expect(expect); + + /* Clean up */ + f_shutdown(__BFILE__, __LINE__, final := true); +} +testcase TC_stat_pdch_avail_occ_ms_not_known_gprs() runs on RAW_PCU_Test_CT { + f_tc_stat_pdch_avail_occ_ms_not_known(false); +} +testcase TC_stat_pdch_avail_occ_ms_not_known_egprs() runs on RAW_PCU_Test_CT { + f_tc_stat_pdch_avail_occ_ms_not_known(true); +} + control { execute( TC_pcuif_suspend() ); execute( TC_pcuif_suspend_active_tbf() ); @@ -6180,6 +6275,8 @@ execute (TC_pdch_energy_saving() ); execute( TC_stat_pdch_avail_occ() ); + execute( TC_stat_pdch_avail_occ_ms_not_known_gprs() ); + execute( TC_stat_pdch_avail_occ_ms_not_known_egprs() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id21d4056a21b73ff612956700d2056d838eb54f8 Gerrit-Change-Number: 25489 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:31:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 17 Sep 2021 15:31:55 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 9: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25400/8/src/tbf.cpp File src/tbf.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25400/8/src/tbf.cpp at 777 PS8, Line 777: m_egprs_enabled = false; > This looks really ugly. Rather do a pass over before setting m_egprs_enabled=true. Done -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 9 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 15:31:55 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 15:37:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 15:37:38 +0000 Subject: Change in osmo-pcu[master]: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25504 ) Change subject: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode ...................................................................... scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode We also want to avoid sending idle blocs in TRX0 to the BTS, so that the BTS can be aware of blocks being idle and then submitting dummy blokcs by itself applying required BCCH Carrier power reduction. Related: SYS#4919 Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/25504/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 08f43cd..405b7db 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -498,7 +498,13 @@ */ const unsigned num_tbfs = pdch->num_tbfs(GPRS_RLCMAC_DL_TBF) + pdch->num_tbfs(GPRS_RLCMAC_UL_TBF); - if (trx != 0 && num_tbfs == 0) + bool skip_idle = (num_tbfs == 0); +#ifdef ENABLE_DIRECT_PHY + /* In DIRECT_PHY mode we want to always submit something to L1 in + * TRX0, since BTS is not preparing dummy bursts on idle TS for us */ + skip_idle = skip_idle && trx != 0; +#endif + if (skip_idle) return 0; if ((msg = sched_dummy())) { /* increase counter */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 Gerrit-Change-Number: 25504 Gerrit-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 Sep 17 16:05:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 16:05:52 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Patch Set 9: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 9 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 16:05: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 Sep 17 16:28:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 16:28:22 +0000 Subject: Change in osmo-mgw[master]: Fix attribute parsing on gcc 11.1.0 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25454 ) Change subject: Fix attribute parsing on gcc 11.1.0 ...................................................................... Patch Set 2: ping ping ping. This is breaking master build on my system. -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Gerrit-Change-Number: 25454 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-CC: Hoernchen Gerrit-Comment-Date: Fri, 17 Sep 2021 16:28: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 Sep 17 18:46:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 18:46:35 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25497 to look at the new patch set (#2). Change subject: base64: Migrate over to osmocom ...................................................................... base64: Migrate over to osmocom This containts the osmocom changes to the mbedtls base64 code merged in the previous commit. Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 --- M include/Makefile.am M include/osmocom/core/base64.h M src/Makefile.am M src/base64.c M tests/Makefile.am A tests/base64/base64_test.c A tests/base64/base64_test.ok M tests/testsuite.at 8 files changed, 85 insertions(+), 107 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/25497/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 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 Sep 17 18:58:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 18:58:48 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... Patch Set 2: Verified+1 Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 18:58:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 18:58:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 18:58:58 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 17 Sep 2021 18:58:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 18:59:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 18:59:01 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: laforge has removed a vote from this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 19:02:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 17 Sep 2021 19:02:14 +0000 Subject: Change in libosmocore[master]: base64: reformat using Lindent to conform to our coding style In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25498 to look at the new patch set (#3). Change subject: base64: reformat using Lindent to conform to our coding style ...................................................................... base64: reformat using Lindent to conform to our coding style Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 --- M include/osmocom/core/base64.h M src/base64.c M tests/base64/base64_test.c 3 files changed, 159 insertions(+), 165 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/25498/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 Gerrit-Change-Number: 25498 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 17 19:40:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Fri, 17 Sep 2021 19:40:42 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25505 ) Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... nm_*fsm: Make FSMs aware of object being properly configured or not This will allow in the future advertising children objects that the parent object has been configured. It is useful for instance to let TRX know that the BTS is configured. Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 --- M include/osmo-bts/nm_common_fsm.h M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 15 files changed, 244 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/25505/1 diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 13d7e0c..1f0accc 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -25,10 +25,13 @@ #include #include +#include /* Common */ enum nm_fsm_events { NM_EV_SW_ACT, + NM_EV_SETATTR_ACK, /* data: struct nm_fsm_ev_setattr_data */ + NM_EV_SETATTR_NACK, /* data: struct nm_fsm_ev_setattr_data */ NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, NM_EV_SHUTDOWN_START, @@ -46,6 +49,11 @@ }; extern const struct value_string nm_fsm_event_names[]; +struct nm_fsm_ev_setattr_data { + struct msgb *msg; /* msgb ownership is transferred to FSM */ + int cause; +}; + /* BTS SiteManager */ enum nm_bts_sm_op_fsm_states { diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h index 42284f9..90c9077 100644 --- a/include/osmo-bts/oml.h +++ b/include/osmo-bts/oml.h @@ -32,6 +32,7 @@ struct gsm_bts *bts; /* NM BTS Site Manager FSM */ struct osmo_fsm_inst *fi; + bool setattr_success; bool opstart_success; }; diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index c270f7d..36f3f98 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -59,6 +59,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; + bb_transc->mo.setattr_success = false; bb_transc->mo.opstart_success = false; oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -99,6 +100,7 @@ struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); int i; + bb_transc->mo.setattr_success = false; bb_transc->mo.opstart_success = false; oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); @@ -114,10 +116,17 @@ { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); + struct nm_fsm_ev_setattr_data *setattr_data; bool phy_state_connected; bool rsl_link_connected; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + bb_transc->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: bb_transc->mo.opstart_success = true; oml_mo_opstart_ack(&bb_transc->mo); @@ -150,6 +159,7 @@ rsl_link_connected = true; } + /* We so far don't expect any SetAttributes for this NM object */ if (rsl_link_connected && phy_state_connected && bb_transc->mo.opstart_success) { nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_ENABLED); @@ -232,6 +242,8 @@ }, [NM_BBTRANSC_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK) | X(NM_EV_RSL_UP) | diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 9210e7a..54737bf 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -57,6 +57,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + bts->mo.setattr_success = false; bts->mo.opstart_success = false; oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -78,6 +79,7 @@ static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + bts->mo.setattr_success = false; bts->mo.opstart_success = false; oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } @@ -85,8 +87,15 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + bts->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: bts->mo.opstart_success = true; oml_mo_opstart_ack(&bts->mo); @@ -146,6 +155,8 @@ }, [NM_BTS_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 267341e..2d43315 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -55,6 +55,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + site_mgr->mo.setattr_success = false; site_mgr->mo.opstart_success = false; oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -76,6 +77,7 @@ static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + site_mgr->mo.setattr_success = false; site_mgr->mo.opstart_success = false; oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } @@ -83,8 +85,15 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + site_mgr->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: site_mgr->mo.opstart_success = true; oml_mo_opstart_ack(&site_mgr->mo); @@ -144,6 +153,8 @@ }, [NM_BTS_SM_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index e6c296f..f933a16 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -55,6 +55,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + ts->mo.setattr_success = false; ts->mo.opstart_success = false; oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -86,8 +87,15 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + ts->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: LOGPFSML(fi, LOGL_NOTICE, "BSC trying to activate TS while still in avail=dependency. " "Allowing it to stay backward-compatible with older osmo-bts versions, but BSC is wrong.\n"); @@ -123,8 +131,15 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + ts->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: ts->mo.opstart_success = true; oml_mo_opstart_ack(&ts->mo); @@ -199,6 +214,8 @@ }, [NM_CHAN_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | /* backward compatibility, buggy BSC */ X(NM_EV_OPSTART_NACK) | X(NM_EV_BBTRANSC_ENABLED) | @@ -215,6 +232,8 @@ }, [NM_CHAN_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK) | X(NM_EV_BBTRANSC_DISABLED) | diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c index 2182fef..be11bef 100644 --- a/src/common/nm_common_fsm.c +++ b/src/common/nm_common_fsm.c @@ -25,6 +25,8 @@ const struct value_string nm_fsm_event_names[] = { { NM_EV_SW_ACT, "SW_ACT" }, + { NM_EV_SETATTR_ACK, "SETATTR_ACK" }, + { NM_EV_SETATTR_NACK, "SETATTR_NACK" }, { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" }, diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 2772f19..e36487f 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -48,6 +48,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; + trx->mo.setattr_success = false; trx->mo.opstart_success = false; oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -81,6 +82,7 @@ struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; unsigned int i; + trx->mo.setattr_success = false; trx->mo.opstart_success = false; oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); @@ -95,10 +97,17 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; bool phy_state_connected; bool rsl_link_connected; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + trx->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: trx->mo.opstart_success = true; oml_mo_opstart_ack(&trx->mo); @@ -131,12 +140,13 @@ } if (rsl_link_connected && phy_state_connected && - trx->mo.opstart_success) { + trx->mo.setattr_success && trx->mo.opstart_success) { nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED); } else { - LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s\n", + LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s%s\n", rsl_link_connected ? "": " rsl", phy_state_connected ? "": " phy", + trx->mo.setattr_success ? "": " setattr", trx->mo.opstart_success ? "": " opstart"); } @@ -206,6 +216,8 @@ }, [NM_RCARRIER_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK) | X(NM_EV_RSL_UP) | diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 9d0d99a..315047c 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -1834,7 +1834,24 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: struct gsm_bts_trx *trx = obj; struct lc15l1_hdl *fl1h = trx_lc15l1_hdl(trx); /* convert max TA to max cell size in qbits */ @@ -1870,9 +1887,14 @@ } #endif } + break; } - /* FIXME: we actually need to send a ACK or NACK for the OML message */ - return oml_fom_ack_nack(msg, 0); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index b50e151..1d31b52 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -1843,7 +1843,24 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: struct gsm_bts_trx *trx = obj; struct oc2gl1_hdl *fl1h = trx_oc2gl1_hdl(trx); /* convert max TA to max cell size in qbits */ @@ -1876,11 +1893,14 @@ l1if_set_txpower_c0_idle_pwr_red(fl1h, fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red); } } - + break; } - /* FIXME: we actually need to send a ACK or NACK for the OML message */ - return oml_fom_ack_nack(msg, 0); + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 1830599..3d4757f 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1748,13 +1748,35 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: 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, NULL); + break; } - return oml_fom_ack_nack(msg, 0); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index 5bfcfca..f5d59a3 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -97,20 +97,38 @@ struct tlv_parsed *new_attr, int kind, void *obj) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - int cause = 0; + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: - cause = vbts_set_bts(obj); + ev_data.cause = vbts_set_bts(obj); break; case NM_MT_SET_RADIO_ATTR: - cause = vbts_set_trx(obj); + ev_data.cause = vbts_set_trx(obj); break; case NM_MT_SET_CHAN_ATTR: - cause = vbts_set_ts(obj); + ev_data.cause = vbts_set_ts(obj); break; } - return oml_fom_ack_nack(msg, cause); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* MO: TS 12.21 Managed Object */ diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 194afcd..88cd91b 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -1748,17 +1748,38 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: struct gsm_bts_trx *trx = obj; struct femtol1_hdl *fl1h = trx_femtol1_hdl(trx); /* 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, NULL); + break; } - /* FIXME: we actually need to send a ACK or NACK for the OML message */ - return oml_fom_ack_nack(msg, 0); + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 6b417f4..90adde2 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -555,21 +555,38 @@ struct tlv_parsed *new_attr, int kind, void *obj) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - int cause = 0; + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: - cause = trx_set_bts(obj, new_attr); + ev_data.cause = trx_set_bts(obj, new_attr); break; case NM_MT_SET_RADIO_ATTR: - cause = trx_set_trx(obj); + ev_data.cause = trx_set_trx(obj); break; case NM_MT_SET_CHAN_ATTR: - cause = trx_set_ts(obj); + ev_data.cause = trx_set_ts(obj); break; } - return oml_fom_ack_nack(msg, cause); + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 48e9400..8704056 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -110,20 +110,38 @@ struct tlv_parsed *new_attr, int kind, void *obj) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - int cause = 0; + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: - cause = vbts_set_bts(obj); + ev_data.cause = vbts_set_bts(obj); break; case NM_MT_SET_RADIO_ATTR: - cause = vbts_set_trx(obj); + ev_data.cause = vbts_set_trx(obj); break; case NM_MT_SET_CHAN_ATTR: - cause = vbts_set_ts(obj); + ev_data.cause = vbts_set_ts(obj); break; } - return oml_fom_ack_nack(msg, cause); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* MO: TS 12.21 Managed Object */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 18 15:08:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 18 Sep 2021 15:08:55 +0000 Subject: Change in osmo-bts[master]: tests: MS Power Control Loop: Show oscillation among good power levels In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25502 ) Change subject: tests: MS Power Control Loop: Show oscillation among good power levels ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c Gerrit-Change-Number: 25502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sat, 18 Sep 2021 15: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 Sat Sep 18 17:34:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 18 Sep 2021 17:34:51 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 1: Code-Review-1 (4 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.err File tests/power/ms_power_loop_test.err: https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.err at 61 PS1, Line 61: Ignoring MS power control level 10 (10 dBm) => 9 (12 dBm): I find this logging message confusing: how can you ignore "MS power control level"? If we do not change the power level, then let's not print anything at all? https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.err at 62 PS1, Line 62: Keeping MS power at control level 10 ... or print this message instead? https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok File tests/power/ms_power_loop_test.ok: https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok at 169 PS1, Line 169: 0 (expected 1) 0 vs 1 https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok at 178 PS1, Line 178: 9 -> 10 Do we really expect any changes of the power level? AFAIU from the commit message, it's expected to remain constant, but here I can see it changes... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sat, 18 Sep 2021 17:34: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 Sep 19 07:24:33 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 07:24:33 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 07:24:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 07:24:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 07:24:51 +0000 Subject: Change in libosmocore[master]: copy base64 implementation from mbedtls In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25496 ) Change subject: copy base64 implementation from mbedtls ...................................................................... Patch Set 1: Code-Review+1 > Patch Set 1: Code-Review+1 > > It would be great to know why do we need this in libosmocore to start with :D ACK. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 Gerrit-Change-Number: 25496 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 07:24:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 08:33:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 08:33:14 +0000 Subject: Change in libosmocore[master]: base64: reformat using Lindent to conform to our coding style In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25498 ) Change subject: base64: reformat using Lindent to conform to our coding style ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 Gerrit-Change-Number: 25498 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 08:33:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 11:30:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 19 Sep 2021 11:30:56 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:total References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25506 ) Change subject: stat: add bts.N.num_trx:total ...................................................................... stat: add bts.N.num_trx:total This is similar to bsc.0.num_trx:total but per single BTS. Related: SYS#5542 Related: I5be1cb470930354c4561cbed301bc50a32484ed9 (osmo-ttcn3-hacks) Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts.c 3 files changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/06/25506/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 5ff798b..f09d068 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -175,6 +175,7 @@ BTS_STAT_RSL_CONNECTED, BTS_STAT_LCHAN_BORKEN, BTS_STAT_TS_BORKEN, + BTS_STAT_NUM_TRX_TOTAL, }; extern const struct osmo_stat_item_desc bts_stat_desc[]; diff --git a/src/osmo-bsc/bsc_stats.c b/src/osmo-bsc/bsc_stats.c index f33e6c8..3b96fed 100644 --- a/src/osmo-bsc/bsc_stats.c +++ b/src/osmo-bsc/bsc_stats.c @@ -162,6 +162,9 @@ trx_rsl_connected++; } + osmo_stat_item_set(osmo_stat_item_group_get_item(bts->bts_statg, BTS_STAT_NUM_TRX_TOTAL), + num_trx); + num_trx_total += num_trx; trx_rsl_connected_total += trx_rsl_connected; diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index c0d6634..86fa823 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -1313,6 +1313,10 @@ { "ts_borken", "Number of timeslots in the BORKEN state", "", 16, 0 }, + [BTS_STAT_NUM_TRX_TOTAL] = + { "num_trx:total", + "Number of configured TRX in this BTS", + "" }, }; const struct osmo_stat_item_group_desc bts_statg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 Gerrit-Change-Number: 25506 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 Sep 19 11:30:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sun, 19 Sep 2021 11:30:56 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:rsl_connected References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25507 ) Change subject: stat: add bts.N.num_trx:rsl_connected ...................................................................... stat: add bts.N.num_trx:rsl_connected Controversy: this duplicates bts.N.rsl_connected. I would like to add this duplication for consistency, since we now have these counters: bsc.0.num_trx:rsl_connected bsc.0.num_trx:total bts.N.num_trx:total and the old bts.N.rsl_connected which does not fit well with above naming scheme. Any user will be justified to expect a stat named bts.N.num_trx:rsl_connected as well. Determine bts.N.num_trx:rsl_connected in the new function bsc_update_connection_stats(), where the other num_trx:* are set. Related: SYS#5542 Related: I5be1cb470930354c4561cbed301bc50a32484ed9 (osmo-ttcn3-hacks) Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts.c 3 files changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/25507/1 diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index f09d068..68654f2 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -175,6 +175,7 @@ BTS_STAT_RSL_CONNECTED, BTS_STAT_LCHAN_BORKEN, BTS_STAT_TS_BORKEN, + BTS_STAT_NUM_TRX_RSL_CONNECTED, BTS_STAT_NUM_TRX_TOTAL, }; diff --git a/src/osmo-bsc/bsc_stats.c b/src/osmo-bsc/bsc_stats.c index 3b96fed..7176809 100644 --- a/src/osmo-bsc/bsc_stats.c +++ b/src/osmo-bsc/bsc_stats.c @@ -162,6 +162,8 @@ trx_rsl_connected++; } + osmo_stat_item_set(osmo_stat_item_group_get_item(bts->bts_statg, BTS_STAT_NUM_TRX_RSL_CONNECTED), + trx_rsl_connected); osmo_stat_item_set(osmo_stat_item_group_get_item(bts->bts_statg, BTS_STAT_NUM_TRX_TOTAL), num_trx); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 86fa823..1b80ef6 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -1303,7 +1303,7 @@ "", 16, 0 }, [BTS_STAT_RSL_CONNECTED] = \ { "rsl_connected", - "Number of RSL links connected", + "Number of RSL links connected (same as num_trx:rsl_connected)", "", 16, 0 }, [BTS_STAT_LCHAN_BORKEN] = \ { "lchan_borken", @@ -1313,6 +1313,10 @@ { "ts_borken", "Number of timeslots in the BORKEN state", "", 16, 0 }, + [BTS_STAT_NUM_TRX_RSL_CONNECTED] = + { "num_trx:rsl_connected", + "Number of TRX in this BTS where RSL is up", + "" }, [BTS_STAT_NUM_TRX_TOTAL] = { "num_trx:total", "Number of configured TRX in this BTS", -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 Gerrit-Change-Number: 25507 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 Sep 19 12:57:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 12:57:02 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 12:57:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:17:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:17:25 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... Patch Set 3: (3 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25457/3/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/25457/3/src/common/abis.c at a72 PS3, Line 72: OSMO_VALUE_STRING Unrelated change, should be done separately. https://gerrit.osmocom.org/c/osmo-bts/+/25457/3/src/common/abis.c at 105 PS3, Line 105: drain_oml_queue You could just add a forward declaration instead of moving this function around. https://gerrit.osmocom.org/c/osmo-bts/+/25457/3/src/common/abis.c at 490 PS3, Line 490: abis_link_fsm_init Moving osmo_fsm_register() here also looks like an independent change to me. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:17: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 Sep 19 16:29:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:29:37 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sun, 19 Sep 2021 16: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 Sun Sep 19 16:32:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:32:36 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25459/4/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/25459/4/src/common/abis.c at 64 PS4, Line 64: OML_RETRY_TIMER Shall we make this timer configurable via the VTY? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sun, 19 Sep 2021 16:32:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:35:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:35:58 +0000 Subject: Change in osmo-bts[master]: Allow setting administrative state through oml_mo_state_chg() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25473 ) Change subject: Allow setting administrative state through oml_mo_state_chg() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c Gerrit-Change-Number: 25473 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:35:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:39:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:39:36 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown proc... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25490 ) Change subject: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts ...................................................................... Patch Set 4: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25490/4/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/25490/4/src/common/bts_shutdown_fsm.c at 32 PS4, Line 32: #include Cosmetic: move it closer to above. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 Gerrit-Change-Number: 25490 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:39:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:41:56 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:41:56 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown pr... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25491 ) Change subject: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b Gerrit-Change-Number: 25491 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:41:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:45:17 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:45:17 +0000 Subject: Change in osmo-bts[master]: abis: Drop internal OML msg queue In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25493 ) Change subject: abis: Drop internal OML msg queue ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 Gerrit-Change-Number: 25493 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:45:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:45:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:45:58 +0000 Subject: Change in osmo-bts[master]: abis: Drop internal OML msg queue In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25493 ) Change subject: abis: Drop internal OML msg queue ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 Gerrit-Change-Number: 25493 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:45:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:51:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:51:22 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25505 ) Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:51:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 16:55:55 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 16:55:55 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:total In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25506 ) Change subject: stat: add bts.N.num_trx:total ...................................................................... Patch Set 1: FYI, I found this in the 'Console Output': ASAN:DEADLYSIGNAL ================================================================= ==15207==ERROR: AddressSanitizer: SEGV on unknown address 0x626000020004 (pc 0x7fa60cabd3a6 bp 0x7ffd6374fd70 sp 0x7ffd6374fd10 T0) #0 0x7fa60cabd3a5 in osmo_stat_item_group_alloc (/build/deps/install/lib/libosmocore.so.17+0x273a5) #1 0x558c2a537df8 in bsc_network_init (/build/src/osmo-bsc/osmo-bsc+0x4d3df8) #2 0x558c2a538618 in bsc_network_alloc (/build/src/osmo-bsc/osmo-bsc+0x4d4618) #3 0x558c2a4a5b41 in main (/build/src/osmo-bsc/osmo-bsc+0x441b41) #4 0x7fa60af3b2e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0) #5 0x558c2a49f959 in _start (/build/src/osmo-bsc/osmo-bsc+0x43b959) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV (/build/deps/install/lib/libosmocore.so.17+0x273a5) in osmo_stat_item_group_alloc ==15207==ABORTING Makefile:487: recipe for target 'vty/bsc_vty_reference.xml' failed make[3]: *** [vty/bsc_vty_reference.xml] Error 1 make[3]: *** Waiting for unfinished jobs.... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 Gerrit-Change-Number: 25506 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 16:55:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 17:07:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 17:07:57 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25461 ) Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 17:07:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 17:09:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 17:09:11 +0000 Subject: Change in libosmocore[master]: stats_test: assert counter and stat item val counts separately In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25462 ) Change subject: stats_test: assert counter and stat item val counts separately ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb Gerrit-Change-Number: 25462 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 17:09: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 Sep 19 17:32:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 17:32:26 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/2/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/2/include/osmocom/core/stat_item.h at 17 PS2, Line 17: DEPRECATED You can also use OSMO_DEPRECATED() with structures. GCC ignores such attributes, but Clang would actually warn if you use this structure somewhere in the code. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 17:32: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 Sun Sep 19 17:37:19 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 17:37:19 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/25483/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/pysim/+/25483/1//COMMIT_MSG at 10 PS1, Line 10: a feq "a feW"? or rather "several"? -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 17:37: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 Sun Sep 19 17:45:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 17:45:35 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... Patch Set 2: (4 comments) https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 66 PS2, Line 66: print("No card detected!") A more Python'ish way would be to raise exceptions from this function, so you always get nice backtrace output and line numbers together with the error message. https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 71 PS2, Line 71: print("Could not detect card type!") Same here, rather throw an exception. https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 535 PS2, Line 535: == is https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 535 PS2, Line 535: == is -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 19 Sep 2021 17:45:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 19 17:47:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 19 Sep 2021 17:47:15 +0000 Subject: Change in pysim[master]: pySim-prog: rename variable card_handler In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25501 ) Change subject: pySim-prog: rename variable card_handler ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I84dafc49862e373ae9f6a56bd2e8d1a02c27430a Gerrit-Change-Number: 25501 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sun, 19 Sep 2021 17:47:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 07:55:36 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 07:55:36 +0000 Subject: Change in pysim[master]: pySim-prog: rename variable card_handler In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/25501 ) Change subject: pySim-prog: rename variable card_handler ...................................................................... pySim-prog: rename variable card_handler The variable card_handler is assigned in the following way: card_handler = card_handler(sl) This may cause problems since the class name and the variable name are the same. Lets rename card_handler to avoid problems here. Change-Id: I84dafc49862e373ae9f6a56bd2e8d1a02c27430a --- M pySim-prog.py 1 file changed, 9 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 4c85be7..922ca86 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -649,11 +649,11 @@ fh.close() -def process_card(opts, first, card_handler): +def process_card(opts, first, ch): if opts.dry_run is False: # Connect transport - card_handler.get(first) + ch.get(first) if opts.dry_run is False: # Get card @@ -681,13 +681,13 @@ if opts.read_iccid: if opts.dry_run: # Connect transport - card_handler.get(False) + ch.get(False) (res,_) = scc.read_binary(['3f00', '2fe2'], length=10) iccid = dec_iccid(res) elif opts.read_imsi: if opts.dry_run: # Connect transport - card_handler.get(False) + ch.get(False) (res,_) = scc.read_binary(EF['IMSI']) imsi = swap_nibbles(res)[3:] else: @@ -713,7 +713,7 @@ opts.num += 1 save_batch(opts) - card_handler.done() + ch.done() return 0 @@ -741,9 +741,9 @@ init_batch(opts) if opts.card_handler: - card_handler = card_handler_auto(sl, opts.card_handler) + ch = card_handler_auto(sl, opts.card_handler) else: - card_handler = card_handler(sl) + ch = card_handler(sl) # Iterate first = True @@ -751,7 +751,7 @@ while 1: try: - rc = process_card(opts, first, card_handler) + rc = process_card(opts, first, ch) except (KeyboardInterrupt): print("") print("Terminated by user!") @@ -770,7 +770,7 @@ # Something did not work as well as expected, however, lets # make sure the card is pulled from the reader. if rc != 0: - card_handler.error() + ch.error() # If we are not in batch mode we are done in any case, so lets # exit here. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I84dafc49862e373ae9f6a56bd2e8d1a02c27430a Gerrit-Change-Number: 25501 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:02:17 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 08:02:17 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, fixeria, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25499 to look at the new patch set (#6). Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... pySim-prog: rename card_handler to CardHandler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim-shell.py M pySim/card_handler.py 3 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/99/25499/6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:09:25 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 08:09:25 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... Patch Set 6: Code-Review+2 re-adding +2 after trivial change to fix merge conflict -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 08:09:25 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:09:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 08:09:30 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler to CardHandler In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/25499 ) Change subject: pySim-prog: rename card_handler to CardHandler ...................................................................... pySim-prog: rename card_handler to CardHandler In OOP, we usually use capital letters for class names. The card handler class should be no execption. Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 --- M pySim-prog.py M pySim-shell.py M pySim/card_handler.py 3 files changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 922ca86..3b69bb3 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -741,9 +741,9 @@ init_batch(opts) if opts.card_handler: - ch = card_handler_auto(sl, opts.card_handler) + ch = CardHandlerAuto(sl, opts.card_handler) else: - ch = card_handler(sl) + ch = CardHandler(sl) # Iterate first = True diff --git a/pySim-shell.py b/pySim-shell.py index 7977ff5..5644466 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -40,7 +40,7 @@ from pySim.cards import card_detect, SimCard from pySim.utils import h2b, swap_nibbles, rpad, b2h, h2s, JsonEncoder, bertlv_parse_one from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str -from pySim.card_handler import card_handler +from pySim.card_handler import CardHandler from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF from pySim.ts_51_011 import CardProfileSIM, DF_TELECOM, DF_GSM @@ -484,7 +484,7 @@ sl.wait_for_card(); - card_handler = card_handler(sl) + card_handler = CardHandler(sl) card = card_detect("auto", scc) if card is None: diff --git a/pySim/card_handler.py b/pySim/card_handler.py index 9beab51..ef1b071 100644 --- a/pySim/card_handler.py +++ b/pySim/card_handler.py @@ -27,7 +27,7 @@ import yaml # Manual card handler: User is prompted to insert/remove card from the reader. -class card_handler: +class CardHandler: sl = None @@ -47,7 +47,7 @@ print("") # Automatic card handler: A machine is used to handle the cards. -class card_handler_auto: +class CardHandlerAuto: sl = None cmds = None -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4b2c06b1c607c993c9aaf0d57ad2352bb6b36e74 Gerrit-Change-Number: 25499 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:17:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 08:17:53 +0000 Subject: Change in osmo-pcu[master]: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25400 ) Change subject: Add stats: pcu.bts.N.pdch.occupied.gprs/egprs ...................................................................... Add stats: pcu.bts.N.pdch.occupied.gprs/egprs Add stats needed for performance measurements in 3GPP TS 52.402 ? B.2.1.54-55. Split m_num_tbfs to count GPRS and EGPRS TBFs separately. Move the code that updates m_num_tbfs and sets the PDCH_OCCUPIED stats to a separate function, as it's mostly the same in the TBF attach and detach. Related: SYS#4878 Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 --- M src/bts.cpp M src/bts.h M src/pdch.cpp M src/pdch.h M src/tbf.cpp M src/tbf.h 6 files changed, 65 insertions(+), 26 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index beb626d..c463606 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -201,7 +201,11 @@ OSMO_STAT_ITEM_NO_UNIT, 4, 0}, { "pdch.available", "PDCH available ", OSMO_STAT_ITEM_NO_UNIT, 50, 0}, - { "pdch.occupied", "PDCH occupied ", + { "pdch.occupied", "PDCH occupied (all) ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, + { "pdch.occupied.gprs", "PDCH occupied (GPRS) ", + OSMO_STAT_ITEM_NO_UNIT, 50, 0}, + { "pdch.occupied.egprs","PDCH occupied (EGPRS)", OSMO_STAT_ITEM_NO_UNIT, 50, 0}, }; diff --git a/src/bts.h b/src/bts.h index a6e7150..d9a86eb 100644 --- a/src/bts.h +++ b/src/bts.h @@ -184,6 +184,8 @@ STAT_MS_PRESENT, STAT_PDCH_AVAILABLE, STAT_PDCH_OCCUPIED, + STAT_PDCH_OCCUPIED_GPRS, + STAT_PDCH_OCCUPIED_EGPRS, }; /* RACH.ind parameters (to be parsed) */ diff --git a/src/pdch.cpp b/src/pdch.cpp index e213c28..d10ee4a 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1036,6 +1036,33 @@ return tbf; } +void gprs_rlcmac_pdch::num_tbfs_update(gprs_rlcmac_tbf *tbf, bool is_attach) +{ + int threshold = is_attach ? 0 : 1; + int inc = is_attach ? 1 : -1; + uint8_t ul_dl_gprs = m_num_tbfs_gprs[GPRS_RLCMAC_UL_TBF] + + m_num_tbfs_gprs[GPRS_RLCMAC_DL_TBF]; + uint8_t ul_dl_egprs = m_num_tbfs_egprs[GPRS_RLCMAC_UL_TBF] + + m_num_tbfs_egprs[GPRS_RLCMAC_DL_TBF]; + + /* Count PDCHs with at least one TBF as "occupied", as in + * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 0 (threshold) + * TBFs in this PDCH to 1, increase the counter by 1 (inc). */ + if (ul_dl_gprs + ul_dl_egprs == threshold) + bts_stat_item_add(trx->bts, STAT_PDCH_OCCUPIED, inc); + + /* Update occupied GPRS/EGPRS stats (? B.2.1.54-55) too */ + if (tbf->is_egprs_enabled() && ul_dl_egprs == threshold) + bts_stat_item_add(trx->bts, STAT_PDCH_OCCUPIED_EGPRS, inc); + else if (!tbf->is_egprs_enabled() && ul_dl_gprs == threshold) + bts_stat_item_add(trx->bts, STAT_PDCH_OCCUPIED_GPRS, inc); + + if (tbf->is_egprs_enabled()) + m_num_tbfs_egprs[tbf->direction] += inc; + else + m_num_tbfs_gprs[tbf->direction] += inc; +} + void gprs_rlcmac_pdch::attach_tbf(gprs_rlcmac_tbf *tbf) { gprs_rlcmac_ul_tbf *ul_tbf; @@ -1045,13 +1072,7 @@ "%s has not been detached, overwriting it\n", m_tbfs[tbf->direction][tbf->tfi()]->name()); - /* Count PDCHs with at least one TBF as "occupied", as in - * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 0 TBFs in - * this PDCH to 1, increase the counter by 1. */ - if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 0) - bts_stat_item_inc(trx->bts, STAT_PDCH_OCCUPIED); - - m_num_tbfs[tbf->direction] += 1; + num_tbfs_update(tbf, true); if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); m_assigned_usf |= 1 << ul_tbf->m_usf[ts_no]; @@ -1061,7 +1082,7 @@ LOGPDCH(this, DRLCMAC, LOGL_INFO, "Attaching %s, %d TBFs, " "USFs = %02x, TFIs = %08x.\n", - tbf->name(), m_num_tbfs[tbf->direction], + tbf->name(), num_tbfs(tbf->direction), m_assigned_usf, m_assigned_tfi[tbf->direction]); } @@ -1069,15 +1090,13 @@ { gprs_rlcmac_ul_tbf *ul_tbf; - OSMO_ASSERT(m_num_tbfs[tbf->direction] > 0); + if (tbf->is_egprs_enabled()) { + OSMO_ASSERT(m_num_tbfs_egprs[tbf->direction] > 0); + } else { + OSMO_ASSERT(m_num_tbfs_gprs[tbf->direction] > 0); + } - /* Count PDCHs with at least one TBF as "occupied", as in - * 3GPP TS 52.402 ? B.2.1.42-44. So if transitioning from 1 TBFs in - * this PDCH to 0, decrease the counter by 1. */ - if (m_num_tbfs[GPRS_RLCMAC_UL_TBF] + m_num_tbfs[GPRS_RLCMAC_DL_TBF] == 1) - bts_stat_item_dec(trx->bts, STAT_PDCH_OCCUPIED); - - m_num_tbfs[tbf->direction] -= 1; + num_tbfs_update(tbf, false); if (tbf->direction == GPRS_RLCMAC_UL_TBF) { ul_tbf = as_ul_tbf(tbf); m_assigned_usf &= ~(1 << ul_tbf->m_usf[ts_no]); @@ -1089,7 +1108,7 @@ LOGPDCH(this, DRLCMAC, LOGL_INFO, "Detaching %s, %d TBFs, " "USFs = %02x, TFIs = %08x.\n", - tbf->name(), m_num_tbfs[tbf->direction], + tbf->name(), num_tbfs(tbf->direction), m_assigned_usf, m_assigned_tfi[tbf->direction]); } diff --git a/src/pdch.h b/src/pdch.h index 00f0b9d..9405606 100644 --- a/src/pdch.h +++ b/src/pdch.h @@ -78,6 +78,7 @@ void detach_tbf(gprs_rlcmac_tbf *tbf); unsigned num_tbfs(enum gprs_rlcmac_tbf_direction dir) const; + void num_tbfs_update(gprs_rlcmac_tbf *tbf, bool is_attach); void reserve(enum gprs_rlcmac_tbf_direction dir); void unreserve(enum gprs_rlcmac_tbf_direction dir); @@ -147,7 +148,8 @@ void free_resources(); #endif - uint8_t m_num_tbfs[2]; + uint8_t m_num_tbfs_gprs[2]; + uint8_t m_num_tbfs_egprs[2]; uint8_t m_num_reserved[2]; uint8_t m_assigned_usf; /* bit set */ uint32_t m_assigned_tfi[2]; /* bit set */ @@ -158,7 +160,7 @@ inline unsigned gprs_rlcmac_pdch::num_tbfs(enum gprs_rlcmac_tbf_direction dir) const { - return m_num_tbfs[dir]; + return m_num_tbfs_gprs[dir] + m_num_tbfs_egprs[dir]; } inline unsigned gprs_rlcmac_pdch::num_reserved( diff --git a/src/tbf.cpp b/src/tbf.cpp index 4154d50..31dec72 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -763,6 +763,24 @@ return ts == control_ts; } +void gprs_rlcmac_tbf::enable_egprs() +{ + /* Decrease GPRS TBF count of attached PDCHs */ + for (size_t ts = 0; ts < ARRAY_SIZE(pdch); ts++) { + if (pdch[ts]) + pdch[ts]->num_tbfs_update(this, false); + } + + m_egprs_enabled = true; + window()->set_sns(RLC_EGPRS_SNS); + + /* Increase EGPRS TBF count of attached PDCHs */ + for (size_t ts = 0; ts < ARRAY_SIZE(pdch); ts++) { + if (pdch[ts]) + pdch[ts]->num_tbfs_update(this, true); + } +} + /* C API */ enum tbf_fsm_states tbf_state(const struct gprs_rlcmac_tbf *tbf) { diff --git a/src/tbf.h b/src/tbf.h index 0932933..3aaf9fb 100644 --- a/src/tbf.h +++ b/src/tbf.h @@ -354,12 +354,6 @@ return m_egprs_enabled; } -inline void gprs_rlcmac_tbf::enable_egprs() -{ - m_egprs_enabled = true; - window()->set_sns(RLC_EGPRS_SNS); -} - inline enum gprs_rlcmac_tbf_direction reverse(enum gprs_rlcmac_tbf_direction dir) { return (enum gprs_rlcmac_tbf_direction) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25400 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 Gerrit-Change-Number: 25400 Gerrit-PatchSet: 9 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:29:19 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 08:29:19 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section 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/+/25484 to look at the new patch set (#3). Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd --- M pySim-shell.py 1 file changed, 53 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:29:20 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 08:29:20 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... pySim-prog: rename card_handler option to card_handler_config The option and also the dest variable in the code are currently named card_handler. This might be confusing since the variable actually refers to a config file and therefore should be called "card_handler_config" Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd --- M pySim-prog.py 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/25508/1 diff --git a/pySim-prog.py b/pySim-prog.py index 3b69bb3..a8be2fb 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -200,7 +200,7 @@ parser.add_option("--dry-run", dest="dry_run", help="Perform a 'dry run', don't actually program the card", default=False, action="store_true") - parser.add_option("--card_handler", dest="card_handler", metavar="FILE", + parser.add_option("--card_handler_config", dest="card_handler_config", metavar="FILE", help="Use automatic card handling machine") (options, args) = parser.parse_args() @@ -740,8 +740,8 @@ # Batch mode init init_batch(opts) - if opts.card_handler: - ch = CardHandlerAuto(sl, opts.card_handler) + if opts.card_handler_config: + ch = CardHandlerAuto(sl, opts.card_handler_config) else: ch = CardHandler(sl) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 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 Sep 20 08:36:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 08:36:14 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25508/1/pySim-prog.py File pySim-prog.py: https://gerrit.osmocom.org/c/pysim/+/25508/1/pySim-prog.py at 203 PS1, Line 203: parser.add_option("--card_handler_config", dest="card_handler_config", metavar="FILE", I would keep "--card_handler" as argument name, just change the dest. Then people don't need to get used to the new name. IMHO the slightly confusing part was later with ch = CardHandlerAuto(sl, opts.card_handler) vs the more readable ch = CardHandlerAuto(sl, opts.card_handler_config) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 20 Sep 2021 08:36:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:37:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 08:37:27 +0000 Subject: Change in osmo-pcu[master]: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25504 ) Change subject: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 Gerrit-Change-Number: 25504 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 20 Sep 2021 08:37:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:43:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 08:43:51 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok File tests/power/ms_power_loop_test.ok: https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok at 178 PS1, Line 178: 9 -> 10 > Do we really expect any changes of the power level? AFAIU from the commit message, it's expected to [?] It's not changing. the value on the left is MS_PWR announced by MS. The one on the right is the requested MS_PWR from the network after running the loop. Hence, it can be seen that the target MS_PWR remains unchanged despite the MS announcing a different one, hence breaking the bouncing loop. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 08:43:51 +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 noreply at opensuse.org Mon Sep 20 08:45:00 2021 From: noreply at opensuse.org (OBS Notification) Date: Mon, 20 Sep 2021 08:45:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-smlc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <61484a2754e1_3bc02ab852870610762988@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-smlc/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-smlc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-smlc Last lines of build log: [ 108s] Processing triggers for fontconfig (2.12.6-0ubuntu2) ... [ 108s] Processing triggers for tex-common (6.09) ... [ 108s] Running mktexlsr. This may take some time... done. [ 108s] Running updmap-sys. This may take some time... done. [ 108s] Running mktexlsr /var/lib/texmf ... done. [ 108s] [412/446] installing libosmocore-dev-1.5.1.230.b48f.202109200028 [ 108s] [413/446] installing python3-docutils-0.14+dfsg-3 [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst-buildhtml to provide /usr/bin/rst-buildhtml (rst-buildhtml) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2html to provide /usr/bin/rst2html (rst2html) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2html4 to provide /usr/bin/rst2html4 (rst2html4) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2html5 to provide /usr/bin/rst2html5 (rst2html5) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2latex to provide /usr/bin/rst2latex (rst2latex) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2man to provide /usr/bin/rst2man (rst2man) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2odt to provide /usr/bin/rst2odt (rst2odt) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2odt_prepstyles to provide /usr/bin/rst2odt_prepstyles (rst2odt_prepstyles) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2pseudoxml to provide /usr/bin/rst2pseudoxml (rst2pseudoxml) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2s5 to provide /usr/bin/rst2s5 (rst2s5) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2xetex to provide /usr/bin/rst2xetex (rst2xetex) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rst2xml to provide /usr/bin/rst2xml (rst2xml) in auto mode [ 108s] update-alternatives: using /usr/share/docutils/scripts/python3/rstpep2html to provide /usr/bin/rstpep2html (rstpep2html) in auto mode [ 109s] [414/446] installing python3-reportlab-3.4.0-3build1 [ 110s] [415/446] installing texlive-plain-generic-2017.20180305-2 [28914s] qemu-kvm: terminating on signal 15 from pid 48099 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28914s] ### VM INTERACTION END ### [28914s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28914s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From noreply at opensuse.org Mon Sep 20 08:45:00 2021 From: noreply at opensuse.org (OBS Notification) Date: Mon, 20 Sep 2021 08:45:00 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_11/x86_64 In-Reply-To: References: Message-ID: <61484a275f1c1_3bc02ab85287061076316c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sip-connector/Debian_11/x86_64 Package network:osmocom:nightly/osmo-sip-connector failed to build in Debian_11/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sip-connector Last lines of build log: [ 161s] [450/500] installing texlive-pictures-2020.20210202-3 [ 162s] Processing triggers for man-db (2.9.4-2) ... [ 162s] Processing triggers for tex-common (6.16) ... [ 162s] Running mktexlsr. This may take some time... done. [ 163s] Running updmap-sys. This may take some time... done. [ 163s] Running mktexlsr /var/lib/texmf ... done. [ 163s] [451/500] installing dh-autoreconf-20 [ 163s] Processing triggers for man-db (2.9.4-2) ... [ 163s] [452/500] installing python3-apt-2.2.1 [ 163s] [453/500] installing texlive-extra-utils-2020.20210202-3 [ 168s] Processing triggers for tex-common (6.16) ... [ 168s] Running mktexlsr. This may take some time... done. [ 168s] Building format(s) --all. [ 177s] This may take some time... done. [ 177s] Processing triggers for man-db (2.9.4-2) ... [ 178s] [454/500] installing texlive-science-2020.20210202-3 [ 178s] Processing triggers for man-db (2.9.4-2) ... [ 178s] Processing triggers for tex-common (6.16) ... [ 178s] Running mktexlsr. This may take some time... done. [ 179s] Running updmap-sys. This may take some time... done. [ 179s] Running mktexlsr /var/lib/texmf ... done. [ 179s] Building format(s) --all. [28985s] qemu-kvm: terminating on signal 15 from pid 48118 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28985s] ### VM INTERACTION END ### [28985s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28985s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From noreply at opensuse.org Mon Sep 20 08:45:17 2021 From: noreply at opensuse.org (OBS Notification) Date: Mon, 20 Sep 2021 08:45:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-remsim in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <61484a27d4d30_3bc02ab8528706107632d8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-remsim/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-remsim failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-remsim Last lines of build log: libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o xer_support.lo xer_support.c [ 236s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c xer_support.c -fPIC -DPIC -o .libs/xer_support.o [ 236s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c xer_support.c -o xer_support.o >/dev/null 2>&1 [ 237s] /bin/bash ../../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o xer_decoder.lo xer_decoder.c [ 237s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c xer_decoder.c -fPIC -DPIC -o .libs/xer_decoder.o [ 237s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c xer_decoder.c -o xer_decoder.o >/dev/null 2>&1 [ 237s] /bin/bash ../../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o xer_encoder.lo xer_encoder.c [ 238s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c xer_encoder.c -fPIC -DPIC -o .libs/xer_encoder.o [ 238s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c xer_encoder.c -o xer_encoder.o >/dev/null 2>&1 [ 238s] /bin/bash ../../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o per_support.lo per_support.c [ 238s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c per_support.c -fPIC -DPIC -o .libs/per_support.o [ 238s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c per_support.c -o per_support.o >/dev/null 2>&1 [ 239s] /bin/bash ../../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o per_decoder.lo per_decoder.c [ 239s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c per_decoder.c -fPIC -DPIC -o .libs/per_decoder.o [ 239s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c per_decoder.c -o per_decoder.o >/dev/null 2>&1 [ 239s] /bin/bash ../../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o per_encoder.lo per_encoder.c [ 240s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c per_encoder.c -fPIC -DPIC -o .libs/per_encoder.o [ 240s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c per_encoder.c -o per_encoder.o >/dev/null 2>&1 [ 240s] /bin/bash ../../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" -DPACKAGE_STRING=\"osmo-remsim\ 0.2.2.113-eb9f\" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-remsim\" -DVERSION=\"0.2.2.113-eb9f\" -DBUILD_SERVER=1 -DBUILD_BANKD=1 -DHAVE_CSV_H=1 -DBUILD_CLIENT_ST2=1 -DBUILD_CLIENT_IFDHANDLER=1 -DSTDC_HEADERS=1 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I../../include -pthread -I/usr/include/ -I../../include/osmocom/rspro -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -std=gnu11 -Wall -c -o per_opentype.lo per_opentype.c [ 240s] libtool: compile: gcc -DPACKAGE_NAME=\"osmo-remsim\" -DPACKAGE_TARNAME=\"osmo-remsim\" -DPACKAGE_VERSION=\"0.2.2.113-eb9f\" "-DPACKAGE_STRING=\"osmo-remsim 0.2.2.113-eb9f\"" -DPACKAGE_BUGREPORT=\"simtrace at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRI Job seems to be stuck here, killed. (after 28800 seconds of inactivity) -- 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 Sep 20 08:48:25 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 08:48:25 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25508/1/pySim-prog.py File pySim-prog.py: https://gerrit.osmocom.org/c/pysim/+/25508/1/pySim-prog.py at 203 PS1, Line 203: parser.add_option("--card_handler_config", dest="card_handler_config", metavar="FILE", > I would keep "--card_handler" as argument name, just change the dest. [?] I understand that. I would still change both to maintain constancy. Also I think there is no one out there but us who uses this option. I also would be even surprised if we would have any scripts that use the option either. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 08:48:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:51:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 08:51:48 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 to look at the new patch set (#2). Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... MS Power Control Loop: Fix oscillations within good MS Power Levels Related: SYS#4917 Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 42 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/25503/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 08:54:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 08:54:11 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 08:54: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 Sep 20 08:54:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 08:54:43 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 08:54: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 Sep 20 09:03:38 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 09:03:38 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25483 to look at the new patch set (#3). Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... pySim-shell: move command desc and verify_adm to PySimCommands Almost all pySim-shell related commands are agrgated in PySimCommands. There are a few exceptions, so there are some commands in PysimApp. However, it makes sense to reserve PysimApp exclusively for very basic commands that do not directly relate to card operations. So lets move the command verify_adm and desc to PySimCommands. Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf --- M pySim-shell.py 1 file changed, 27 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/83/25483/3 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:03:38 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 20 Sep 2021 09:03:38 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section 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/+/25484 to look at the new patch set (#4). Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd --- M pySim-shell.py 1 file changed, 53 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/4 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:11:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:11:24 +0000 Subject: Change in osmo-bts[master]: tests: MS Power Control Loop: Show oscillation among good power levels In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25502 ) Change subject: tests: MS Power Control Loop: Show oscillation among good power levels ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c Gerrit-Change-Number: 25502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:11: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 Sep 20 09:22:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:22:37 +0000 Subject: Change in osmo-pcu[master]: PTCCH: skip Tx DL idle blocks when possible References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25509 ) Change subject: PTCCH: skip Tx DL idle blocks when possible ...................................................................... PTCCH: skip Tx DL idle blocks when possible Same was already done for PDTCH in previous commits. Let's now apply same bits to PTCCH. Related: SYS#4919 Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 --- M src/pcu_l1_if.cpp 1 file changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/09/25509/1 diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 25c1933..1600da0 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -531,6 +531,22 @@ if (!pdch->m_is_enabled) return -EAGAIN; + /* If there's no TBF attached to this PDCH, we can skip Tx of PTCCH + * since there's nothing worthy of being transmitted. This way BTS can + * identify idle blocks and send nothing or dumy blocks with reduced + * energy for the sake of energy saving. + */ + const unsigned num_tbfs = pdch->num_tbfs(GPRS_RLCMAC_DL_TBF) + + pdch->num_tbfs(GPRS_RLCMAC_UL_TBF); + bool skip_idle = (num_tbfs == 0); +#ifdef ENABLE_DIRECT_PHY + /* In DIRECT_PHY mode we want to always submit something to L1 in + * TRX0, since BTS is not preparing dummy bursts on idle TS for us: */ + skip_idle = skip_idle && trx != 0; +#endif + if (skip_idle) + return 0; + pcu_l1if_tx_ptcch(bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr, pdch->ptcch_msg, GSM_MACBLOCK_LEN); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 Gerrit-Change-Number: 25509 Gerrit-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 Sep 20 09:22:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:22:41 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-bts/+/25503/2/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25503/2/src/common/power_control.c at 268 PS2, Line 268: Powever Power https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok File tests/power/ms_power_loop_test.ok: https://gerrit.osmocom.org/c/osmo-bts/+/25503/1/tests/power/ms_power_loop_test.ok at 169 PS1, Line 169: 0 (expected 1) > 0 vs 1 this is unresolved -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:22: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 Mon Sep 20 09:25:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:25:25 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25503/2/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25503/2/src/common/power_control.c at 268 PS2, Line 268: Powever > Power POWer for EVER! -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:25:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:26:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:26:35 +0000 Subject: Change in osmo-pcu[master]: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25504 ) Change subject: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 Gerrit-Change-Number: 25504 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:26: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 Sep 20 09:26:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:26:56 +0000 Subject: Change in osmo-bts[master]: tests: MS Power Control Loop: Show oscillation among good power levels In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25502 ) Change subject: tests: MS Power Control Loop: Show oscillation among good power levels ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c Gerrit-Change-Number: 25502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 09:26: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 Sep 20 09:26:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:26:58 +0000 Subject: Change in osmo-bts[master]: tests: MS Power Control Loop: Show oscillation among good power levels In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25502 ) Change subject: tests: MS Power Control Loop: Show oscillation among good power levels ...................................................................... tests: MS Power Control Loop: Show oscillation among good power levels This test showcases the current issue where the loop keeps bouncing between 2 good MS Power Level values due to the loop "accepting" and "reporting back" the previously considered good MS Power Level announced/used by the MS. Hence, upon report back from the network, the MS will switch to this new MS Power Level, and same thing will ocurr over and over. Related: SYS#4917 Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c --- M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 3 files changed, 54 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index 559eacc..d8d1c71 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -70,13 +70,11 @@ printf("\nStarting test case '%s'\n", name); } -static inline void apply_power_test(struct gsm_lchan *lchan, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) +static void apply_power_test_ext(struct gsm_lchan *lchan, uint8_t ms_pwr, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) { - uint8_t old; int ret; - old = lchan->ms_power_ctrl.current; - ret = lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, rxlev, lqual_cb); + ret = lchan_ms_pwr_ctrl(lchan, ms_pwr, rxlev, lqual_cb); /* Keep the measurement counter updated */ lchan->meas.res_nr++; @@ -84,7 +82,12 @@ printf("lchan_ms_pwr_ctrl(RxLvl=%d dBm) returns %d (expected %d)\n", rxlev, ret, exp_ret); printf("\tMS current power %u -> %u (expected %u)\n", - old, lchan->ms_power_ctrl.current, exp_current); + ms_pwr, lchan->ms_power_ctrl.current, exp_current); +} + +static inline void apply_power_test(struct gsm_lchan *lchan, int rxlev, int lqual_cb, int exp_ret, uint8_t exp_current) +{ + apply_power_test_ext(lchan, lchan->ms_power_ctrl.current, rxlev, lqual_cb, exp_ret, exp_current); } static void test_power_loop(void) @@ -374,6 +377,34 @@ apply_power_test(lchan, -60, too_high_lqual, 1, 14); } +/* Test whether ping pong between requested MS Power Level and announced MS + * Power level occurs, oscillating between considered good levels all the time: + * FIXME: Current code shows there's an issue with oscillating values. */ +static void test_good_threshold_convergence(void) +{ + struct gsm_lchan *lchan; + const struct gsm_power_ctrl_params *params; + int16_t good_lqual, good_rxlev; + + init_test(__func__); + lchan = &g_trx->ts[0].lchan[0]; + params = lchan->ms_power_ctrl.dpc_params; + lchan->ms_dpc_params.rxlev_meas.upper_thresh = 37; + lchan->ms_dpc_params.rxlev_meas.lower_thresh = 30; + lchan->type = GSM_LCHAN_SDCCH; + good_lqual = (params->ci_sdcch_meas.lower_thresh + 2) * 10; + good_rxlev = rxlev2dbm(params->rxlev_meas.lower_thresh + 2); + + lchan->ms_power_ctrl.current = 10; + lchan->ms_power_ctrl.max = 2; + + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); +} + int main(int argc, char **argv) { printf("Testing power loop...\n"); @@ -394,6 +425,7 @@ test_power_hysteresis(); test_power_ctrl_interval(); test_power_loop_ci(); + test_good_threshold_convergence(); printf("Power loop test OK\n"); diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 8f58882..5a68e3b 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -58,3 +58,8 @@ (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 27992b1..4dc01e4 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -164,4 +164,16 @@ MS current power 12 -> 13 (expected 13) lchan_ms_pwr_ctrl(RxLvl=-60 dBm) returns 1 (expected 1) MS current power 13 -> 14 (expected 14) + +Starting test case 'test_good_threshold_convergence' +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 9 -> 9 (expected 9) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 10 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 9 -> 9 (expected 9) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 10 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) + MS current power 9 -> 9 (expected 9) Power loop test OK -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I16ed7fe8a123b99008e0c041d2f3e4232057d55c Gerrit-Change-Number: 25502 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:28:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:28:16 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 to look at the new patch set (#3). Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... MS Power Control Loop: Fix oscillations within good MS Power Levels Related: SYS#4917 Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 42 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/03/25503/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:28:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:28:37 +0000 Subject: Change in osmo-pcu[master]: PTCCH: skip Tx DL idle blocks when possible In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25509 ) Change subject: PTCCH: skip Tx DL idle blocks when possible ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 Gerrit-Change-Number: 25509 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 20 Sep 2021 09:28:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:30:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:30:44 +0000 Subject: Change in osmo-bts[master]: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS ... In-Reply-To: References: Message-ID: pespin has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25474 ) Change subject: scheduler: Apply BCCH Carrier Power Reduction attenuation to PDCH TS on C0 ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3c6985c2bc6779b15094a34f5d4a345c7d8d7b38 Gerrit-Change-Number: 25474 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:32:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:32:33 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25503/2/src/common/power_control.c File src/common/power_control.c: https://gerrit.osmocom.org/c/osmo-bts/+/25503/2/src/common/power_control.c at 268 PS2, Line 268: Powever > POWer for EVER! :D -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:32:33 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:33:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:33:28 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:33: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 Sep 20 09:42:11 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:42:11 +0000 Subject: Change in osmo-mgw[master]: Fix attribute parsing on gcc 11.1.0 In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25454 ) Change subject: Fix attribute parsing on gcc 11.1.0 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Gerrit-Change-Number: 25454 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-CC: Hoernchen Gerrit-Comment-Date: Mon, 20 Sep 2021 09:42: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 Sep 20 09:42:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 09:42:26 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25459/4/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/25459/4/src/common/abis.c at 64 PS4, Line 64: OML_RETRY_TIMER > Shall we make this timer configurable via the VTY? We can do that whenever we see it's needed. I don't see a need for it right now, and I'm already adding lots of changes to worry about this now. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:42:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 09:56:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 09:56:55 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:total In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25506 ) Change subject: stat: add bts.N.num_trx:total ...................................................................... Patch Set 1: Regarding the linter error: > src/osmo-bsc/bts.c:1317: ERROR:OPEN_BRACE: that open brace { should be on the previous line This seems to be an useful check to have enabled. If you like I can add a patch that fixes the style in bts.c. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 Gerrit-Change-Number: 25506 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 09:56:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 10:00:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 10:00:50 +0000 Subject: Change in osmo-mgw[master]: Fix attribute parsing on gcc 11.1.0 In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-mgw/+/25454 ) Change subject: Fix attribute parsing on gcc 11.1.0 ...................................................................... Fix attribute parsing on gcc 11.1.0 Fixes following compilation error: "osmo-mgw/src/libosmo-mgcp/mgcp_stat.c:39:1: error: ?integer? attribute directive ignored" Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Fixes: f936e10f07b7a55d53a6f426b80364f6d368c5a0 --- M src/libosmo-mgcp/mgcp_stat.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libosmo-mgcp/mgcp_stat.c b/src/libosmo-mgcp/mgcp_stat.c index 59ef917..e679882 100644 --- a/src/libosmo-mgcp/mgcp_stat.c +++ b/src/libosmo-mgcp/mgcp_stat.c @@ -33,7 +33,7 @@ /* Helper function for mgcp_format_stats_rtp() to calculate packet loss */ #if defined(__has_attribute) #if __has_attribute(no_sanitize) -__attribute__((no_sanitize("integer"))) +__attribute__((no_sanitize("undefined"))) #endif #endif void calc_loss(struct mgcp_conn_rtp *conn, uint32_t *expected, int *loss) -- To view, visit https://gerrit.osmocom.org/c/osmo-mgw/+/25454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-Change-Id: Ia5167068abe8a22cd35a833396cbd7cb531c7e83 Gerrit-Change-Number: 25454 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: osmith 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 Mon Sep 20 10:02:18 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 10:02:18 +0000 Subject: Change in osmo-pcu[master]: PTCCH: skip Tx DL idle blocks when possible In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25509 ) Change subject: PTCCH: skip Tx DL idle blocks when possible ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 Gerrit-Change-Number: 25509 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 10:02:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 10:24:00 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, Hoernchen, neels, laforge, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 to look at the new patch set (#4). Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... abis.c: Transition to CONNECTED state only when OML link is up This clarifies the different states and transitions between them: OML LINK UP: CONNECTING->CONNECTED ANY LINK DOWN: CONNECTING->CONNECTING, CONNECTED->FAILED In follow up commits, support to reconnect instead of exit after the BTS has already connected will be added, so only the last transition needs to be changed. Related: SYS#4971 Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 73 insertions(+), 46 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/57/25457/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 10:24:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 10:24:00 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 to look at the new patch set (#2). Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... nm_*fsm: Make FSMs aware of object being properly configured or not This will allow in the future advertising children objects that the parent object has been configured. It is useful for instance to let TRX know that the BTS is configured. Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 --- M include/osmo-bts/nm_common_fsm.h M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 15 files changed, 244 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/25505/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 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 Mon Sep 20 10:24:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 10:24:02 +0000 Subject: Change in osmo-bts[master]: cosmetic: Fix formatting of conditional operator References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25510 ) Change subject: cosmetic: Fix formatting of conditional operator ...................................................................... cosmetic: Fix formatting of conditional operator Change-Id: Ib0da405d1d9ed30bea97b433b7cf07b1084348ef --- M src/common/nm_bb_transc_fsm.c M src/common/nm_radio_carrier_fsm.c 2 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/10/25510/1 diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 936451f..0e21a91 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -144,9 +144,9 @@ nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_ENABLED); } else { LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s\n", - rsl_link_connected ? "": " rsl", - phy_state_connected ? "": " phy", - bb_transc->mo.opstart_success ? "": " opstart"); + rsl_link_connected ? "" : " rsl", + phy_state_connected ? "" : " phy", + bb_transc->mo.opstart_success ? "" : " opstart"); } } diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 4cbdf68..800cac2 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -135,9 +135,9 @@ nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED); } else { LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s\n", - rsl_link_connected ? "": " rsl", - phy_state_connected ? "": " phy", - trx->mo.opstart_success ? "": " opstart"); + rsl_link_connected ? "" : " rsl", + phy_state_connected ? "" : " phy", + trx->mo.opstart_success ? "" : " opstart"); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib0da405d1d9ed30bea97b433b7cf07b1084348ef Gerrit-Change-Number: 25510 Gerrit-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 Sep 20 10:24:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 10:24:02 +0000 Subject: Change in osmo-bts[master]: abis: Move FSM registration to constructor function References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25511 ) Change subject: abis: Move FSM registration to constructor function ...................................................................... abis: Move FSM registration to constructor function We commonly do it this way since there's only need to call it once at the startup of the program. Change-Id: I6ee5b89175ee32bc12a8afc9682a8f90d1713291 --- M src/common/abis.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/11/25511/1 diff --git a/src/common/abis.c b/src/common/abis.c index e82ac96..9b0a5b3 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -446,7 +446,6 @@ return -EINVAL; } - OSMO_ASSERT(osmo_fsm_register(&abis_link_fsm) == 0); bts->abis_link_fi = osmo_fsm_inst_alloc(&abis_link_fsm, bts, NULL, LOGL_DEBUG, "abis_link"); OSMO_ASSERT(bts->abis_link_fi); @@ -461,3 +460,8 @@ return 0; } + +static __attribute__((constructor)) void abis_link_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&abis_link_fsm) == 0); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6ee5b89175ee32bc12a8afc9682a8f90d1713291 Gerrit-Change-Number: 25511 Gerrit-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 Sep 20 10:24:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 10:24:03 +0000 Subject: Change in osmo-bts[master]: abis: Shorten string names of events References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25512 ) Change subject: abis: Shorten string names of events ...................................................................... abis: Shorten string names of events Change-Id: I7a5dab3d38e917a8f37c72765e27f263c324ed96 --- M src/common/abis.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/12/25512/1 diff --git a/src/common/abis.c b/src/common/abis.c index 9b0a5b3..ff9e5fa 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -69,8 +69,8 @@ }; static const struct value_string abis_link_fsm_event_names[] = { - OSMO_VALUE_STRING(ABIS_LINK_EV_SIGN_LINK_DOWN), - OSMO_VALUE_STRING(ABIS_LINK_EV_VTY_RM_ADDR), + { ABIS_LINK_EV_SIGN_LINK_DOWN, "SIGN_LINK_DOWN" }, + { ABIS_LINK_EV_VTY_RM_ADDR, "VTY_RM_ADDR" }, {} }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7a5dab3d38e917a8f37c72765e27f263c324ed96 Gerrit-Change-Number: 25512 Gerrit-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 Sep 20 10:42:02 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 10:42:02 +0000 Subject: Change in osmo-bts[master]: cosmetic: Fix formatting of conditional operator In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25510 ) Change subject: cosmetic: Fix formatting of conditional operator ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib0da405d1d9ed30bea97b433b7cf07b1084348ef Gerrit-Change-Number: 25510 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 20 Sep 2021 10:42:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 10:42:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 10:42:31 +0000 Subject: Change in osmo-bts[master]: abis: Move FSM registration to constructor function In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25511 ) Change subject: abis: Move FSM registration to constructor function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6ee5b89175ee32bc12a8afc9682a8f90d1713291 Gerrit-Change-Number: 25511 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 20 Sep 2021 10:42:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 10:43:14 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 10:43:14 +0000 Subject: Change in osmo-bts[master]: abis: Shorten string names of events In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25512 ) Change subject: abis: Shorten string names of events ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25512/1/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/25512/1/src/common/abis.c at 73 PS1, Line 73: I would rather use tab(s) instead of spaces. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7a5dab3d38e917a8f37c72765e27f263c324ed96 Gerrit-Change-Number: 25512 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 20 Sep 2021 10:43:14 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 10:44:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 10:44:58 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 10:44:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:04:19 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 12:04:19 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 12:04: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 Sep 20 12:05:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 12:05:22 +0000 Subject: Change in osmo-bts[master]: abis: Shorten string names of events In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25512 ) Change subject: abis: Shorten string names of events ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7a5dab3d38e917a8f37c72765e27f263c324ed96 Gerrit-Change-Number: 25512 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 12:05: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 Sep 20 12:18:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:18:25 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... Patch Set 4: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25457/3/src/common/abis.c File src/common/abis.c: https://gerrit.osmocom.org/c/osmo-bts/+/25457/3/src/common/abis.c at 105 PS3, Line 105: drain_oml_queue > You could just add a forward declaration instead of moving this function around. I prefer having function helpers above in the file, then all FSM functions below. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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: Mon, 20 Sep 2021 12:18:25 +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 Mon Sep 20 12:18:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:18:28 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 12:18:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:18:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:18:34 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 12:18: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 Sep 20 12:18:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:18:37 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CN... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25471 ) Change subject: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 Gerrit-Change-Number: 25471 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 12: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 Sep 20 12:18:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:18:41 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Add missing item in event mask list for state ENABLED In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25472 ) Change subject: nm_*_fsm: Add missing item in event mask list for state ENABLED ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 Gerrit-Change-Number: 25472 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 12:18:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:00 +0000 Subject: Change in osmo-bts[master]: cosmetic: Fix formatting of conditional operator In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25510 ) Change subject: cosmetic: Fix formatting of conditional operator ...................................................................... cosmetic: Fix formatting of conditional operator Change-Id: Ib0da405d1d9ed30bea97b433b7cf07b1084348ef --- M src/common/nm_bb_transc_fsm.c M src/common/nm_radio_carrier_fsm.c 2 files changed, 6 insertions(+), 6 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 936451f..0e21a91 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -144,9 +144,9 @@ nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_ENABLED); } else { LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s\n", - rsl_link_connected ? "": " rsl", - phy_state_connected ? "": " phy", - bb_transc->mo.opstart_success ? "": " opstart"); + rsl_link_connected ? "" : " rsl", + phy_state_connected ? "" : " phy", + bb_transc->mo.opstart_success ? "" : " opstart"); } } diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 4cbdf68..800cac2 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -135,9 +135,9 @@ nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED); } else { LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s\n", - rsl_link_connected ? "": " rsl", - phy_state_connected ? "": " phy", - trx->mo.opstart_success ? "": " opstart"); + rsl_link_connected ? "" : " rsl", + phy_state_connected ? "" : " phy", + trx->mo.opstart_success ? "" : " opstart"); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib0da405d1d9ed30bea97b433b7cf07b1084348ef Gerrit-Change-Number: 25510 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:00 +0000 Subject: Change in osmo-bts[master]: abis: Move FSM registration to constructor function In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25511 ) Change subject: abis: Move FSM registration to constructor function ...................................................................... abis: Move FSM registration to constructor function We commonly do it this way since there's only need to call it once at the startup of the program. Change-Id: I6ee5b89175ee32bc12a8afc9682a8f90d1713291 --- M src/common/abis.c 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/abis.c b/src/common/abis.c index e82ac96..9b0a5b3 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -446,7 +446,6 @@ return -EINVAL; } - OSMO_ASSERT(osmo_fsm_register(&abis_link_fsm) == 0); bts->abis_link_fi = osmo_fsm_inst_alloc(&abis_link_fsm, bts, NULL, LOGL_DEBUG, "abis_link"); OSMO_ASSERT(bts->abis_link_fi); @@ -461,3 +460,8 @@ return 0; } + +static __attribute__((constructor)) void abis_link_fsm_init(void) +{ + OSMO_ASSERT(osmo_fsm_register(&abis_link_fsm) == 0); +} -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6ee5b89175ee32bc12a8afc9682a8f90d1713291 Gerrit-Change-Number: 25511 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:01 +0000 Subject: Change in osmo-bts[master]: abis: Shorten string names of events In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25512 ) Change subject: abis: Shorten string names of events ...................................................................... abis: Shorten string names of events Change-Id: I7a5dab3d38e917a8f37c72765e27f263c324ed96 --- M src/common/abis.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/abis.c b/src/common/abis.c index 9b0a5b3..ff9e5fa 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -69,8 +69,8 @@ }; static const struct value_string abis_link_fsm_event_names[] = { - OSMO_VALUE_STRING(ABIS_LINK_EV_SIGN_LINK_DOWN), - OSMO_VALUE_STRING(ABIS_LINK_EV_VTY_RM_ADDR), + { ABIS_LINK_EV_SIGN_LINK_DOWN, "SIGN_LINK_DOWN" }, + { ABIS_LINK_EV_VTY_RM_ADDR, "VTY_RM_ADDR" }, {} }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7a5dab3d38e917a8f37c72765e27f263c324ed96 Gerrit-Change-Number: 25512 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:01 +0000 Subject: Change in osmo-bts[master]: abis.c: Transition to CONNECTED state only when OML link is up In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25457 ) Change subject: abis.c: Transition to CONNECTED state only when OML link is up ...................................................................... abis.c: Transition to CONNECTED state only when OML link is up This clarifies the different states and transitions between them: OML LINK UP: CONNECTING->CONNECTED ANY LINK DOWN: CONNECTING->CONNECTING, CONNECTED->FAILED In follow up commits, support to reconnect instead of exit after the BTS has already connected will be added, so only the last transition needs to be changed. Related: SYS#4971 Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 73 insertions(+), 46 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index b05461b..1939faf 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -7,6 +7,7 @@ #include enum abis_link_fsm_event { + ABIS_LINK_EV_SIGN_LINK_OML_UP, ABIS_LINK_EV_SIGN_LINK_DOWN, ABIS_LINK_EV_VTY_RM_ADDR, }; diff --git a/src/common/abis.c b/src/common/abis.c index ff9e5fa..551670c 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -63,12 +63,13 @@ #define S(x) (1 << (x)) enum abis_link_fsm_state { - ABIS_LINK_ST_CONNECTING, - ABIS_LINK_ST_CONNECTED, - ABIS_LINK_ST_FAILED, + ABIS_LINK_ST_CONNECTING, /* OML link has not yet been established */ + ABIS_LINK_ST_CONNECTED, /* OML link is established, RSL links may be established or not */ + ABIS_LINK_ST_FAILED, /* There used to be an active OML connection but it became broken */ }; static const struct value_string abis_link_fsm_event_names[] = { + { ABIS_LINK_EV_SIGN_LINK_OML_UP, "SIGN_LINK_OML_UP", }, { ABIS_LINK_EV_SIGN_LINK_DOWN, "SIGN_LINK_DOWN" }, { ABIS_LINK_EV_VTY_RM_ADDR, "VTY_RM_ADDR" }, {} @@ -81,6 +82,39 @@ int line_ctr; }; +static void reset_oml_link(struct gsm_bts *bts) +{ + if (bts->oml_link) { + struct timespec now; + + e1inp_sign_link_destroy(bts->oml_link); + + /* Log a special notice if the OML connection was dropped relatively quickly. */ + if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && + bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { + LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " + "If this situation persists, please check your BTS and BSC configuration files for errors. " + "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", + (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); + } + bts->oml_link = NULL; + } + memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); +} + +static void drain_oml_queue(struct gsm_bts *bts) +{ + struct msgb *msg, *msg2; + + llist_for_each_entry_safe(msg, msg2, &bts->oml_queue, list) { + /* osmo-bts uses msg->trx internally, but libosmo-abis uses + * the signalling link at msg->dst */ + llist_del(&msg->list); + msg->dst = bts->oml_link; + abis_sendmsg(msg); + } +} + static void abis_link_connecting_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct e1inp_line *line; @@ -135,8 +169,32 @@ return; } - /* The TCP connection to the BSC is now in progress. */ - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); + /* The TCP connection to the BSC is now in progress. + * Wait for OML Link UP to transition to CONNECTED. */ +} + +static void abis_link_connecting(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct abis_link_fsm_priv *priv = fi->priv; + struct gsm_bts *bts = priv->bts; + + switch (event) { + case ABIS_LINK_EV_SIGN_LINK_OML_UP: + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); + break; + case ABIS_LINK_EV_SIGN_LINK_DOWN: + reset_oml_link(bts); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + break; + default: + OSMO_ASSERT(0); + } +} + +static void abis_link_connected_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + drain_oml_queue(g_bts); + bts_link_estab(g_bts); } static void abis_link_connected(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -144,35 +202,16 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; struct gsm_bts_trx *trx; - bool oml_rsl_was_connected = false; - OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); /* First remove the OML signalling link */ - if (bts->oml_link) { - struct timespec now; - - e1inp_sign_link_destroy(bts->oml_link); - - /* Log a special notice if the OML connection was dropped relatively quickly. */ - if (bts->oml_conn_established_timestamp.tv_sec != 0 && clock_gettime(CLOCK_MONOTONIC, &now) == 0 && - bts->oml_conn_established_timestamp.tv_sec + OSMO_BTS_OML_CONN_EARLY_DISCONNECT >= now.tv_sec) { - LOGP(DABIS, LOGL_FATAL, "OML link was closed early within %" PRIu64 " seconds. " - "If this situation persists, please check your BTS and BSC configuration files for errors. " - "A common error is a mismatch between unit_id configuration parameters of BTS and BSC.\n", - (uint64_t) (now.tv_sec - bts->oml_conn_established_timestamp.tv_sec)); - } - bts->oml_link = NULL; - oml_rsl_was_connected = true; - } - memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); + reset_oml_link(bts); /* Then iterate over the RSL signalling links */ llist_for_each_entry(trx, &bts->trx_list, list) { if (trx->rsl_link) { e1inp_sign_link_destroy(trx->rsl_link); trx->rsl_link = NULL; - oml_rsl_was_connected = true; } } @@ -180,10 +219,7 @@ * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host * to restart osmo-bts. */ - if (oml_rsl_was_connected) - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); - else - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); } static void abis_link_failed_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -216,19 +252,23 @@ static struct osmo_fsm_state abis_link_fsm_states[] = { [ABIS_LINK_ST_CONNECTING] = { .name = "CONNECTING", + .in_event_mask = + S(ABIS_LINK_EV_SIGN_LINK_OML_UP) | + S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = S(ABIS_LINK_ST_CONNECTING) | S(ABIS_LINK_ST_CONNECTED) | S(ABIS_LINK_ST_FAILED), .onenter = abis_link_connecting_onenter, + .action = abis_link_connecting, }, [ABIS_LINK_ST_CONNECTED] = { .name = "CONNECTED", .in_event_mask = S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = - S(ABIS_LINK_ST_CONNECTING) | S(ABIS_LINK_ST_FAILED), + .onenter = abis_link_connected_onenter, .action = abis_link_connected, }, [ABIS_LINK_ST_FAILED] = { @@ -262,19 +302,6 @@ } } -static void drain_oml_queue(struct gsm_bts *bts) -{ - struct msgb *msg, *msg2; - - llist_for_each_entry_safe(msg, msg2, &bts->oml_queue, list) { - /* osmo-bts uses msg->trx internally, but libosmo-abis uses - * the signalling link at msg->dst */ - llist_del(&msg->list); - msg->dst = bts->oml_link; - abis_sendmsg(msg); - } -} - int abis_bts_rsl_sendmsg(struct msgb *msg) { OSMO_ASSERT(msg->trx); @@ -309,8 +336,7 @@ sizeof(g_bts->oml_conn_established_timestamp)); g_bts->osmo_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_OSMO, g_bts->c0, IPAC_PROTO_OSMO, 0); - drain_oml_queue(g_bts); - bts_link_estab(g_bts); + osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_OML_UP, NULL); return g_bts->oml_link; case E1INP_SIGN_RSL: @@ -456,7 +482,7 @@ abis_link_fsm_priv->model_name = model_name; bts->abis_link_fi->priv = abis_link_fsm_priv; - osmo_fsm_inst_state_chg_ms(bts->abis_link_fi, ABIS_LINK_ST_CONNECTING, 1, 0); + osmo_fsm_inst_state_chg(bts->abis_link_fi, ABIS_LINK_ST_CONNECTING, 0, 0); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I43e83b1b04fbaa1f87818c096e6ad3920801b1f6 Gerrit-Change-Number: 25457 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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 Mon Sep 20 12:19:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:01 +0000 Subject: Change in osmo-bts[master]: abis.c: Fix mess with priv->bsc_oml_host In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25458 ) Change subject: abis.c: Fix mess with priv->bsc_oml_host ...................................................................... abis.c: Fix mess with priv->bsc_oml_host The pointer was used as "struct bsc_oml_host" sometimes, and other times as "struct llist_head". It just worked because bsc_oml_host->list is the first item in the script. The code was really confusing, also because the bts list of items has a name really similar to the one currently assigned. Let's rename the currently assigned address to "current_bsc", store it always as "struct bsc_oml_host*" and finally use llist_entry helpers when needed. The related code is also moved to a helper function to enclose there the logic to get next BSC in list. This change actually changes the logic where a remote address is removed from VTY, since now the next address in list is picked at the time, and later when reconnecting the list is forwarded another time, meaning one address will be skipped. This could be considered a bug, but this situation is really special and anyway the entire logic will be changed in new commits where we'll keep reconnecting in loop without exiting when reaching the end of the list, so we are fine with it. Think of this commit as a preparation commit for next ones. Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 32 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index 1939faf..40707cd 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -9,7 +9,7 @@ enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_OML_UP, ABIS_LINK_EV_SIGN_LINK_DOWN, - ABIS_LINK_EV_VTY_RM_ADDR, + ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ }; void abis_init(struct gsm_bts *bts); diff --git a/src/common/abis.c b/src/common/abis.c index 551670c..c230a4b 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -76,7 +76,7 @@ }; struct abis_link_fsm_priv { - struct llist_head *bsc_oml_host; + struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; int line_ctr; @@ -115,30 +115,45 @@ } } +static int pick_next_bsc(struct osmo_fsm_inst *fi) +{ + struct abis_link_fsm_priv *priv = fi->priv; + struct gsm_bts *bts = priv->bts; + struct bsc_oml_host *last; + + if (llist_empty(&bts->bsc_oml_hosts)) { + LOGPFSML(fi, LOGL_ERROR, "List of BSCs to connect to is empty!\n"); + return -1; + } + + last = (struct bsc_oml_host *)llist_last_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); + + if (!priv->current_bsc) /* Pick first one: */ + priv->current_bsc = (struct bsc_oml_host *)llist_first_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); + else if (priv->current_bsc != last) + priv->current_bsc = (struct bsc_oml_host *)llist_entry(priv->current_bsc->list.next, struct bsc_oml_host, list); + else + return -1; /* We are so far not starting over the list when we reach the list, but only exit */ + + return 0; +} + static void abis_link_connecting_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct e1inp_line *line; struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; - struct bsc_oml_host *bsc_oml_host; - if (priv->bsc_oml_host) { - /* Get a BSC host from the list and move the list head one position forward. */ - bsc_oml_host = (struct bsc_oml_host *)priv->bsc_oml_host; - if (priv->bsc_oml_host == llist_last(&bts->bsc_oml_hosts)) - priv->bsc_oml_host = NULL; - else - priv->bsc_oml_host = priv->bsc_oml_host->next; - } else { - LOGP(DABIS, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n"); + if (pick_next_bsc(fi) < 0) { + LOGPFSML(fi, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); return; } - LOGP(DABIS, LOGL_NOTICE, "A-bis connection establishment to BSC (%s) in progress...\n", bsc_oml_host->addr); + LOGP(DABIS, LOGL_NOTICE, "A-bis connection establishment to BSC (%s) in progress...\n", priv->current_bsc->addr); /* patch in various data from VTY and other sources */ - line_ops.cfg.ipa.addr = bsc_oml_host->addr; + line_ops.cfg.ipa.addr = priv->current_bsc->addr; osmo_get_macaddr(bts_dev_info.mac_addr, "eth0"); bts_dev_info.site_id = bts->ip_access.site_id; bts_dev_info.bts_id = bts->ip_access.bts_id; @@ -239,13 +254,11 @@ OSMO_ASSERT(event == ABIS_LINK_EV_VTY_RM_ADDR); - if (priv->bsc_oml_host == data) { + if (priv->current_bsc == data) { if (llist_count(&bts->bsc_oml_hosts) <= 1) - priv->bsc_oml_host = NULL; - else if (priv->bsc_oml_host == llist_last(&bts->bsc_oml_hosts)) - priv->bsc_oml_host = priv->bsc_oml_host->prev; + priv->current_bsc = NULL; else - priv->bsc_oml_host = priv->bsc_oml_host->next; + pick_next_bsc(fi); } } @@ -477,7 +490,6 @@ abis_link_fsm_priv = talloc_zero(bts->abis_link_fi, struct abis_link_fsm_priv); OSMO_ASSERT(abis_link_fsm_priv); - abis_link_fsm_priv->bsc_oml_host = bts->bsc_oml_hosts.next; abis_link_fsm_priv->bts = bts; abis_link_fsm_priv->model_name = model_name; bts->abis_link_fi->priv = abis_link_fsm_priv; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3cc8a4148b3d63bc185b72dab8108105a6644910 Gerrit-Change-Number: 25458 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:02 +0000 Subject: Change in osmo-bts[master]: abis.c: Loop over list of BSCs until connection succeeds In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25459 ) Change subject: abis.c: Loop over list of BSCs until connection succeeds ...................................................................... abis.c: Loop over list of BSCs until connection succeeds Do not exit if all BSCs in the list fail to connect, keep trying forever. This commit still doesn't change the logic after BTS has successfully connected to a BSC. In that situation, if the link goes down, BTS will exit in order to reset all state and let the user/system restart it. Related: SYS#4971 Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 --- M src/common/abis.c 1 file changed, 25 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/src/common/abis.c b/src/common/abis.c index c230a4b..31a3505 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -61,9 +61,11 @@ static struct ipaccess_unit bts_dev_info; #define S(x) (1 << (x)) +#define OML_RETRY_TIMER 5 enum abis_link_fsm_state { - ABIS_LINK_ST_CONNECTING, /* OML link has not yet been established */ + ABIS_LINK_ST_WAIT_RECONNECT, /* OML link has not yet been established */ + ABIS_LINK_ST_CONNECTING, /* OML link in process of been established */ ABIS_LINK_ST_CONNECTED, /* OML link is established, RSL links may be established or not */ ABIS_LINK_ST_FAILED, /* There used to be an active OML connection but it became broken */ }; @@ -128,12 +130,10 @@ last = (struct bsc_oml_host *)llist_last_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); - if (!priv->current_bsc) /* Pick first one: */ + if (!priv->current_bsc || priv->current_bsc == last) /* Pick first one (wrap around): */ priv->current_bsc = (struct bsc_oml_host *)llist_first_entry(&bts->bsc_oml_hosts, struct bsc_oml_host, list); else if (priv->current_bsc != last) priv->current_bsc = (struct bsc_oml_host *)llist_entry(priv->current_bsc->list.next, struct bsc_oml_host, list); - else - return -1; /* We are so far not starting over the list when we reach the list, but only exit */ return 0; } @@ -199,7 +199,7 @@ break; case ABIS_LINK_EV_SIGN_LINK_DOWN: reset_oml_link(bts); - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); break; default: OSMO_ASSERT(0); @@ -262,14 +262,32 @@ } } +int abis_link_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + switch (fi->state) { + case ABIS_LINK_ST_WAIT_RECONNECT: + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTING, 0, 0); + break; + default: + OSMO_ASSERT(0); + } + return 0; +} + + static struct osmo_fsm_state abis_link_fsm_states[] = { + [ABIS_LINK_ST_WAIT_RECONNECT] = { + .name = "WAIT_RECONNECT", + .out_state_mask = + S(ABIS_LINK_ST_CONNECTING), + }, [ABIS_LINK_ST_CONNECTING] = { .name = "CONNECTING", .in_event_mask = S(ABIS_LINK_EV_SIGN_LINK_OML_UP) | S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = - S(ABIS_LINK_ST_CONNECTING) | + S(ABIS_LINK_ST_WAIT_RECONNECT) | S(ABIS_LINK_ST_CONNECTED) | S(ABIS_LINK_ST_FAILED), .onenter = abis_link_connecting_onenter, @@ -298,6 +316,7 @@ .event_names = abis_link_fsm_event_names, .allstate_action = abis_link_allstate, .allstate_event_mask = S(ABIS_LINK_EV_VTY_RM_ADDR), + .timer_cb = abis_link_fsm_timer_cb, }; int abis_oml_sendmsg(struct msgb *msg) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I67bba3b7e2d9d62b98a59a74987ae55206a3ec51 Gerrit-Change-Number: 25459 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:02 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CN... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25471 ) Change subject: trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF ...................................................................... trx_provision_fsm: Add missing state transition OPEN_WAIT_POWEROFF_CNF => OPEN_POWEROFF Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 5beca2a..19cbc8b 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -544,6 +544,7 @@ llist_for_each_entry(pinst, &plink->instances, list) { bts_model_trx_close_cb(pinst->trx, rc); } + trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWEROFF); } break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I361c1acddfe7ebffb44d886d0545240ef1bbd347 Gerrit-Change-Number: 25471 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:02 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:02 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Add missing item in event mask list for state ENABLED In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25472 ) Change subject: nm_*_fsm: Add missing item in event mask list for state ENABLED ...................................................................... nm_*_fsm: Add missing item in event mask list for state ENABLED Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 --- M src/common/nm_bb_transc_fsm.c M src/common/nm_radio_carrier_fsm.c 2 files changed, 12 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 0e21a91..cffd9ea 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -188,7 +188,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", @@ -202,7 +203,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_BBTRANSC_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", @@ -212,7 +214,8 @@ [NM_BBTRANSC_ST_OP_ENABLED] = { .in_event_mask = X(NM_EV_RSL_DOWN) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 800cac2..ad5fc04 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -178,7 +178,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", @@ -192,7 +193,8 @@ X(NM_EV_RSL_UP) | X(NM_EV_RSL_DOWN) | X(NM_EV_PHYLINK_UP) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_RCARRIER_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", @@ -202,7 +204,8 @@ [NM_RCARRIER_ST_OP_ENABLED] = { .in_event_mask = X(NM_EV_RSL_DOWN) | - X(NM_EV_PHYLINK_DOWN), + X(NM_EV_PHYLINK_DOWN) | + X(NM_EV_DISABLE), .out_state_mask = X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iebaa7dcfc01978cee2e4b08609503eb4e25598b7 Gerrit-Change-Number: 25472 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:03 +0000 Subject: Change in osmo-bts[master]: Allow setting administrative state through oml_mo_state_chg() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25473 ) Change subject: Allow setting administrative state through oml_mo_state_chg() ...................................................................... Allow setting administrative state through oml_mo_state_chg() This way it can be changed together with operative/availability state, and changes announced to the BSC if present. This commit presents no real change in osmo-bts behavior, since the only place where adm_state is passed different than -1 is in st_op_disabled_notinstalled_on_enter(), which is actually never called (yet) since it's the initial state and no other states transition later to it. However, this will change in the future once we support re-connecting to a (possibly different) BSC, which means objects will need to be moved to that state to restart the whole OML install procedure on the new BSC. Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c --- M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_radio_carrier_fsm.c M src/common/oml.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 14 files changed, 47 insertions(+), 38 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h index 27afc53..42284f9 100644 --- a/include/osmo-bts/oml.h +++ b/include/osmo-bts/oml.h @@ -47,7 +47,7 @@ int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause); /* Change the state and send STATE CHG REP */ -int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state); +int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state, int adm_state); /* First initialization of MO, does _not_ generate state changes */ void oml_mo_state_init(struct gsm_abis_mo *mo, int op_state, int avail_state); diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index cffd9ea..75ff1aa 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; bb_transc->mo.opstart_success = false; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -89,7 +89,7 @@ int i; bb_transc->mo.opstart_success = false; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); if (prev_state == NM_BBTRANSC_ST_OP_ENABLED) { for (i = 0; i < TRX_NR_TS; i++) { @@ -157,7 +157,7 @@ struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); uint8_t tn; - oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); /* Mark Dependency TS as Offline (ready to be Opstarted) */ for (tn = 0; tn < TRX_NR_TS; tn++) { struct gsm_bts_trx_ts *ts = &trx->ts[tn]; diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 12f1a61..6575b54 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; bts->mo.opstart_success = false; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -70,7 +70,7 @@ { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; bts->mo.opstart_success = false; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -95,7 +95,7 @@ static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; - oml_mo_state_chg(&bts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); } static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index dedbacb..864aeab 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; site_mgr->mo.opstart_success = false; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -70,7 +70,7 @@ { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; site_mgr->mo.opstart_success = false; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -95,7 +95,7 @@ static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; - oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); } static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 15be6c6..4983c27 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -56,7 +56,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -80,7 +80,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_DEPENDENCY, -1); } static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -117,7 +117,7 @@ { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; ts->mo.opstart_success = false; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -147,7 +147,7 @@ static void st_op_enabled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; - oml_mo_state_chg(&ts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&ts->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); } static void st_op_enabled(struct osmo_fsm_inst *fi, uint32_t event, void *data) diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index ad5fc04..2bae273 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -49,7 +49,7 @@ { struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; trx->mo.opstart_success = false; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) @@ -82,7 +82,7 @@ unsigned int i; trx->mo.opstart_success = false; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); if (prev_state == NM_RCARRIER_ST_OP_ENABLED) { for (i = 0; i < TRX_NR_TS; i++) { @@ -147,7 +147,7 @@ struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; unsigned int tn; - oml_mo_state_chg(&trx->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(&trx->mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); /* Mark Dependency TS as Offline (ready to be Opstarted) */ for (tn = 0; tn < TRX_NR_TS; tn++) { struct gsm_bts_trx_ts *ts = &trx->ts[tn]; diff --git a/src/common/oml.c b/src/common/oml.c index 819b033..d2cf877 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -340,12 +340,13 @@ mo->nm_state.operational = op_state; } -int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state) +int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state, int adm_state) { int rc = 0; if ((op_state != -1 && mo->nm_state.operational != op_state) || - (avail_state != -1 && mo->nm_state.availability != avail_state)) { + (avail_state != -1 && mo->nm_state.availability != avail_state) || + (adm_state != -1 && mo->nm_state.administrative != adm_state)) { if (avail_state != -1) { LOGP(DOML, LOGL_INFO, "%s AVAIL STATE %s -> %s\n", gsm_abis_mo_name(mo), @@ -361,6 +362,14 @@ mo->nm_state.operational = op_state; osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, NULL); } + if (adm_state != -1) { + LOGP(DOML, LOGL_INFO, "%s ADMIN STATE %s -> %s\n", + gsm_abis_mo_name(mo), + abis_nm_admin_name(mo->nm_state.administrative), + abis_nm_admin_name(adm_state)); + mo->nm_state.administrative = adm_state; + } + /* send state change report */ rc = oml_tx_state_changed(mo); diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index b4945be..9d0d99a 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -1906,13 +1906,13 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); if (mo->obj_class == NM_OC_BTS) { - oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1); } break; default: diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index 9791ab8..b50e151 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -1898,10 +1898,10 @@ break; case NM_OC_BTS: rc = osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); - oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1); break; case NM_OC_RADIO_CARRIER: trx = (struct gsm_bts_trx *) obj; @@ -1918,7 +1918,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 1e2f89d..1830599 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1788,7 +1788,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index 46558a1..5bfcfca 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -143,7 +143,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 93ecf90..194afcd 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -1776,10 +1776,10 @@ break; case NM_OC_BTS: rc = osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_OPSTART_ACK, NULL); - oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK); - oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK); + oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_OK, -1); + oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_OK, -1); break; case NM_OC_RADIO_CARRIER: trx = (struct gsm_bts_trx *) obj; @@ -1796,7 +1796,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, -1, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 754e9d7..6b417f4 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -604,7 +604,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); rc = oml_mo_opstart_ack(mo); break; default: diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index af8a6f2..48e9400 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -156,7 +156,7 @@ case NM_OC_GPRS_NSE: case NM_OC_GPRS_CELL: case NM_OC_GPRS_NSVC: - oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK); + oml_mo_state_chg(mo, NM_OPSTATE_ENABLED, NM_AVSTATE_OK, -1); rc = oml_mo_opstart_ack(mo); break; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ifdc6a1dfb673c0ab915ddf2a9d372928f4f86b4c Gerrit-Change-Number: 25473 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:19:04 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:19:04 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown proc... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25490 ) Change subject: nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts ...................................................................... nm_*_fsm: Set adminsitrative state 'shutting down' when shutdown procedure starts Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 --- M include/osmo-bts/nm_common_fsm.h M src/common/bts_shutdown_fsm.c M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c 8 files changed, 105 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 4679b23..4dab0ea 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -31,6 +31,7 @@ NM_EV_SW_ACT, NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, + NM_EV_SHUTDOWN_START, NM_EV_RSL_UP, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_RSL_DOWN, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_PHYLINK_UP, /* RadioCarrier and BaseBand Transceiver only */ diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index 0ac3078..cffe7cd 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -29,6 +29,7 @@ #include #include #include +#include #define X(s) (1 << (s)) @@ -58,6 +59,9 @@ unsigned int count; switch(event) { case BTS_SHUTDOWN_EV_START: + /* Firt announce to NM objects that we are starting a shutdown procedure: */ + osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SHUTDOWN_START, NULL); + count = count_trx_operational(bts); if (count) { bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_WAIT_RAMP_DOWN_COMPL); diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 75ff1aa..a909c8b 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -181,6 +181,28 @@ nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_DISABLED_OFFLINE); } +static void nm_bb_transc_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; + struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); + uint8_t tn; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&bb_transc->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + for (tn = 0; tn < TRX_NR_TS; tn++) { + struct gsm_bts_trx_ts *ts = &trx->ts[tn]; + osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SHUTDOWN_START, NULL); + } + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_bb_transc_fsm_states[] = { [NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -229,6 +251,8 @@ .states = nm_bb_transc_fsm_states, .num_states = ARRAY_SIZE(nm_bb_transc_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_bb_transc_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 6575b54..93e5740 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -102,6 +102,27 @@ { } +static void nm_bts_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&bts->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + llist_for_each_entry(trx, &bts->trx_list, list) { + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SHUTDOWN_START, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SHUTDOWN_START, NULL); + } + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_bts_fsm_states[] = { [NM_BTS_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -136,6 +157,8 @@ .states = nm_bts_fsm_states, .num_states = ARRAY_SIZE(nm_bts_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_bts_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 864aeab..e958917 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -102,6 +102,24 @@ { } +static void nm_bts_sm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&site_mgr->mo, -1, -1, NM_STATE_SHUTDOWN); + + /* Propagate event to children: */ + osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SHUTDOWN_START, NULL); + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_bts_sm_fsm_states[] = { [NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -136,6 +154,8 @@ .states = nm_bts_sm_fsm_states, .num_states = ARRAY_SIZE(nm_bts_sm_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_bts_sm_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index 4983c27..fc3c8a9 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -168,6 +168,20 @@ } } +static void nm_chan_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&ts->mo, -1, -1, NM_STATE_SHUTDOWN); + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_chan_fsm_states[] = { [NM_CHAN_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -226,6 +240,8 @@ .states = nm_chan_fsm_states, .num_states = ARRAY_SIZE(nm_chan_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_chan_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c index 7273e22..3b73605 100644 --- a/src/common/nm_common_fsm.c +++ b/src/common/nm_common_fsm.c @@ -27,6 +27,7 @@ { NM_EV_SW_ACT, "SW_ACT" }, { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, + { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" }, { NM_EV_RSL_UP, "RSL_UP" }, { NM_EV_RSL_DOWN, "RSL_DOWN" }, { NM_EV_PHYLINK_UP, "PHYLINK_UP" }, diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 2bae273..40b93e3 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -171,6 +171,20 @@ nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_DISABLED_OFFLINE); } +static void nm_rcarrier_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; + + switch (event) { + case NM_EV_SHUTDOWN_START: + /* Announce we start shutting down */ + oml_mo_state_chg(&trx->mo, -1, -1, NM_STATE_SHUTDOWN); + break; + default: + OSMO_ASSERT(false); + } +} + static struct osmo_fsm_state nm_rcarrier_fsm_states[] = { [NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED] = { .in_event_mask = @@ -219,6 +233,8 @@ .states = nm_rcarrier_fsm_states, .num_states = ARRAY_SIZE(nm_rcarrier_fsm_states), .event_names = nm_fsm_event_names, + .allstate_action = nm_rcarrier_allstate, + .allstate_event_mask = X(NM_EV_SHUTDOWN_START), .log_subsys = DOML, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I0d14840a55642812b865687a6cb208e7ffd22829 Gerrit-Change-Number: 25490 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 12:55:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 12:55:54 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... MS Power Control Loop: Support turn off C/I based logic Setting LOWER_CMP_N and UPPER_CMP_N for all channel types can be quite cumbersome and end up in lengthy config files. Let's instead add a placeholder command to apply it to all channel types of a BTS at once. This is useful specially since a user disabling C/I capabilities probably does so because it may require a fair amount of fine-tuning parameters to have it working perfectly. Hence, a user not willing to spend time configuring those parameters correctly (and for which default ones doesn't work properly) will require quick way to get rid of C/I based MS Power Control Loop. By disabling C/I comparison, osmo-bts will rely on RxLev only when applying the MS Power Control Loop, which is fine for non noisy environments. Related: SYS#4917 Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bts_vty.c M tests/power_ctrl.vty 3 files changed, 77 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/25513/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 54cbd5b..b9e4bb7 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -345,6 +345,14 @@ <3> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power. <4> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power. +NOTE: The BSC can instruct a BTS to disable C/I related logic in its +autonomous MS Power Control Loop for a given channel type (hence no taking C/I +measurements into account) by means of setting both related LOWER_CMP_N and +UPPER_CMP_N parameters to zero (see _ci-thresh-comp_ VTY command). For the sake +of easing configuration, a placeholder VTY command to disable C/I for all +channel types is available under VTY node _ms-power-control_ as *_ci-thresh-comp +disable all_*. + ==== Measurement averaging process 3GPP 45.008, section A.3.1 requires that the measurement values reported by both diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 3774344..7a502d7 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3272,6 +3272,35 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp_disable, + cfg_power_ctrl_ci_thresh_comp_disable_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "ci-thresh-comp disable all", + "Set Carrier-to_interference (C/I) threshold comparators (for dynamic mode)\n" + "Disable C/I comparison in control loop (sets LOWER_CMP_N and UPPER_CMP_N to zero)\n" + "Disable C/I comparison for all channel types\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + +#define DISABLE_MEAS_PC(PARAMS, TYPE) \ + (PARAMS)->TYPE##_meas.lower_cmp_p = 0; \ + (PARAMS)->TYPE##_meas.lower_cmp_n = 0; \ + (PARAMS)->TYPE##_meas.upper_cmp_p = 0; \ + (PARAMS)->TYPE##_meas.upper_cmp_n = 0 + + DISABLE_MEAS_PC(params, ci_fr); + DISABLE_MEAS_PC(params, ci_hr); + DISABLE_MEAS_PC(params, ci_amr_fr); + DISABLE_MEAS_PC(params, ci_amr_hr); + DISABLE_MEAS_PC(params, ci_sdcch); + DISABLE_MEAS_PC(params, ci_gprs); + +#undef DISABLE_MEAS_PC + + return CMD_SUCCESS; +} + #define POWER_CONTROL_MEAS_AVG_CMD \ "(rxlev-avg|rxqual-avg)" #define POWER_CONTROL_MEAS_AVG_DESC \ @@ -4445,6 +4474,7 @@ install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_disable_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd); diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index af02cd4..b14a905 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -38,6 +38,7 @@ . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> + . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -118,6 +119,7 @@ . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> + . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -295,3 +297,40 @@ rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 ... + +OsmoBSC(config-net-bts)# ### Check 'ci-thresh-comp disable all' works properly: +OsmoBSC(config-net-bts)# ms-power-control +OsmoBSC(config-ms-power-ctrl)# show running-config +... + ms-power-control +... + ci-thresh-comp fr-efr lower 5 7 upper 15 18 +... + ci-thresh-comp hr lower 5 7 upper 15 18 +... + ci-thresh-comp amr-fr lower 5 7 upper 15 18 +... + ci-thresh-comp amr-hr lower 5 7 upper 15 18 +... + ci-thresh-comp sdcch lower 5 7 upper 15 18 +... + ci-thresh-comp gprs lower 5 7 upper 15 18 +... + +OsmoBSC(config-ms-power-ctrl)# ci-thresh-comp disable all +OsmoBSC(config-ms-power-ctrl)# show running-config +... + ms-power-control +... + ci-thresh-comp fr-efr lower 0 0 upper 0 0 +... + ci-thresh-comp hr lower 0 0 upper 0 0 +... + ci-thresh-comp amr-fr lower 0 0 upper 0 0 +... + ci-thresh-comp amr-hr lower 0 0 upper 0 0 +... + ci-thresh-comp sdcch lower 0 0 upper 0 0 +... + ci-thresh-comp gprs lower 0 0 upper 0 0 +... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-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 Sep 20 13:00:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 13:00:06 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Support turn on-off C/I based logic References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25514 ) Change subject: MS Power Control Loop: Support turn on-off C/I based logic ...................................................................... MS Power Control Loop: Support turn on-off C/I based logic Related: SYS#4917 Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c --- M src/common/power_control.c 1 file changed, 10 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/25514/1 diff --git a/src/common/power_control.c b/src/common/power_control.c index a3334be..8f5ce37 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -199,7 +199,7 @@ uint8_t rxlev_avg; int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; - bool ignore; + bool ignore, ci_on; if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; @@ -225,13 +225,19 @@ return 0; } - /* If computed C/I is out of acceptable thresholds: */ ci_meas = lchan_get_ci_thresholds(lchan); + + /* Is C/I based algo enabled by config? + * FIXME: this can later be generalized when properly implementing P & N counting. */ + ci_on = ci_meas->lower_cmp_n && ci_meas->upper_cmp_n; + ul_lqual_cb_avg = do_avg_algo(ci_meas, &state->ci_meas_proc, ul_lqual_cb); rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dbm2rxlev(ul_rssi_dbm)); - if (ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { + + /* If computed C/I is enabled and out of acceptable thresholds: */ + if (ci_on && ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { new_dbm = ms_dbm + params->inc_step_size_db; - } else if (ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { + } else if (ci_on && ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c Gerrit-Change-Number: 25514 Gerrit-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 Sep 20 13:04:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 20 Sep 2021 13:04:21 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:total 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/+/25506 to look at the new patch set (#2). Change subject: stat: add bts.N.num_trx:total ...................................................................... stat: add bts.N.num_trx:total This is similar to bsc.0.num_trx:total but per single BTS. Related: SYS#5542 Related: I5be1cb470930354c4561cbed301bc50a32484ed9 (osmo-ttcn3-hacks) Depends: I137992a5479fc39bbceb6c6c2af9c227bd33b39b (libosmocore) Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 --- M TODO-RELEASE M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts.c 4 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/06/25506/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 Gerrit-Change-Number: 25506 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 13:04:21 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 20 Sep 2021 13:04:21 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:rsl_connected 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/+/25507 to look at the new patch set (#2). Change subject: stat: add bts.N.num_trx:rsl_connected ...................................................................... stat: add bts.N.num_trx:rsl_connected Controversy: this duplicates bts.N.rsl_connected. I would like to add this duplication for consistency, since we now have these counters: bsc.0.num_trx:rsl_connected bsc.0.num_trx:total bts.N.num_trx:total and the old bts.N.rsl_connected which does not fit well with above naming scheme. Any user will be justified to expect a stat named bts.N.num_trx:rsl_connected as well. Determine bts.N.num_trx:rsl_connected in the new function bsc_update_connection_stats(), where the other num_trx:* are set. Related: SYS#5542 Related: I5be1cb470930354c4561cbed301bc50a32484ed9 (osmo-ttcn3-hacks) Depends: I137992a5479fc39bbceb6c6c2af9c227bd33b39b (libosmocore) Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts.c 3 files changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/25507/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 Gerrit-Change-Number: 25507 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 Sep 20 13:04:54 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 20 Sep 2021 13:04:54 +0000 Subject: Change in libosmocore[master]: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25461 ) Change subject: stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() ...................................................................... stat_item: cosmetic: s/desc/group_desc in osmo_stat_item_group_alloc() There also is an osmo_stat_item_desc, so the name 'desc' makes it hard to read the code / the upcoming refactoring patches. It is an osmo_stat_item_group_desc, so call it group_desc. Related: SYS#5542 Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e --- M include/osmocom/core/stat_item.h M src/stat_item.c 2 files changed, 10 insertions(+), 10 deletions(-) Approvals: fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index 402a7ae..e600ecd 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -77,7 +77,7 @@ struct osmo_stat_item_group *osmo_stat_item_group_alloc( void *ctx, - const struct osmo_stat_item_group_desc *desc, + const struct osmo_stat_item_group_desc *group_desc, unsigned int idx); static inline void osmo_stat_item_group_udp_idx( diff --git a/src/stat_item.c b/src/stat_item.c index 87cbfea..1788746 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -94,7 +94,7 @@ * \param[in] idx Index of new stat item group */ struct osmo_stat_item_group *osmo_stat_item_group_alloc(void *ctx, - const struct osmo_stat_item_group_desc *desc, + const struct osmo_stat_item_group_desc *group_desc, unsigned int idx) { unsigned int group_size; @@ -105,7 +105,7 @@ struct osmo_stat_item_group *group; group_size = sizeof(struct osmo_stat_item_group) + - desc->num_items * sizeof(struct osmo_stat_item *); + group_desc->num_items * sizeof(struct osmo_stat_item *); if (!ctx) ctx = tall_stat_item_ctx; @@ -114,15 +114,15 @@ if (!group) return NULL; - group->desc = desc; + group->desc = group_desc; group->idx = idx; /* Get combined size of all items */ - for (item_idx = 0; item_idx < desc->num_items; item_idx++) { + for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { unsigned int size; size = sizeof(struct osmo_stat_item) + sizeof(struct osmo_stat_item_value) * - desc->item_desc[item_idx].num_values; + group_desc->item_desc[item_idx].num_values; /* Align to pointer size */ size = (size + sizeof(void *) - 1) & ~(sizeof(void *) - 1); @@ -139,18 +139,18 @@ } /* Update item pointers */ - for (item_idx = 0; item_idx < desc->num_items; item_idx++) { + for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { struct osmo_stat_item *item = (struct osmo_stat_item *) ((uint8_t *)items + (unsigned long)group->items[item_idx]); unsigned int i; group->items[item_idx] = item; - item->last_offs = desc->item_desc[item_idx].num_values - 1; + item->last_offs = group_desc->item_desc[item_idx].num_values - 1; item->stats_next_id = 1; - item->desc = &desc->item_desc[item_idx]; + item->desc = &group_desc->item_desc[item_idx]; for (i = 0; i <= item->last_offs; i++) { - item->values[i].value = desc->item_desc[item_idx].default_value; + item->values[i].value = group_desc->item_desc[item_idx].default_value; item->values[i].id = OSMO_STAT_ITEM_NOVALUE_ID; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I07bc011450549a44ebf043e7d8a70718ddfd900e Gerrit-Change-Number: 25461 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Mon Sep 20 13:05:29 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 20 Sep 2021 13:05:29 +0000 Subject: Change in libosmocore[master]: stats_test: assert counter and stat item val counts separately In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25462 ) Change subject: stats_test: assert counter and stat item val counts separately ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb Gerrit-Change-Number: 25462 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 13:05:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 13:05:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 20 Sep 2021 13:05:32 +0000 Subject: Change in libosmocore[master]: stats_test: assert counter and stat item val counts separately In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25462 ) Change subject: stats_test: assert counter and stat item val counts separately ...................................................................... stats_test: assert counter and stat item val counts separately Instead of just a send_count, keep one such count for the counter updates, and a separate one for the stat item updates. Print those numbers in the test output. An upcoming patch will tweak stat_item reporting so that only an actually changed value results in sending a new stat value. This patch allows illustrating that change clearly. Related: SYS#5542 Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb --- M tests/stats/stats_test.c M tests/stats/stats_test.err 2 files changed, 51 insertions(+), 57 deletions(-) Approvals: neels: 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/tests/stats/stats_test.c b/tests/stats/stats_test.c index 2f2c6ec..9489e60 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -246,7 +246,8 @@ /* define a special stats reporter for testing */ -static int send_count; +static int sent_counter_vals; +static int sent_stat_item_vals; enum { OSMO_STATS_REPORTER_TEST = OSMO_STATS_REPORTER_LOG + 1, @@ -265,7 +266,7 @@ group_name, ctrg ? ctrg->idx : 0, desc->name, (long long)value, (long long)delta); - send_count += 1; + sent_counter_vals++; return 0; } @@ -279,7 +280,7 @@ statg->desc->group_name_prefix, statg->idx, desc->name, value, desc->unit ? desc->unit : ""); - send_count += 1; + sent_stat_item_vals++; return 0; } @@ -310,6 +311,17 @@ return srep; } +static void _do_report(int expect_counter_vals, int expect_stat_item_vals, int line) +{ + sent_counter_vals = 0; + sent_stat_item_vals = 0; + osmo_stats_report(); + fprintf(stderr, "reported: %d counter vals, %d stat item vals\n", sent_counter_vals, sent_stat_item_vals); + OSMO_ASSERT(sent_counter_vals == expect_counter_vals); + OSMO_ASSERT(sent_stat_item_vals == expect_stat_item_vals); +} + +#define do_report(A, B) _do_report(A, B, __LINE__) static void test_reporting() { @@ -363,36 +375,28 @@ OSMO_ASSERT(rc >= 0); fprintf(stderr, "report (initial):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 20); + do_report(12, 8); fprintf(stderr, "report (srep1 global):\n"); /* force single flush */ osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_GLOBAL); srep1->force_single_flush = 1; srep2->force_single_flush = 1; - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 10); + do_report(6, 4); fprintf(stderr, "report (srep1 peer):\n"); /* force single flush */ osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_PEER); srep1->force_single_flush = 1; srep2->force_single_flush = 1; - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 14); + do_report(6, 8); fprintf(stderr, "report (srep1 subscriber):\n"); /* force single flush */ osmo_stats_reporter_set_max_class(srep1, OSMO_STATS_CLASS_SUBSCRIBER); srep1->force_single_flush = 1; srep2->force_single_flush = 1; - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 20); + do_report(12, 8); fprintf(stderr, "report (srep2 disabled):\n"); /* force single flush */ @@ -400,57 +404,39 @@ srep2->force_single_flush = 1; rc = osmo_stats_reporter_disable(srep2); OSMO_ASSERT(rc >= 0); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 10); + do_report(6, 4); fprintf(stderr, "report (srep2 enabled, no flush forced):\n"); rc = osmo_stats_reporter_enable(srep2); OSMO_ASSERT(rc >= 0); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 10); + do_report(6, 4); fprintf(stderr, "report (should be empty):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); fprintf(stderr, "report (group 1, counter 1 update):\n"); rate_ctr_inc(rate_ctr_group_get_ctr(ctrg1, TEST_A_CTR)); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(2, 0); fprintf(stderr, "report (group 1, item 1 update):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 update twice):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 update twice, check max):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 20); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 no update, send last item (!= last max), OS#5215):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 2); + do_report(0, 2); fprintf(stderr, "report (group 1, item 1 no update, nothing to send):\n"); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); fprintf(stderr, "report (remove statg1, ctrg1):\n"); /* force single flush */ @@ -458,40 +444,30 @@ srep2->force_single_flush = 1; osmo_stat_item_group_free(statg1); rate_ctr_group_free(ctrg1); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 12); + do_report(8, 4); fprintf(stderr, "report (remove srep1):\n"); /* force single flush */ srep1->force_single_flush = 1; srep2->force_single_flush = 1; osmo_stats_reporter_free(srep1); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 6); + do_report(4, 2); fprintf(stderr, "report (remove statg2):\n"); /* force single flush */ srep2->force_single_flush = 1; osmo_stat_item_group_free(statg2); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 4); + do_report(4, 0); fprintf(stderr, "report (remove srep2):\n"); /* force single flush */ srep2->force_single_flush = 1; osmo_stats_reporter_free(srep2); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); fprintf(stderr, "report (remove ctrg2, should be empty):\n"); rate_ctr_group_free(ctrg2); - send_count = 0; - osmo_stats_report(); - OSMO_ASSERT(send_count == 0); + do_report(0, 0); rate_ctr_group_free(ctrg3); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index daa3e5c..92d6ce1 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -31,6 +31,7 @@ test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 12 counter vals, 8 stat item vals report (srep1 global): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0 @@ -42,6 +43,7 @@ test2: item p= g=test.one i=2 n=item.b v=-1 u=kb test2: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 4 stat item vals report (srep1 peer): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0 @@ -57,6 +59,7 @@ test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 8 stat item vals report (srep1 subscriber): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -78,6 +81,7 @@ test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 12 counter vals, 8 stat item vals report (srep2 disabled): test2: close test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -90,6 +94,7 @@ test1: item p= g=test.one i=2 n=item.b v=-1 u=kb test1: item p= g=test.one i=1 n=item.a v=-1 u=ma test1: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 4 stat item vals report (srep2 enabled, no flush forced): test2: open test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -102,23 +107,31 @@ test2: item p= g=test.one i=2 n=item.b v=-1 u=kb test2: item p= g=test.one i=1 n=item.a v=-1 u=ma test2: item p= g=test.one i=1 n=item.b v=-1 u=kb +reported: 6 counter vals, 4 stat item vals report (should be empty): +reported: 0 counter vals, 0 stat item vals report (group 1, counter 1 update): test2: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1 test1: counter p= g=ctr-test:one i=1 n=ctr:a v=1 d=1 +reported: 2 counter vals, 0 stat item vals report (group 1, item 1 update): test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 update twice): test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 update twice, check max): test2: item p= g=test.one i=1 n=item.a v=20 u=ma test1: item p= g=test.one i=1 n=item.a v=20 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 no update, send last item (!= last max), OS#5215): test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma +reported: 0 counter vals, 2 stat item vals report (group 1, item 1 no update, nothing to send): +reported: 0 counter vals, 0 stat item vals report (remove statg1, ctrg1): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test1: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -132,6 +145,7 @@ test1: item p= g=test.one i=2 n=item.a v=-1 u=ma test2: item p= g=test.one i=2 n=item.b v=-1 u=kb test1: item p= g=test.one i=2 n=item.b v=-1 u=kb +reported: 8 counter vals, 4 stat item vals report (remove srep1): test1: close test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 @@ -140,12 +154,16 @@ test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0 test2: item p= g=test.one i=2 n=item.a v=-1 u=ma test2: item p= g=test.one i=2 n=item.b v=-1 u=kb +reported: 4 counter vals, 2 stat item vals report (remove statg2): test2: counter p= g=ctr-test:one_dot i=3 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one_dot i=3 n=ctr:b v=0 d=0 test2: counter p= g=ctr-test:one i=2 n=ctr:a v=0 d=0 test2: counter p= g=ctr-test:one i=2 n=ctr:b v=0 d=0 +reported: 4 counter vals, 0 stat item vals report (remove srep2): test2: close +reported: 0 counter vals, 0 stat item vals report (remove ctrg2, should be empty): +reported: 0 counter vals, 0 stat item vals End test: test_reporting -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2da003ee6ec15f1c3959efe69e01b4ee24af82bb Gerrit-Change-Number: 25462 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Mon Sep 20 13:13:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Mon, 20 Sep 2021 13:13:14 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 3: It makes no practical sense to keep the struct members. I cannot possibly know that all users out there in the world aren't accessing those members directly. That's why we have a policy to not do API breakage at all. And still, if anyone accesses those members, they will no longer get their intended results. So this is a dilemma of sorts. To me it seems accepting this API breakage is the best way. The *actual* cleanest way would be to abandon osmo_stat_item and implement osmo_stat_item2 instead. Then move all of our programs to osmo_stat_item2; and keep osmo_stat_item as idle cruft forever. That seems considerable effort that isn't needed when accepting the API breakage. But maybe the effort isn't that bad after all? One patch s/osmo_stat_item\>/osmo_stat_item2/g per git.osmocom.org repos? @laforge, what do you think? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 13:13:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 13:13:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 13:13:21 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 13:13:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 13:20:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 20 Sep 2021 13:20:37 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/src/osmo-bsc/bts_vty.c at 3279 PS1, Line 3279: disable all disable-all -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 20 Sep 2021 13:20:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 14:03:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:03:17 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/src/osmo-bsc/bts_vty.c at 3279 PS1, Line 3279: disable all > disable-all No, I did this on purpose. This way we can later add "ci-thresh-comp disable " VTY_CMD_CI_TYPE if we want too. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 20 Sep 2021 14:03:17 +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 Sep 20 14:03:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:03:51 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 14:03:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 14:07:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:07:23 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Disable threshold comparison on {LOWER, UPPER}_... 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/+/25514 to look at the new patch set (#2). Change subject: MS Power Control Loop: Disable threshold comparison on {LOWER,UPPER}_CMP_N=0 ...................................................................... MS Power Control Loop: Disable threshold comparison on {LOWER,UPPER}_CMP_N=0 This way we provide an effective way to disable C/I based decision taking in the MS Power Control Loop. With this set up, MS Power Level is decided only based on RxLev. This allows for working setup in following scenarios: * BTS L1 not passing proper C/I values to upper layers (eg. TRXDv0). * User not willing to spend time configuring proper C/I levels for each channel type. Related: SYS#4917 Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c --- M src/common/power_control.c 1 file changed, 10 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/25514/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c Gerrit-Change-Number: 25514 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 Sep 20 14:15:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:15:24 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:total In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25506 ) Change subject: stat: add bts.N.num_trx:total ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 Gerrit-Change-Number: 25506 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 14:15: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 Sep 20 14:17:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:17:54 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:rsl_connected In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25507 ) Change subject: stat: add bts.N.num_trx:rsl_connected ...................................................................... Patch Set 2: So if same counter exists, why not incrementing and decrementing it in the same place? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 Gerrit-Change-Number: 25507 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 14:17: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 Mon Sep 20 14:20:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:20:56 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 3: I think those fields are mostly aimed at internal use by stats reporter, and I don't think anyone should be using those directly out of libosmocore. That rationale and the other ones you provided together, I'd go for dropping them. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 14:20:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 14:25:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:25:08 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Fix oscillations within good MS Power Levels In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25503 ) Change subject: MS Power Control Loop: Fix oscillations within good MS Power Levels ...................................................................... MS Power Control Loop: Fix oscillations within good MS Power Levels Related: SYS#4917 Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 --- M src/common/power_control.c M tests/power/ms_power_loop_test.c M tests/power/ms_power_loop_test.err M tests/power/ms_power_loop_test.ok 4 files changed, 42 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/common/power_control.c b/src/common/power_control.c index 62905bd..a3334be 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -199,6 +199,7 @@ uint8_t rxlev_avg; int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; + bool ignore; if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; @@ -254,7 +255,29 @@ return 0; } - if (state->current == new_power_lvl) { + current_dbm = ms_pwr_dbm(band, state->current); + + /* In this Power Control Loop, we infer a new good MS Power Level based + * on the previous MS Power Level announced by the MS (not the previous + * one we requested!) together with the related computed measurements. + * Hence, and since we allow for several good MS Power Levels falling into our + * thresholds, we could finally converge into an oscillation loop where + * the MS bounces between 2 different correct MS Power levels all the + * time, due to the fact that we "accept" and "request back" whatever + * good MS Power Level we received from the MS, but at that time the MS + * will be transmitting using the previous MS Power Level we + * requested, which we will later "accept" and "request back" on next loop + * iteration. As a result MS effectively bounces between those 2 MS + * Power Levels. + * In order to fix this permanent oscillation, if current MS_PWR used/announced + * by MS is good ("ms_dbm == new_dbm", hence within thresholds and no change + * required) but has higher Tx power than the one we last requested, we ignore + * it and keep requesting for one with lower Tx power. This way we converge to + * the lowest good Tx power avoiding oscillating over values within thresholds. + */ + ignore = (ms_dbm == new_dbm && ms_dbm > current_dbm); + + if (state->current == new_power_lvl || ignore) { LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," " C/I[curr %d, avg %d, thresh %d..%d] dB\n", @@ -264,7 +287,6 @@ return 0; } - current_dbm = ms_pwr_dbm(band, state->current); LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power control level %d (%d dBm) => %d (%d dBm): " "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm," " C/I[curr %d, avg %d, thresh %d..%d] dB\n", diff --git a/tests/power/ms_power_loop_test.c b/tests/power/ms_power_loop_test.c index d8d1c71..e54d75f 100644 --- a/tests/power/ms_power_loop_test.c +++ b/tests/power/ms_power_loop_test.c @@ -398,11 +398,11 @@ lchan->ms_power_ctrl.current = 10; lchan->ms_power_ctrl.max = 2; - apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); - apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); - apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); - apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 1, 10); - apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 1, 9); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 10, good_rxlev, good_lqual, 0, 10); + apply_power_test_ext(lchan, 9, good_rxlev, good_lqual, 0, 10); } int main(int argc, char **argv) diff --git a/tests/power/ms_power_loop_test.err b/tests/power/ms_power_loop_test.err index 5a68e3b..07d9069 100644 --- a/tests/power/ms_power_loop_test.err +++ b/tests/power/ms_power_loop_test.err @@ -58,8 +58,8 @@ (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 11 (8 dBm) => 12 (6 dBm): ms-pwr-lvl[curr 11, max 2], RSSI[curr -100, avg -100, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 12 (6 dBm) => 13 (4 dBm): ms-pwr-lvl[curr 12, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 14, avg 14, thresh 12..16] dB (bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 13 (4 dBm) => 14 (2 dBm): ms-pwr-lvl[curr 13, max 2], RSSI[curr -60, avg -60, thresh -75..-75] dBm, C/I[curr 17, avg 17, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Lowering MS power control level 9 (12 dBm) => 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB -(bts=0,trx=0,ts=0,ss=0) Raising MS power control level 10 (10 dBm) => 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 10 (10 dBm): ms-pwr-lvl[curr 10, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB +(bts=0,trx=0,ts=0,ss=0) Keeping MS power at control level 9 (12 dBm): ms-pwr-lvl[curr 9, max 2], RSSI[curr -78, avg -78, thresh -80..-73] dBm, C/I[curr 14, avg 14, thresh 12..16] dB diff --git a/tests/power/ms_power_loop_test.ok b/tests/power/ms_power_loop_test.ok index 4dc01e4..09e19ad 100644 --- a/tests/power/ms_power_loop_test.ok +++ b/tests/power/ms_power_loop_test.ok @@ -166,14 +166,14 @@ MS current power 13 -> 14 (expected 14) Starting test case 'test_good_threshold_convergence' -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) - MS current power 9 -> 9 (expected 9) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) + MS current power 9 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) MS current power 10 -> 10 (expected 10) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) - MS current power 9 -> 9 (expected 9) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) + MS current power 9 -> 10 (expected 10) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) MS current power 10 -> 10 (expected 10) -lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 1 (expected 1) - MS current power 9 -> 9 (expected 9) +lchan_ms_pwr_ctrl(RxLvl=-78 dBm) returns 0 (expected 0) + MS current power 9 -> 10 (expected 10) Power loop test OK -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib33a94eba92004f9327c91e020a506dfa9a957c3 Gerrit-Change-Number: 25503 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 14:55:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 14:55:35 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 to look at the new patch set (#3). Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... nm_*fsm: Make FSMs aware of object being properly configured or not This will allow in the future advertising children objects that the parent object has been configured. It is useful for instance to let TRX know that the BTS is configured. Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 --- M include/osmo-bts/nm_common_fsm.h M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 15 files changed, 263 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/25505/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 Gerrit-PatchSet: 3 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 Mon Sep 20 15:41:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 20 Sep 2021 15:41:09 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Disable threshold comparison on {LOWER, UPPER}_... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25514 ) Change subject: MS Power Control Loop: Disable threshold comparison on {LOWER,UPPER}_CMP_N=0 ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c Gerrit-Change-Number: 25514 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 20 Sep 2021 15: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 Mon Sep 20 17:27:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:27:49 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Fix event name References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25515 ) Change subject: bts_shutdown_fsm: Fix event name ...................................................................... bts_shutdown_fsm: Fix event name Change-Id: Id042ae37f7c9dbd2edbb76932abb91d605d85e26 --- M src/common/bts_shutdown_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/25515/1 diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index a9db76f..c16b76a 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -197,7 +197,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), + OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_TRX_CLOSED), { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id042ae37f7c9dbd2edbb76932abb91d605d85e26 Gerrit-Change-Number: 25515 Gerrit-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 Sep 20 17:27:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:27:50 +0000 Subject: Change in osmo-bts[master]: trx_if: Set pointer to null after freeing it References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25516 ) Change subject: trx_if: Set pointer to null after freeing it ...................................................................... trx_if: Set pointer to null after freeing it Change-Id: Icd93c9968095a8801aafe9440806cb5786320cbc --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/25516/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 968c335..bfeb2ec 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1199,6 +1199,7 @@ talloc_free(tcm); } talloc_free(l1h->last_acked); + l1h->last_acked = NULL; } /*! close the TRX for given handle (data + control socket) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd93c9968095a8801aafe9440806cb5786320cbc Gerrit-Change-Number: 25516 Gerrit-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 Sep 20 17:27:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:27:51 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... trx_if: Allow calling trx_if_flush/close from within TRXC callback Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 7 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/25517/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bfeb2ec..687119a 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -707,6 +707,13 @@ rsp.cb = tcm->cb; + /* Remove command from list, save it to last_acked and remove previous + * last_acked. Do it before calling callback to avoid user freeing tcm + * pointer if flushing/closing the iface. */ + llist_del(&tcm->list); + talloc_free(l1h->last_acked); + l1h->last_acked = tcm; + /* check for response code */ rc = trx_ctrl_rx_rsp(l1h, &rsp, tcm); if (rc == -EINVAL) @@ -718,11 +725,6 @@ return 0; } - /* remove command from list, save it to last_acked and removed previous last_acked */ - llist_del(&tcm->list); - talloc_free(l1h->last_acked); - l1h->last_acked = tcm; - trx_ctrl_send(l1h); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-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 Sep 20 17:27:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:27:51 +0000 Subject: Change in osmo-bts[master]: trx_if: delete restrant timer when flushing the Tx queue References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25518 ) Change subject: trx_if: delete restrant timer when flushing the Tx queue ...................................................................... trx_if: delete restrant timer when flushing the Tx queue Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb --- M src/osmo-bts-trx/trx_if.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/25518/1 diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 687119a..22e912d 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1202,6 +1202,10 @@ } talloc_free(l1h->last_acked); l1h->last_acked = NULL; + + /* Tx queue is now empty, so there's no point in keeping the retrans timer armed: */ + if (osmo_timer_pending(&l1h->trx_ctrl_timer)) + osmo_timer_del(&l1h->trx_ctrl_timer); } /*! close the TRX for given handle (data + control socket) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb Gerrit-Change-Number: 25518 Gerrit-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 Sep 20 17:27:51 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:27:51 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... trx_provision_fsm: Properly reset FSM state upon starting listening for events Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 52 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/19/25519/1 diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 19cbc8b..660360d 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -92,6 +92,57 @@ /* * transceiver provisioning */ + +static void trx_provision_reset(struct trx_l1h *l1h) +{ + struct phy_instance *pinst = l1h->phy_inst; + uint8_t tn; + + l1h->config.trxd_pdu_ver_req = pinst->phy_link->u.osmotrx.trxd_pdu_ver_max; + l1h->config.trxd_pdu_ver_use = 0; + l1h->config.setformat_sent = false; + l1h->config.setformat_acked = false; + + l1h->config.enabled = false; + l1h->config.arfcn_valid = false; + l1h->config.arfcn = 0; + l1h->config.rxtune_sent = false; + l1h->config.rxtune_acked = false; + l1h->config.txtune_sent = false; + l1h->config.txtune_acked = false; + + l1h->config.tsc_valid = false; + l1h->config.tsc = 0; + l1h->config.tsc_sent = false; + l1h->config.tsc_acked = false; + + l1h->config.bsic_valid = false; + l1h->config.bsic = 0; + l1h->config.bsic_sent = false; + l1h->config.bsic_acked = false; + + l1h->config.rxgain_valid = false; + l1h->config.rxgain = 0; + l1h->config.rxgain_sent = false; + + l1h->config.nomtxpower_sent = false; + l1h->config.nomtxpower_acked = false; + + l1h->config.maxdly_valid = false; + l1h->config.maxdly_sent = false; + + l1h->config.maxdlynb_valid = false; + l1h->config.maxdlynb_sent = false; + + for (tn = 0; tn < TRX_NR_TS; tn++) { + l1h->config.setslot_valid[tn] = false; + l1h->config.setslot_sent[tn] = false; + l1h->config.setslot[tn].slottype = 0; + l1h->config.setslot[tn].tsc_set = 0; + l1h->config.setslot[tn].tsc_val = 0; + l1h->config.setslot[tn].tsc_valid = 0; + } +} int l1if_provision_transceiver_trx(struct trx_l1h *l1h) { struct phy_instance *pinst = l1h->phy_inst; @@ -274,7 +325,7 @@ struct trx_l1h *l1h = (struct trx_l1h *)fi->priv; struct phy_instance *pinst = l1h->phy_inst; - l1h->config.trxd_pdu_ver_req = pinst->phy_link->u.osmotrx.trxd_pdu_ver_max; + trx_provision_reset(l1h); /* Apply initial RFMUTE state */ if (pinst->trx != NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 Gerrit-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 Sep 20 17:31:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:31:14 +0000 Subject: Change in osmo-bts[master]: trx_if: delete retrans timer when flushing the Tx queue In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/25518 ) Change subject: trx_if: delete retrans timer when flushing the Tx queue ...................................................................... trx_if: delete retrans timer when flushing the Tx queue Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb --- M src/osmo-bts-trx/trx_if.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/25518/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb Gerrit-Change-Number: 25518 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 Sep 20 17:31:14 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:31:14 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... In-Reply-To: References: Message-ID: pespin has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... trx_provision_fsm: Properly reset FSM state upon starting listening for events Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 52 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/19/25519/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 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 Sep 20 17:31:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:31:37 +0000 Subject: Change in osmo-pcu[master]: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25504 ) Change subject: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 Gerrit-Change-Number: 25504 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 17:31:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 17:31:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:31:39 +0000 Subject: Change in osmo-pcu[master]: PTCCH: skip Tx DL idle blocks when possible In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25509 ) Change subject: PTCCH: skip Tx DL idle blocks when possible ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 Gerrit-Change-Number: 25509 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 20 Sep 2021 17:31: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 Sep 20 17:31:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:31:45 +0000 Subject: Change in osmo-pcu[master]: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25504 ) Change subject: scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode ...................................................................... scheduler: Skip Tx DL idle blocks in TRX0 when not in DIRECT_PHY mode We also want to avoid sending idle blocs in TRX0 to the BTS, so that the BTS can be aware of blocks being idle and then submitting dummy blokcs by itself applying required BCCH Carrier power reduction. Related: SYS#4919 Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 --- M src/gprs_rlcmac_sched.cpp 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 08f43cd..405b7db 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -498,7 +498,13 @@ */ const unsigned num_tbfs = pdch->num_tbfs(GPRS_RLCMAC_DL_TBF) + pdch->num_tbfs(GPRS_RLCMAC_UL_TBF); - if (trx != 0 && num_tbfs == 0) + bool skip_idle = (num_tbfs == 0); +#ifdef ENABLE_DIRECT_PHY + /* In DIRECT_PHY mode we want to always submit something to L1 in + * TRX0, since BTS is not preparing dummy bursts on idle TS for us */ + skip_idle = skip_idle && trx != 0; +#endif + if (skip_idle) return 0; if ((msg = sched_dummy())) { /* increase counter */ -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Idd58d2a09c3947098b960cfcb5cd1b7b7bca3d84 Gerrit-Change-Number: 25504 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 20 17:31:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 20 Sep 2021 17:31:45 +0000 Subject: Change in osmo-pcu[master]: PTCCH: skip Tx DL idle blocks when possible In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25509 ) Change subject: PTCCH: skip Tx DL idle blocks when possible ...................................................................... PTCCH: skip Tx DL idle blocks when possible Same was already done for PDTCH in previous commits. Let's now apply same bits to PTCCH. Related: SYS#4919 Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 --- M src/pcu_l1_if.cpp 1 file changed, 16 insertions(+), 0 deletions(-) Approvals: osmith: 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/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 25c1933..1600da0 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -531,6 +531,22 @@ if (!pdch->m_is_enabled) return -EAGAIN; + /* If there's no TBF attached to this PDCH, we can skip Tx of PTCCH + * since there's nothing worthy of being transmitted. This way BTS can + * identify idle blocks and send nothing or dumy blocks with reduced + * energy for the sake of energy saving. + */ + const unsigned num_tbfs = pdch->num_tbfs(GPRS_RLCMAC_DL_TBF) + + pdch->num_tbfs(GPRS_RLCMAC_UL_TBF); + bool skip_idle = (num_tbfs == 0); +#ifdef ENABLE_DIRECT_PHY + /* In DIRECT_PHY mode we want to always submit something to L1 in + * TRX0, since BTS is not preparing dummy bursts on idle TS for us: */ + skip_idle = skip_idle && trx != 0; +#endif + if (skip_idle) + return 0; + pcu_l1if_tx_ptcch(bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr, pdch->ptcch_msg, GSM_MACBLOCK_LEN); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: If6617964e67fc35eeee1791b06e13bf63ac88f73 Gerrit-Change-Number: 25509 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 08:40:41 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 08:40:41 +0000 Subject: Change in osmo-dev[master]: all-tests.opts: add osmo-pcu References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-dev/+/25520 ) Change subject: all-tests.opts: add osmo-pcu ...................................................................... all-tests.opts: add osmo-pcu Change-Id: I6d9b8553482868a7fe4ee127dd9e722b748b55a9 --- M all-tests.opts 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-dev refs/changes/20/25520/1 diff --git a/all-tests.opts b/all-tests.opts index 973b563..f0075ac 100644 --- a/all-tests.opts +++ b/all-tests.opts @@ -4,3 +4,4 @@ osmo-sgsn --enable-external-tests --enable-vty-tests osmo-mgw --enable-external-tests --enable-vty-tests osmo-hlr --enable-external-tests +osmo-pcu --enable-vty-tests -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6d9b8553482868a7fe4ee127dd9e722b748b55a9 Gerrit-Change-Number: 25520 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 10:28:02 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 21 Sep 2021 10:28:02 +0000 Subject: Change in osmo-dev[master]: gen_makefile.py: drop argument for deps file In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25233 ) Change subject: gen_makefile.py: drop argument for deps file ...................................................................... Patch Set 2: (4 comments) posted my nitpicks but you can also just fix the typo and merge it. don't spend too much time on it. https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/README File README: https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/README at 43 PS2, Line 43: Run ./gen_makefile.py with a choice of choice of configure options. meta choice https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/gen_makefile.py File gen_makefile.py: https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/gen_makefile.py at 248 PS2, Line 248: continue i kind of like to keep that explicit .deps argument; now you did all the work to remove it. "explicit is better than implicit" well it doesn't really matter either way, will have zero impact on my daily work. it's just a personal preference of mine to allow a .deps file arg https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/gen_makefile.py at 255 PS2, Line 255: make_dir = 'make-3G+2G-%s' % opts_names let's just drop '-3G+2G'? https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/gen_makefile.py at 277 PS2, Line 277: default: usrp Maybe as default just print a listing of existing meaningful targets? because if you like usrp and i like cn, we can't agree. that was the advantage of the custom .deps file, 'make all' would build your choice. we could pass a favorite default target to gen_makefile.py but IMO not worth the trouble -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f Gerrit-Change-Number: 25233 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 21 Sep 2021 10:28:02 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 10:28:34 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 21 Sep 2021 10:28:34 +0000 Subject: Change in osmo-dev[master]: all.deps: add asn1c, osmo-gbproxy, osmo-pcap In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25234 ) Change subject: all.deps: add asn1c, osmo-gbproxy, osmo-pcap ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ic9f57d454d245631b24c9c8c14a8ea806587b33b Gerrit-Change-Number: 25234 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 10:28:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 10:28:47 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 21 Sep 2021 10:28:47 +0000 Subject: Change in osmo-dev[master]: all-tests.opts: add osmo-pcu In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25520 ) Change subject: all-tests.opts: add osmo-pcu ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6d9b8553482868a7fe4ee127dd9e722b748b55a9 Gerrit-Change-Number: 25520 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 21 Sep 2021 10:28:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 10:28:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 10:28:48 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 10 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 10:28: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 Sep 21 10:28:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 10:28:52 +0000 Subject: Change in osmo-pcu[master]: pdch: has_gprs_only_tb_attached: use m_num_tbfs In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25401 ) Change subject: pdch: has_gprs_only_tb_attached: use m_num_tbfs ...................................................................... pdch: has_gprs_only_tb_attached: use m_num_tbfs Make use of the separate GPRS counters added in previous patch I0c0a1121b4ae5f031782e7e63a0c28eb0b6c8b42 to shorten has_gprs_only_tb_attached. Related: SYS#4878 Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae --- M src/pdch.cpp 1 file changed, 2 insertions(+), 12 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/pdch.cpp b/src/pdch.cpp index d10ee4a..19d57a2 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -1114,18 +1114,8 @@ bool gprs_rlcmac_pdch::has_gprs_only_tbf_attached() const { - unsigned int i; - unsigned int j; - for (i = 0; i < sizeof(m_assigned_tfi[0]); i++) { - for (j = 0; j < 2; j++) { - if (m_assigned_tfi[j] & (1UL << i)) { - gprs_rlcmac_tbf *tbf = m_tbfs[j][i]; - if (!tbf->is_egprs_enabled()) - return true; - } - } - } - return false; + return (m_num_tbfs_gprs[GPRS_RLCMAC_UL_TBF] + + m_num_tbfs_gprs[GPRS_RLCMAC_DL_TBF]) > 0; } void gprs_rlcmac_pdch::reserve(enum gprs_rlcmac_tbf_direction dir) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I1dd7df2c740ea604f07c65bebcb7c0051aebf9ae Gerrit-Change-Number: 25401 Gerrit-PatchSet: 11 Gerrit-Owner: osmith 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 Sep 21 10:36:19 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 21 Sep 2021 10:36:19 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 3: > Patch Set 3: > > I think those fields are mostly aimed at internal use by stats reporter, and I don't think anyone should be using those directly out of libosmocore. well, "think" and "should" is the problem: it is public API and this patch breaks it. This is a case of deciding to break an axiomatic principle because we're pretty sure to get away with it. It really seems ok to do it, but it's objectively wrong from the underlying libosmo* release principles. I'd like to have Harald's opinion on that. I'm kind of leaning towards making osmo_stats_item2 instead. We could then also streamline the new API a bit. If Harald thinks that that's obsessive compulsive perfectionism and not worth the time, then I'd be ok to drop those struct members instead. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 10:36: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 Sep 21 12:14:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 12:14:56 +0000 Subject: Change in osmo-trx[master]: lms: Drop duplicated check References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25521 ) Change subject: lms: Drop duplicated check ...................................................................... lms: Drop duplicated check Same check is already done by set_band(). Change-Id: I48d14f35e83fa17d1a8f4154479f0a5cee0f816d --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/21/25521/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9b6c792..30fd665 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -1013,12 +1013,6 @@ 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_band(req_band)) return false; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I48d14f35e83fa17d1a8f4154479f0a5cee0f816d Gerrit-Change-Number: 25521 Gerrit-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 Sep 21 12:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 12:14:57 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Validate band of RxFreq too References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25522 ) Change subject: lms,uhd: Validate band of RxFreq too ...................................................................... lms,uhd: Validate band of RxFreq too So far the validation is only done on TxFreq for all TRX. Let's also do it for RxFreq. Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/25522/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 30fd665..7aa8aa6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -1026,8 +1026,25 @@ bool LMSDevice::setRxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + LOGCHAN(chan, DDEV, NOTICE) << "Setting Rx 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 (!set_band(req_band)) + return false; + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_RX, chan, wFreq) < 0) { LOGCHAN(chan, DDEV, ERROR) << "Error setting Rx Freq to " << wFreq << " Hz"; return false; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 5486822..dd0a420 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -1102,12 +1102,29 @@ bool uhd_device::setRxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + if (chan >= rx_freqs.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; return false; } ScopedLock lock(tune_lock); + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100 , 1); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Rx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Rx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (!set_band(req_band)) + return false; + return set_freq(wFreq, chan, false); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 Gerrit-Change-Number: 25522 Gerrit-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 Sep 21 12:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 12:14:57 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Skip re-assigning same band References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25523 ) Change subject: lms,uhd: Skip re-assigning same band ...................................................................... lms,uhd: Skip re-assigning same band There's no need to spend time looking up again the same band description. Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/23/25523/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 7aa8aa6..a83e04f 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -246,8 +246,10 @@ return false; } - band = req_band; - assign_band_desc(band); + if (band == 0) { + band = req_band; + assign_band_desc(band); + } return true; } diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index dd0a420..9375aa9 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -264,8 +264,10 @@ return false; } - band = req_band; - assign_band_desc(band); + if (band == 0) { + band = req_band; + assign_band_desc(band); + } return true; } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 Gerrit-Change-Number: 25523 Gerrit-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 Sep 21 12:14:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 12:14:57 +0000 Subject: Change in osmo-trx[master]: lms, uhd: Allow changing band between poweroff & poweron References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-trx/+/25524 ) Change subject: lms,uhd: Allow changing band between poweroff & poweron ...................................................................... lms,uhd: Allow changing band between poweroff & poweron Before this patch, reconnecting to osmo-trx and attempting to configure it for another band is not going to work without restarting the process. The new variable is added in order to still allow POWEROFF followed by a POWERON without need to reconfigure the device. In that case, previous configuration is kept. Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 4 files changed, 16 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/24/25524/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index a83e04f..68db6c7 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -134,8 +134,9 @@ LMSDevice::LMSDevice(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), - m_lms_dev(NULL), started(false), band((enum gsm_band)0), m_dev_type(LMS_DEV_UNKNOWN) + RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), + m_lms_dev(NULL), started(false), band_ass_curr_sess(false), band((enum gsm_band)0), + m_dev_type(LMS_DEV_UNKNOWN) { LOGC(DDEV, INFO) << "creating LMS device..."; @@ -240,16 +241,17 @@ bool LMSDevice::set_band(enum gsm_band req_band) { - if (band != 0 && req_band != band) { + if (band_ass_curr_sess && req_band != band) { LOGC(DDEV, ALERT) << "Requesting band " << gsm_band_name(req_band) << " different from previous band " << gsm_band_name(band); return false; } - if (band == 0) { + if (req_band != band) { band = req_band; assign_band_desc(band); } + band_ass_curr_sess = true; return true; } @@ -466,6 +468,8 @@ LMS_DestroyStream(m_lms_dev, &m_lms_stream_rx[i]); } + band_ass_curr_sess = false; + started = false; return true; } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 4ce8ed6..ab28250 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -87,6 +87,7 @@ TIMESTAMP ts_initial, ts_offset; std::vector tx_gains, rx_gains; + bool band_ass_curr_sess; /* true if "band" was set after last POWEROFF */ enum gsm_band band; struct dev_band_desc band_desc; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 9375aa9..33bf778 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -225,7 +225,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), - rx_gain_min(0.0), rx_gain_max(0.0), + rx_gain_min(0.0), rx_gain_max(0.0), band_ass_curr_sess(false), 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) @@ -258,16 +258,17 @@ bool uhd_device::set_band(enum gsm_band req_band) { - if (band != 0 && req_band != band) { + if (band_ass_curr_sess && req_band != band) { LOGC(DDEV, ALERT) << "Requesting band " << gsm_band_name(req_band) << " different from previous band " << gsm_band_name(band); return false; } - if (band == 0) { + if (req_band != band) { band = req_band; assign_band_desc(band); } + band_ass_curr_sess = true; return true; } @@ -795,6 +796,8 @@ for (size_t i = 0; i < rx_buffers.size(); i++) rx_buffers[i]->reset(); + band_ass_curr_sess = false; + started = false; return true; } diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 995b43c..659fd18 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -160,6 +160,7 @@ std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; + bool band_ass_curr_sess; /* true if "band" was set after last POWEROFF */ enum gsm_band band; struct dev_band_desc band_desc; size_t tx_spp, rx_spp; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 Gerrit-Change-Number: 25524 Gerrit-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 Sep 21 12:58:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 12:58:44 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In oml_rx_set_bts_attr, arfcn for C0 is assigned from NM_ATT_BCCH_ARFCN. The rest of the TRX get their arfcn from oml_rx_set_radio_attr() NM_ATT_ARFCN_LIST. Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/25525/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 90adde2..a3282ee 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -230,13 +230,20 @@ /* set bts attributes */ static uint8_t trx_set_bts(struct gsm_bts *bts, struct tlv_parsed *new_attr) { - struct gsm_bts_trx *trx; + struct phy_instance *pinst = trx_phy_instance(bts->c0); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; uint8_t bsic = bts->bsic; + struct gsm_bts_trx *trx; + struct phy_link *plink; + + /* ARFCN for C0 is assigned during Set BTS Attr, see oml.c */ + osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void*)(intptr_t)pinst->trx->arfcn); llist_for_each_entry(trx, &bts->trx_list, list) { - struct phy_instance *pinst = trx_phy_instance(trx); - struct phy_link *plink = pinst->phy_link; - struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + pinst = trx_phy_instance(trx); + l1h = pinst->u.osmotrx.hdl; + plink = pinst->phy_link; + osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_BSIC, (void*)(intptr_t)bsic); check_transceiver_availability_trx(l1h, phy_link_state_get(plink) != PHY_LINK_SHUTDOWN); } @@ -252,7 +259,9 @@ struct phy_link *plink = pinst->phy_link; uint16_t arfcn = trx->arfcn; - osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void*)(intptr_t)arfcn); + /* ARFCN for C0 is assigned during Set BTS Attr, see oml.c */ + if (trx != trx->bts->c0) + osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void*)(intptr_t)arfcn); /* 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 Gerrit-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 Sep 21 13:00:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 13:00:48 +0000 Subject: Change in osmo-bts[master]: bts-trx: Get rid of check_transceiver_availability_trx() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25526 ) Change subject: bts-trx: Get rid of check_transceiver_availability_trx() ...................................................................... bts-trx: Get rid of check_transceiver_availability_trx() Get rid of this helper function, which is a remain of past epochs (pre-FSM). In the current uses, there's only 2 real cases: the "if" path upon SET BTS ATTR received (and even that one should be moved as per what the code comment states), and the one happening when the TRX is closed. it really makes no sense to DISABLE the TRX as a result of SET BTS ATTR. Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a --- M src/osmo-bts-trx/l1_if.c 1 file changed, 10 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/26/25526/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index a3282ee..0b96017 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -87,26 +87,6 @@ return l1h; } -static void check_transceiver_availability_trx(struct trx_l1h *l1h, int avail) -{ - struct phy_instance *pinst = l1h->phy_inst; - struct gsm_bts_trx *trx = pinst->trx; - - /* HACK, we should change state when we receive first clock from - * transceiver */ - if (avail) { - /* signal availability */ - if (!pinst->u.osmotrx.sw_act_reported) { - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SW_ACT, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); - pinst->u.osmotrx.sw_act_reported = true; - } - } else { - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_DISABLE, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); - } -} - int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { if (lchan->rel_act_kind == LCHAN_REL_ACT_REACT) { @@ -211,7 +191,8 @@ osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CLOSE, NULL); /* Set to Operational State: Disabled */ - check_transceiver_availability_trx(l1h, 0); + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_DISABLE, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } /* on RSL failure, deactivate transceiver */ @@ -234,7 +215,6 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; uint8_t bsic = bts->bsic; struct gsm_bts_trx *trx; - struct phy_link *plink; /* ARFCN for C0 is assigned during Set BTS Attr, see oml.c */ osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void*)(intptr_t)pinst->trx->arfcn); @@ -242,10 +222,16 @@ llist_for_each_entry(trx, &bts->trx_list, list) { pinst = trx_phy_instance(trx); l1h = pinst->u.osmotrx.hdl; - plink = pinst->phy_link; osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_BSIC, (void*)(intptr_t)bsic); - check_transceiver_availability_trx(l1h, phy_link_state_get(plink) != PHY_LINK_SHUTDOWN); + /* signal availability */ + if (!pinst->u.osmotrx.sw_act_reported) { + /* HACK, we should change state when we receive first clock from + * transceiver */ + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SW_ACT, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); + pinst->u.osmotrx.sw_act_reported = true; + } } return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a Gerrit-Change-Number: 25526 Gerrit-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 Sep 21 13:03:11 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 13:03:11 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... bts-trx: Avoid race condition configuring TS-specific TSC values In OML, if Set Attributes comes first for Channel object and then for BTS object, BSIC will still not be set. Hence, when applying Channel (TS) specific TSC, the code would compare against an unset value, enabling use of TRXC extensions (which osmo-trx doesn't support) without need for it, since actually the TSC of the TS matches the BSIC of the BTS once both are set. In order to fix it, don't check for the BSIC when receiving the OML messages, but rather later when we apply the settings to the the lower layers once trx_provision_fsm allows for it. Fixes: 3c1151f9456bdf0d7348c27c0cabbb41e84fcbbc Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/trx_if.c 2 files changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/25527/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 0b96017..97c140e 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -292,7 +292,7 @@ struct trx_prov_ev_cfg_ts_data data = { .tn = tn, .slottype = slottype }; - if (ts->tsc_set != 0 || ts->tsc != BTS_TSC(ts->trx->bts)) { + if (ts->tsc_set != 0) { /* On TRXC we use 3GPP compliant numbering, so +1 */ data.tsc_set = ts->tsc_set + 1; data.tsc_val = ts->tsc; diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 22e912d..29a3663 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -332,8 +332,10 @@ trx_if_cmd_setslot_cb *cb) { const struct trx_config *cfg = &l1h->config; + const struct phy_instance *pinst = l1h->phy_inst; - if (cfg->setslot[tn].tsc_valid) { /* PHY is instructed to use a custom TSC */ + if (cfg->setslot[tn].tsc_valid && cfg->setslot[tn].tsc_val != BTS_TSC(pinst->trx->bts)) { + /* PHY is instructed to use a custom TSC */ return trx_ctrl_cmd_cb(l1h, 1, cb, "SETSLOT", "%u %u C%u/S%u", tn, cfg->setslot[tn].slottype, cfg->setslot[tn].tsc_val, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-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 Sep 21 13:41:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 13:41:30 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr 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/+/25525 to look at the new patch set (#2). Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In oml_rx_set_bts_attr, arfcn for C0 is assigned from NM_ATT_BCCH_ARFCN. The rest of the TRX get their arfcn from oml_rx_set_radio_attr() NM_ATT_ARFCN_LIST. Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/25525/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 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 Sep 21 14:45:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:45:08 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc File doc/manuals/chapters/power_control.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc at 348 PS1, Line 348: NOTE: The BSC can instruct a BTS to disable C/I related logic in its Not sure if this is an Osmocom specific feature, but if so, I'd mention it here. https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc at 349 PS1, Line 349: no not -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 21 Sep 2021 14:45: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 Tue Sep 21 14:51:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 14:51:25 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 to look at the new patch set (#2). Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... MS Power Control Loop: Support turn off C/I based logic Setting LOWER_CMP_N and UPPER_CMP_N for all channel types can be quite cumbersome and end up in lengthy config files. Let's instead add a placeholder command to apply it to all channel types of a BTS at once. This is useful specially since a user disabling C/I capabilities probably does so because it may require a fair amount of fine-tuning parameters to have it working perfectly. Hence, a user not willing to spend time configuring those parameters correctly (and for which default ones doesn't work properly) will require quick way to get rid of C/I based MS Power Control Loop. By disabling C/I comparison, osmo-bts will rely on RxLev only when applying the MS Power Control Loop, which is fine for non noisy environments. Related: SYS#4917 Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bts_vty.c M tests/power_ctrl.vty 3 files changed, 77 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/13/25513/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:52:27 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:52:27 +0000 Subject: Change in osmo-dev[master]: gen_makefile.py: drop argument for deps file In-Reply-To: References: Message-ID: Hello neels, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-dev/+/25233 to look at the new patch set (#3). Change subject: gen_makefile.py: drop argument for deps file ...................................................................... gen_makefile.py: drop argument for deps file Rename 3G+2G.deps to all.deps and remove the parameter from gen_makefile.py. Create new Makefile targets for the various use cases, usually we build either 'cn-bsc' or 'usrp'. The next patch will add more projects to all.deps. This change brings the Makefile logic closer to how it is actually used, one build directory that is building most Osmocom projects. New projects can be added to all.deps on demand, but then we have it in the repository and not just a local change that we add temporarily to the 3G+2G.deps file when we need to build a specific project. Extend all.deps with projects needed by ttcn3.sh, so it doesn't need to write its custom .deps file anymore. Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f --- D 2G.deps M README R all.deps M gen_makefile.py M ttcn3/ttcn3.sh 5 files changed, 73 insertions(+), 62 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-dev refs/changes/33/25233/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f Gerrit-Change-Number: 25233 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:52:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:52:52 +0000 Subject: Change in osmo-dev[master]: gen_makefile.py: drop argument for deps file In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25233 ) Change subject: gen_makefile.py: drop argument for deps file ...................................................................... Patch Set 2: (1 comment) > Patch Set 2: > > (4 comments) > > posted my nitpicks but you can also just fix the typo and merge it. > don't spend too much time on it. Ack https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/gen_makefile.py File gen_makefile.py: https://gerrit.osmocom.org/c/osmo-dev/+/25233/2/gen_makefile.py at 255 PS2, Line 255: make_dir = 'make-3G+2G-%s' % opts_names > let's just drop '-3G+2G'? Done -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f Gerrit-Change-Number: 25233 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Comment-Date: Tue, 21 Sep 2021 14:52:52 +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 Sep 21 14:53:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:53:48 +0000 Subject: Change in osmo-dev[master]: gen_makefile.py: drop argument for deps file In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25233 ) Change subject: gen_makefile.py: drop argument for deps file ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f Gerrit-Change-Number: 25233 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 14: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 Tue Sep 21 14:53:53 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:53:53 +0000 Subject: Change in osmo-dev[master]: all.deps: add asn1c, osmo-gbproxy, osmo-pcap In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25234 ) Change subject: all.deps: add asn1c, osmo-gbproxy, osmo-pcap ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ic9f57d454d245631b24c9c8c14a8ea806587b33b Gerrit-Change-Number: 25234 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 14:53: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 Sep 21 14:53:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:53:58 +0000 Subject: Change in osmo-dev[master]: all-tests.opts: add osmo-pcu In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25520 ) Change subject: all-tests.opts: add osmo-pcu ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6d9b8553482868a7fe4ee127dd9e722b748b55a9 Gerrit-Change-Number: 25520 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 14:53:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:54:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:54:01 +0000 Subject: Change in osmo-dev[master]: gen_makefile.py: drop argument for deps file In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25233 ) Change subject: gen_makefile.py: drop argument for deps file ...................................................................... gen_makefile.py: drop argument for deps file Rename 3G+2G.deps to all.deps and remove the parameter from gen_makefile.py. Create new Makefile targets for the various use cases, usually we build either 'cn-bsc' or 'usrp'. The next patch will add more projects to all.deps. This change brings the Makefile logic closer to how it is actually used, one build directory that is building most Osmocom projects. New projects can be added to all.deps on demand, but then we have it in the repository and not just a local change that we add temporarily to the 3G+2G.deps file when we need to build a specific project. Extend all.deps with projects needed by ttcn3.sh, so it doesn't need to write its custom .deps file anymore. Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f --- D 2G.deps M README R all.deps M gen_makefile.py M ttcn3/ttcn3.sh 5 files changed, 73 insertions(+), 62 deletions(-) Approvals: osmith: Looks good to me, approved; Verified diff --git a/2G.deps b/2G.deps deleted file mode 100644 index c090b6e..0000000 --- a/2G.deps +++ /dev/null @@ -1,18 +0,0 @@ -# project build these first -libosmocore -libosmo-abis libosmocore -libosmo-netif libosmo-abis -libosmo-sccp libosmo-netif -libsmpp34 -osmo-ggsn libosmocore -osmo-hlr libosmo-abis -osmo-mgw libosmo-netif -osmo-msc libosmo-sccp osmo-mgw libsmpp34 osmo-hlr -osmo-bsc libosmo-sccp osmo-mgw -osmo-sgsn libosmo-sccp osmo-ggsn osmo-hlr -osmo-sip-connector libosmocore -osmo-smlc libosmo-sccp -# osmo-trx can build with --enable-sanitize, but then won't work reliably. -# When omitting --enable-sanitize from osmo-trx only, its 'make check' will fail. -# So if you want osmo-trx, uncomment and use no sanitize.opts, or use LD_PRELOAD for osmo-trx binaries. -#osmo-trx libosmocore diff --git a/README b/README index 7e34680..ac77424 100644 --- a/README +++ b/README @@ -15,7 +15,7 @@ libdbd-sqlite3 libsqlite3-dev libpcap-dev libc-ares-dev libgnutls28-dev \ libsctp-dev sqlite3 -./gen_makefile.py 3G+2G.deps default.opts iu.opts -I -m make +./gen_makefile.py default.opts iu.opts -I -m make cd make make @@ -40,29 +40,39 @@ The idea is to have all your Osmocom git clones in ./src, while keeping one or more separate build trees in ./make-*. -Run ./gen_makefile.py with a choice of projects (2G only or also 3G?) -and a choice of configure options. +Run ./gen_makefile.py with a choice of choice of configure options. Examples: -Full 2G and 3G support: +CN with full 2G and 3G support: - ./gen_makefile.py 3G+2G.deps default.opts iu.opts -m make + ./gen_makefile.py default.opts iu.opts -m make cd make - make + make cn -2G only, and a custom dir name of 'make-2G': +Other make targets exist for specific use cases: - ./gen_makefile.py 2G.deps default.opts -m make-2G - cd make-2G - make + - 'usrp': + Build the CN, OsmoBSC, OsmoBTS and OsmoTRX (default, e.g. when connecting + to an USRP) + + - 'cn-bsc': + Build the CN and OsmoBSC (e.g. when connecting to an external sysmoBTS) + + - 'osmo-msc': + Build only the OsmoMSC project and its dependencies (this can be used for + any project in all.deps). + + - '.make.osmo-ttcn3-hacks.clone' + Clone the osmo-ttcn3-hacks git repository (it cannot be built by osmo-dev, + but cloning it is still useful.) If you make modifications in one of the source trees, this Makefile will pick -it up, rebuild the project and also rebuild all dependencies (according to the -*.deps file the Makefile was generated from). +it up, rebuild the project and also rebuild all dependencies (according to +all.deps). -If you modify the *.deps or *.opts file, you can easily run 'make regen' in a +If you modify the all.deps or *.opts file, you can easily run 'make regen' in a make-* subdir to regenerate the Makefile from the same files. In your make-* subdir there are empty status files that are touched for every @@ -72,7 +82,7 @@ For example, if you 'rm .make.libosmocore.autoconf', libosmocore and all projects depending on libosmocore will be rebuilt from scratch. -For more details on the *.opts and *.deps syntax, read the docs at the top of +For more details on the *.opts and all.deps syntax, read the docs at the top of ./gen_makefile.py. It is also easily possible to keep sources and build trees in various diff --git a/3G+2G.deps b/all.deps similarity index 75% rename from 3G+2G.deps rename to all.deps index b4372fd..26e0cf4 100644 --- a/3G+2G.deps +++ b/all.deps @@ -17,5 +17,10 @@ osmo-smlc libosmo-sccp # osmo-trx can build with --enable-sanitize, but then won't work reliably. # When omitting --enable-sanitize from osmo-trx only, its 'make check' will fail. -# So if you want osmo-trx, uncomment and use no sanitize.opts, or use LD_PRELOAD for osmo-trx binaries. -#osmo-trx libosmocore +# So if you want osmo-trx, use no sanitize.opts, or use LD_PRELOAD for osmo-trx binaries. +osmo-trx libosmocore +osmo-pcu libosmocore + +# can only clone these +docker-playground +osmo-ttcn3-hacks diff --git a/gen_makefile.py b/gen_makefile.py index 81d41e7..c08ca4e 100755 --- a/gen_makefile.py +++ b/gen_makefile.py @@ -2,20 +2,19 @@ ''' Generate a top-level makefile that builds the Osmocom 2G + 3G network components. - ./gen_makefile.py projects.deps [configure.opts [more.opts]] [-o Makefile.output] + ./gen_makefile.py [configure.opts [more.opts]] [-o Makefile.output] Configured by text files: - *.deps: whitespace-separated listing of + all.deps: whitespace-separated listing of project_name depends_on_project_1 depends_on_project_2 ... *.opts: whitespace-separated listing of project_name --config-opt-1 --config-opt-2 ... Thus it is possible to choose between e.g. -- 2G+3G or 2G-only by picking a different projects_and_deps.conf, -- and between building each of those with or without mgcp transcoding support - by picking a different configure_opts.conf. +- building each of those with or without mgcp transcoding support by adding or + removing "transcoding.opts" from the command line From the Makefile nature, the dependencies extend, no need to repeat common deps. @@ -41,7 +40,7 @@ EXAMPLE: - ./gen_makefile.py 3G+2G.deps default.opts iu.opts -I -m build + ./gen_makefile.py default.opts iu.opts -I -m build cd build make @@ -51,12 +50,10 @@ import os import argparse +topdir = os.path.dirname(os.path.realpath(__file__)) +all_deps_file = os.path.join(topdir, "all.deps") parser = argparse.ArgumentParser(epilog=__doc__, formatter_class=argparse.RawTextHelpFormatter) -parser.add_argument('projects_and_deps_file', - help='''Config file containing projects to build and -dependencies between those''') - parser.add_argument('configure_opts_files', help='''Config file containing project name and ./configure options''', @@ -64,7 +61,7 @@ parser.add_argument('-m', '--make-dir', dest='make_dir', help='''Place Makefile in this dir (default: create -a new dir named after deps and opts files).''') +a new dir named after opts files).''') parser.add_argument('-s', '--src-dir', dest='src_dir', default='./src', help='Parent dir for all git clones.') @@ -242,18 +239,20 @@ ) -projects_deps = read_projects_deps(args.projects_and_deps_file) +projects_deps = read_projects_deps(all_deps_file) configure_opts = listdict() configure_opts_files = sorted(args.configure_opts_files or []) for configure_opts_file in configure_opts_files: + if configure_opts_file.endswith(".deps"): + print(f"WARNING: using {all_deps_file} instead of {configure_opts_file}") + continue r = read_configure_opts(configure_opts_file) configure_opts.extend_dict(read_configure_opts(configure_opts_file)) make_dir = args.make_dir if not make_dir: - deps_name = args.projects_and_deps_file.replace('.deps', '') opts_names = '+'.join([f.replace('.opts', '') for f in configure_opts_files]) - make_dir = 'make-%s-%s' % (deps_name, opts_names) + make_dir = 'make-%s' % opts_names if not os.path.isdir(make_dir): os.makedirs(make_dir) @@ -268,9 +267,36 @@ with open(output, 'w') as out: out.write('# This Makefile was generated by %s\n' % os.path.basename(sys.argv[0])) + configure_opts_args = "" + for f in configure_opts_files: + if not f.endswith(".deps"): + configure_opts_args += f' \\\n\t\t{os.path.relpath(f, make_dir)}' + # convenience: add a regen target that updates the generated makefile itself out.write(r''' -default: all +default: usrp + +cn: \ + osmo-ggsn \ + osmo-hlr \ + osmo-iuh \ + osmo-mgw \ + osmo-msc \ + osmo-sgsn \ + osmo-sip-connector \ + osmo-smlc \ + $(NULL) + +cn-bsc: \ + cn \ + osmo-bsc \ + $(NULL) + +usrp: \ + cn-bsc \ + osmo-bts \ + osmo-trx \ + $(NULL) .PHONY: all_debug all_debug: @@ -281,7 +307,6 @@ .PHONY: regen regen: {script} \ - {projects_and_deps} \ {configure_opts} \ -m {make_dir} \ -o {makefile} \ @@ -291,8 +316,7 @@ '''.format( script=os.path.relpath(sys.argv[0], make_dir), - projects_and_deps=os.path.relpath(args.projects_and_deps_file, make_dir), - configure_opts=' \\\n\t\t'.join([os.path.relpath(f, make_dir) for f in configure_opts_files]), + configure_opts=configure_opts_args, make_dir='.', makefile=args.output, src_dir=os.path.relpath(args.src_dir, make_dir), diff --git a/ttcn3/ttcn3.sh b/ttcn3/ttcn3.sh index 826fb40..2cb4b3a 100755 --- a/ttcn3/ttcn3.sh +++ b/ttcn3/ttcn3.sh @@ -95,20 +95,10 @@ setup_dir_make() { cd "$DIR_OSMODEV" - ( echo "# Generated by ttcn3.sh, do not edit" - cat ./3G+2G.deps - echo - echo "osmo-bts libosmocore libosmo-abis" - echo "osmo-pcu libosmocore" - # just clone these, building is handled by ttcn3.sh - echo "docker-playground" - echo "osmo-ttcn3-hacks" ) > ttcn3/3G+2G_ttcn3.deps - local docker_cmd="$DIR_OSMODEV/ttcn3/scripts/docker_configure_make.sh" docker_cmd="$docker_cmd $USER/$DOCKER_IMG_BUILD" ./gen_makefile.py \ - ttcn3/3G+2G_ttcn3.deps \ default.opts \ iu.opts \ no_systemd.opts \ -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25233 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6394882f67eecda3d2c03a97d3119657f7d3873f Gerrit-Change-Number: 25233 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:54:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:54:01 +0000 Subject: Change in osmo-dev[master]: all.deps: add asn1c, osmo-gbproxy, osmo-pcap In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25234 ) Change subject: all.deps: add asn1c, osmo-gbproxy, osmo-pcap ...................................................................... all.deps: add asn1c, osmo-gbproxy, osmo-pcap Change-Id: Ic9f57d454d245631b24c9c8c14a8ea806587b33b --- M all.deps 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: osmith: Verified neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/all.deps b/all.deps index 26e0cf4..65bdf27 100644 --- a/all.deps +++ b/all.deps @@ -20,6 +20,9 @@ # So if you want osmo-trx, use no sanitize.opts, or use LD_PRELOAD for osmo-trx binaries. osmo-trx libosmocore osmo-pcu libosmocore +asn1c libasn1c +osmo-gbproxy libosmocore +osmo-pcap libosmocore # can only clone these docker-playground -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25234 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: Ic9f57d454d245631b24c9c8c14a8ea806587b33b Gerrit-Change-Number: 25234 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:54:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:54:01 +0000 Subject: Change in osmo-dev[master]: all-tests.opts: add osmo-pcu In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-dev/+/25520 ) Change subject: all-tests.opts: add osmo-pcu ...................................................................... all-tests.opts: add osmo-pcu Change-Id: I6d9b8553482868a7fe4ee127dd9e722b748b55a9 --- M all-tests.opts 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: osmith: Verified neels: Looks good to me, approved diff --git a/all-tests.opts b/all-tests.opts index 973b563..f0075ac 100644 --- a/all-tests.opts +++ b/all-tests.opts @@ -4,3 +4,4 @@ osmo-sgsn --enable-external-tests --enable-vty-tests osmo-mgw --enable-external-tests --enable-vty-tests osmo-hlr --enable-external-tests +osmo-pcu --enable-vty-tests -- To view, visit https://gerrit.osmocom.org/c/osmo-dev/+/25520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-Change-Id: I6d9b8553482868a7fe4ee127dd9e722b748b55a9 Gerrit-Change-Number: 25520 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:54:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 14:54:08 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc File doc/manuals/chapters/power_control.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc at 348 PS1, Line 348: NOTE: The BSC can instruct a BTS to disable C/I related logic in its > Not sure if this is an Osmocom specific feature, but if so, I'd mention it here. "OsmoBTS MS Power Control Loop algorithm supports using C/I computed measurements". that's also why C/I stuff is placed as an extension in its won section, separate from RxQual and RxLev. In any case, BS/MS_POWER_PARAMS IEs are always vendor specific, its contents are not defined by the standard. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 21 Sep 2021 14:54:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:55:24 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:55:24 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc File doc/manuals/chapters/power_control.adoc: https://gerrit.osmocom.org/c/osmo-bsc/+/25513/1/doc/manuals/chapters/power_control.adoc at 348 PS1, Line 348: NOTE: The BSC can instruct a BTS to disable C/I related logic in its > "OsmoBTS MS Power Control Loop algorithm supports using C/I computed [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 21 Sep 2021 14:55:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 14:58:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 14:58:35 +0000 Subject: Change in osmo-trx[master]: lms: Drop duplicated check In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25521 ) Change subject: lms: Drop duplicated check ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I48d14f35e83fa17d1a8f4154479f0a5cee0f816d Gerrit-Change-Number: 25521 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 14:58: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 Sep 21 15:00:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 15:00:41 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX SW_ACT when PHY becomes connected References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25528 ) Change subject: bts-trx: Submit TRX SW_ACT when PHY becomes connected ...................................................................... bts-trx: Submit TRX SW_ACT when PHY becomes connected Once the TRXC link is available, we can signal SW_ACT which will transit rcarrier and bbtransc NM FSMs to Disabled Offline and announce availability to be configured to the BSC through transmission of Software Activated Report. Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 --- M include/osmo-bts/phy_link.h M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/trx_provision_fsm.c 3 files changed, 4 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/28/25528/1 diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 4b8a863..78fe6b9 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -112,7 +112,6 @@ } sysmobts; struct { struct trx_l1h *hdl; - bool sw_act_reported; struct trx_dl_burst_req br[TRX_NR_TS]; } osmotrx; struct { diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index df2531e..f35c9ba 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -224,14 +224,6 @@ l1h = pinst->u.osmotrx.hdl; osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_BSIC, (void*)(intptr_t)bsic); - /* signal availability */ - if (!pinst->u.osmotrx.sw_act_reported) { - /* HACK, we should change state when we receive first clock from - * transceiver */ - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SW_ACT, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); - pinst->u.osmotrx.sw_act_reported = true; - } } return 0; diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 660360d..6041073 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_provision_fsm.h" @@ -332,6 +333,9 @@ trx_if_cmd_rfmute(l1h, pinst->trx->mo.nm_state.administrative != NM_STATE_UNLOCKED); else trx_if_cmd_rfmute(l1h, true); + + osmo_fsm_inst_dispatch(pinst->trx->mo.fi, NM_EV_SW_ACT, NULL); + osmo_fsm_inst_dispatch(pinst->trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); } static void st_open_poweroff(struct osmo_fsm_inst *fi, uint32_t event, void *data) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 Gerrit-Change-Number: 25528 Gerrit-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 Sep 21 15:01:21 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 15:01:21 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Validate band of RxFreq too In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25522 ) Change subject: lms,uhd: Validate band of RxFreq too ...................................................................... Patch Set 1: (2 comments) besides typos: LGTM https://gerrit.osmocom.org/c/osmo-trx/+/25522/1/Transceiver52M/device/lms/LMSDevice.cpp File Transceiver52M/device/lms/LMSDevice.cpp: https://gerrit.osmocom.org/c/osmo-trx/+/25522/1/Transceiver52M/device/lms/LMSDevice.cpp at 1036 PS1, Line 1036: Tx Rx https://gerrit.osmocom.org/c/osmo-trx/+/25522/1/Transceiver52M/device/lms/LMSDevice.cpp at 1040 PS1, Line 1040: Tx Rx -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 Gerrit-Change-Number: 25522 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 15:01: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 Tue Sep 21 15:02:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 15:02:15 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Skip re-assigning same band In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25523 ) Change subject: lms,uhd: Skip re-assigning same band ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 Gerrit-Change-Number: 25523 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 15:02:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 15:07:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 21 Sep 2021 15:07:46 +0000 Subject: Change in osmo-trx[master]: lms, uhd: Allow changing band between poweroff & poweron In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25524 ) Change subject: lms,uhd: Allow changing band between poweroff & poweron ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 Gerrit-Change-Number: 25524 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 15:07:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 15:24:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 15:24:21 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Validate band of RxFreq too 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/+/25522 to look at the new patch set (#2). Change subject: lms,uhd: Validate band of RxFreq too ...................................................................... lms,uhd: Validate band of RxFreq too So far the validation is only done on TxFreq for all TRX. Let's also do it for RxFreq. Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/25522/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 Gerrit-Change-Number: 25522 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 16:00:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 16:00:40 +0000 Subject: Change in osmo-trx[master]: lms: Drop duplicated check In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25521 ) Change subject: lms: Drop duplicated check ...................................................................... lms: Drop duplicated check Same check is already done by set_band(). Change-Id: I48d14f35e83fa17d1a8f4154479f0a5cee0f816d --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9b6c792..30fd665 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -1013,12 +1013,6 @@ 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_band(req_band)) return false; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I48d14f35e83fa17d1a8f4154479f0a5cee0f816d Gerrit-Change-Number: 25521 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 16:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 16:56:21 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25529 ) Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx This step is required while turning off the BTS without killing the process. Right now only osmo-bts-trx supports this feature, so this function is only available and used by osmo-bts-trx. Later on, when the feature is support more generally, we can move call to this function to common place like bts_shutdown_fsm or alike. Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e --- M doc/manuals/chapters/architecture.adoc M include/osmo-bts/phy_link.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_provision_fsm.c 4 files changed, 24 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/25529/1 diff --git a/doc/manuals/chapters/architecture.adoc b/doc/manuals/chapters/architecture.adoc index a0e66cd..30eab7a 100644 --- a/doc/manuals/chapters/architecture.adoc +++ b/doc/manuals/chapters/architecture.adoc @@ -88,6 +88,7 @@ | common | abis_open() | Start of the A-bis connection to BSC | common | phy_links_open() | Iterate over list of configured PHY links | bts-specific | bts_model_phy_link_open() | Open each of the configured PHY links +| bts-specific | bts_model_phy_link_close() | Close each of the configured PHY links | common | write_pid_file() | Generate the pid file | common | osmo_daemonize() | Fork as daemon in background (if configured) | common | bts_main() | Run main loop until global variable quit >= 2 diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 78fe6b9..ac38c28 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -174,6 +174,7 @@ } int bts_model_phy_link_open(struct phy_link *plink); +int bts_model_phy_link_close(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/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 29a3663..b0965de 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1340,6 +1340,25 @@ return -1; } +/*! close the PHY link using TRX protocol */ +int bts_model_phy_link_close(struct phy_link *plink) +{ + bool clock_stopped = false; + struct phy_instance *pinst; + llist_for_each_entry(pinst, &plink->instances, list) { + if (!clock_stopped) { + clock_stopped = true; + trx_sched_clock_stopped(pinst->trx->bts); + } + if (pinst->u.osmotrx.hdl) { + trx_if_close(pinst->u.osmotrx.hdl); + } + } + trx_udp_close(&plink->u.osmotrx.trx_ofd_clk); + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + return 0; +} + /*! determine if the TRX for given handle is powered up */ int trx_if_powered(struct trx_l1h *l1h) { diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 6041073..7f42b47 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -592,14 +592,13 @@ case TRX_PROV_EV_POWEROFF_CNF: rc = (uint16_t)(intptr_t)data; if (plink->state != PHY_LINK_SHUTDOWN) { - trx_sched_clock_stopped(pinst->trx->bts); - phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + bts_model_phy_link_close(plink); /* 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); } - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWEROFF); + trx_prov_fsm_state_chg(fi, TRX_PROV_ST_CLOSED); } break; default: @@ -661,7 +660,7 @@ .in_event_mask = X(TRX_PROV_EV_POWEROFF_CNF), .out_state_mask = - X(TRX_PROV_ST_OPEN_POWEROFF), + X(TRX_PROV_ST_CLOSED), .name = "OPEN_WAIT_POWEROFF_CNF", .action = st_open_wait_poweroff_cnf, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-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 Sep 21 16:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 16:56:21 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25530 ) Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it Since recently we support shutting down phys when BTS goes into shutdown mode. Let's make sure they are opened again when we connect again to the BSC. Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 --- M src/common/nm_bts_fsm.c 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/30/25530/1 diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 54737bf..ac8a74d 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -65,10 +65,24 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; switch (event) { case NM_EV_SW_ACT: oml_mo_tx_sw_act_rep(&bts->mo); + + llist_for_each_entry(trx, &bts->trx_list, list) { + /* During startup, phy_links are already opened, but if we are + * re-connecting, phy_link was closed when disconnected from + * previous BSC, so let's re-open it. + */ + struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; + if (phy_link_state_get(plink) == PHY_LINK_SHUTDOWN) { + bts_model_phy_link_open(plink); + } + } + nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_OFFLINE); return; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 Gerrit-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 Sep 21 16:56:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 16:56:21 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting p... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25531 ) Change subject: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process ...................................................................... bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process This feature is not yet used by any bts_shutdown_fsm caller, but will be used in the future when Abis link goes down. Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae --- M include/osmo-bts/bts.h M src/common/bts_shutdown_fsm.c 2 files changed, 20 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/25531/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index d3cb6bf..a601423 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -368,6 +368,7 @@ } gsmtap; struct osmo_fsm_inst *shutdown_fi; /* FSM instance to manage shutdown procedure during process exit */ + bool shutdown_fi_exit_proc; /* exit process when shutdown_fsm is finished? */ struct osmo_fsm_inst *abis_link_fi; /* FSM instance to manage abis connection during process startup and link failure */ struct osmo_tdef *T_defs; /* Timer defines */ @@ -390,6 +391,7 @@ int bts_init(struct gsm_bts *bts); void bts_shutdown(struct gsm_bts *bts, const char *reason); +void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc); int bts_link_estab(struct gsm_bts *bts); diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index c16b76a..47888b8 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -156,8 +156,11 @@ osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SHUTDOWN_FINISH, NULL); - LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); - exit(0); + if (bts->shutdown_fi_exit_proc) { + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); + exit(0); + } + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_NONE); } static struct osmo_fsm_state bts_shutdown_fsm_states[] = { @@ -190,6 +193,8 @@ }, [BTS_SHUTDOWN_ST_EXIT] = { .name = "EXIT", + .out_state_mask = + X(BTS_SHUTDOWN_ST_NONE), .onenter = st_exit_on_enter, } }; @@ -232,18 +237,26 @@ OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0); } -void bts_shutdown(struct gsm_bts *bts, const char *reason) +void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc) { 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"); + if (exit_proc) + bts->shutdown_fi_exit_proc = true; return; } - - LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, reason: %s\n", reason); + bts->shutdown_fi_exit_proc = exit_proc; + LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, exit %u, reason: %s\n", + exit_proc, reason); osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_START, NULL); } +void bts_shutdown(struct gsm_bts *bts, const char *reason) +{ + bts_shutdown_ext(bts, reason, true); +} + void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc) { struct osmo_fsm_inst *fi = trx->bts->shutdown_fi; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae Gerrit-Change-Number: 25531 Gerrit-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 Sep 21 16:56:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 16:56:22 +0000 Subject: Change in osmo-bts[master]: abis: Call bts_model_abis_close() when Abis link goes down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25532 ) Change subject: abis: Call bts_model_abis_close() when Abis link goes down ...................................................................... abis: Call bts_model_abis_close() when Abis link goes down This way based on BTS model features it can attempt to reconnect or simply exit the process. Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 --- M src/common/abis.c 1 file changed, 3 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/25532/1 diff --git a/src/common/abis.c b/src/common/abis.c index 8e713d2..1722f3d 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -215,12 +215,8 @@ trx->rsl_link = NULL; } } - - /* Note: if there was an OML or RSL connection present (the BTS was connected to a BSC). Then we will not try - * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states - * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host - * to restart osmo-bts. */ - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); + bts_model_abis_close(bts); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); } static void abis_link_failed_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -284,7 +280,7 @@ .in_event_mask = S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = - S(ABIS_LINK_ST_FAILED), + S(ABIS_LINK_ST_WAIT_RECONNECT), .onenter = abis_link_connected_onenter, .action = abis_link_connected, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 Gerrit-Change-Number: 25532 Gerrit-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 Sep 21 17:38:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 17:38:43 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-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-bts/+/25529 to look at the new patch set (#2). Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx This step is required while turning off the BTS without killing the process. Right now only osmo-bts-trx supports this feature, so this function is only available and used by osmo-bts-trx. Later on, when the feature is support more generally, we can move call to this function to common place like bts_shutdown_fsm or alike. Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e --- M doc/manuals/chapters/architecture.adoc M include/osmo-bts/phy_link.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_provision_fsm.c 4 files changed, 23 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/25529/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 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 Sep 21 17:38:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 17:38:43 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it 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/+/25530 to look at the new patch set (#2). Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it Since recently we support shutting down phys when BTS goes into shutdown mode. Let's make sure they are opened again when we connect again to the BSC. Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 --- M src/common/nm_bts_fsm.c 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/30/25530/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 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 Sep 21 17:38:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 21 Sep 2021 17:38:43 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting p... 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/+/25531 to look at the new patch set (#2). Change subject: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process ...................................................................... bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process This feature is not yet used by any bts_shutdown_fsm caller, but will be used in the future when Abis link goes down. Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae --- M include/osmo-bts/bts.h M src/common/bts_shutdown_fsm.c 2 files changed, 20 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/25531/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae Gerrit-Change-Number: 25531 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 Sep 21 19:42:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:42:27 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown pr... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25491 ) Change subject: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b Gerrit-Change-Number: 25491 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19: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 Sep 21 19:43:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:43:24 +0000 Subject: Change in osmo-bts[master]: abis: Drop internal OML msg queue In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25493 ) Change subject: abis: Drop internal OML msg queue ...................................................................... Patch Set 6: I'm quite sure this is needed for some of the E1 based BTS models where you are not guaranteed to get some notification if the link drops and comes back again. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 Gerrit-Change-Number: 25493 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:43: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 Sep 21 19:43:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:43:43 +0000 Subject: Change in osmo-bts[master]: abis: Drop internal OML msg queue In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25493 ) Change subject: abis: Drop internal OML msg queue ...................................................................... Patch Set 6: Code-Review+2 nevermind, it is osmo-bts. there is no E1. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 Gerrit-Change-Number: 25493 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:43: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 Sep 21 19:44:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:44:59 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25505 ) Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25505/3/src/osmo-bts-lc15/oml.c File src/osmo-bts-lc15/oml.c: https://gerrit.osmocom.org/c/osmo-bts/+/25505/3/src/osmo-bts-lc15/oml.c at 1899 PS3, Line 1899: ownsership ownership -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:44: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 Tue Sep 21 19:45:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:45:11 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Fix event name In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25515 ) Change subject: bts_shutdown_fsm: Fix event name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id042ae37f7c9dbd2edbb76932abb91d605d85e26 Gerrit-Change-Number: 25515 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19: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 Tue Sep 21 19:45:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:45:25 +0000 Subject: Change in osmo-bts[master]: trx_if: Set pointer to null after freeing it In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25516 ) Change subject: trx_if: Set pointer to null after freeing it ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd93c9968095a8801aafe9440806cb5786320cbc Gerrit-Change-Number: 25516 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:45: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 Sep 21 19:45:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:45:45 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:45: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 Sep 21 19:46:05 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:46:05 +0000 Subject: Change in osmo-bts[master]: trx_if: delete retrans timer when flushing the Tx queue In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25518 ) Change subject: trx_if: delete retrans timer when flushing the Tx queue ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb Gerrit-Change-Number: 25518 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:46:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:46:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:46:44 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25519/2/src/osmo-bts-trx/trx_provision_fsm.c File src/osmo-bts-trx/trx_provision_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/25519/2/src/osmo-bts-trx/trx_provision_fsm.c at 100 PS2, Line 100: looks like a memset to zero? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:46:44 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:47:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:47:20 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:47: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 Sep 21 19:47:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:47:45 +0000 Subject: Change in osmo-bts[master]: bts-trx: Get rid of check_transceiver_availability_trx() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25526 ) Change subject: bts-trx: Get rid of check_transceiver_availability_trx() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a Gerrit-Change-Number: 25526 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:47: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 Sep 21 19:55:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:55:08 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:55:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:55:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:55:32 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX SW_ACT when PHY becomes connected In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25528 ) Change subject: bts-trx: Submit TRX SW_ACT when PHY becomes connected ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 Gerrit-Change-Number: 25528 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:55:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:56:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:56:01 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25529 ) Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:56: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 Sep 21 19:56:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:56:16 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25530 ) Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:56:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:56:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:56:46 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting p... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25531 ) Change subject: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae Gerrit-Change-Number: 25531 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:56: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 Sep 21 19:57:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:57:02 +0000 Subject: Change in osmo-bts[master]: abis: Call bts_model_abis_close() when Abis link goes down In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25532 ) Change subject: abis: Call bts_model_abis_close() when Abis link goes down ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 Gerrit-Change-Number: 25532 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 21 Sep 2021 19:57:02 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:57:53 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:57:53 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25495 ) Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-PatchSet: 5 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 19:57: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 Sep 21 19:57:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:57:56 +0000 Subject: Change in libosmocore[master]: copy base64 implementation from mbedtls In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25496 ) Change subject: copy base64 implementation from mbedtls ...................................................................... copy base64 implementation from mbedtls Using mbedtls commit f9c599cd8ac9d00c484d4f5b027e18c6af4f9fdf before they re-licensed to Apache 2.0, so we have a GPL-v2-or-later bsae64 implementation and avoid having code under a different license in the tree. This code is the unmodified import, so we can record any local changes compared to the original version. Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 --- A include/osmocom/core/base64.h A src/base64.c 2 files changed, 370 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved; Verified fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve diff --git a/include/osmocom/core/base64.h b/include/osmocom/core/base64.h new file mode 100644 index 0000000..0f7233d --- /dev/null +++ b/include/osmocom/core/base64.h @@ -0,0 +1,86 @@ +/** + * \file base64.h + * + * \brief RFC 1521 base64 encoding/decoding + * + * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * + * This file is part of mbed TLS (https://tls.mbed.org) + * + * 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. + */ +#ifndef MBEDTLS_BASE64_H +#define MBEDTLS_BASE64_H + +#include + +#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL -0x002A /**< Output buffer too small. */ +#define MBEDTLS_ERR_BASE64_INVALID_CHARACTER -0x002C /**< Invalid character in input. */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Encode a buffer into base64 format + * + * \param dst destination buffer + * \param dlen size of the destination buffer + * \param olen number of bytes written + * \param src source buffer + * \param slen amount of data to be encoded + * + * \return 0 if successful, or MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL. + * *olen is always updated to reflect the amount + * of data that has (or would have) been written. + * + * \note Call this function with dlen = 0 to obtain the + * required buffer size in *olen + */ +int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ); + +/** + * \brief Decode a base64-formatted buffer + * + * \param dst destination buffer (can be NULL for checking size) + * \param dlen size of the destination buffer + * \param olen number of bytes written + * \param src source buffer + * \param slen amount of data to be decoded + * + * \return 0 if successful, MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL, or + * MBEDTLS_ERR_BASE64_INVALID_CHARACTER if the input data is + * not correct. *olen is always updated to reflect the amount + * of data that has (or would have) been written. + * + * \note Call this function with *dst = NULL or dlen = 0 to obtain + * the required buffer size in *olen + */ +int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ); + +/** + * \brief Checkup routine + * + * \return 0 if successful, or 1 if the test failed + */ +int mbedtls_base64_self_test( int verbose ); + +#ifdef __cplusplus +} +#endif + +#endif /* base64.h */ diff --git a/src/base64.c b/src/base64.c new file mode 100644 index 0000000..11cb30b --- /dev/null +++ b/src/base64.c @@ -0,0 +1,284 @@ +/* + * RFC 1521 base64 encoding/decoding + * + * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * + * This file is part of mbed TLS (https://tls.mbed.org) + * + * 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. + */ + +#if !defined(MBEDTLS_CONFIG_FILE) +#include "mbedtls/config.h" +#else +#include MBEDTLS_CONFIG_FILE +#endif + +#if defined(MBEDTLS_BASE64_C) + +#include "mbedtls/base64.h" + +#include + +#if defined(MBEDTLS_SELF_TEST) +#include +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#else +#include +#define mbedtls_printf printf +#endif /* MBEDTLS_PLATFORM_C */ +#endif /* MBEDTLS_SELF_TEST */ + +static const unsigned char base64_enc_map[64] = +{ + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', + 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '+', '/' +}; + +static const unsigned char base64_dec_map[128] = +{ + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 62, 127, 127, 127, 63, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 127, 127, + 127, 64, 127, 127, 127, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 127, 127, 127, 127, 127, 127, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 127, 127, 127, 127, 127 +}; + +/* + * Encode a buffer into base64 format + */ +int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ) +{ + size_t i, n; + int C1, C2, C3; + unsigned char *p; + + if( slen == 0 ) + { + *olen = 0; + return( 0 ); + } + + n = ( slen << 3 ) / 6; + + switch( ( slen << 3 ) - ( n * 6 ) ) + { + case 2: n += 3; break; + case 4: n += 2; break; + default: break; + } + + if( dlen < n + 1 ) + { + *olen = n + 1; + return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + } + + n = ( slen / 3 ) * 3; + + for( i = 0, p = dst; i < n; i += 3 ) + { + C1 = *src++; + C2 = *src++; + C3 = *src++; + + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F]; + *p++ = base64_enc_map[C3 & 0x3F]; + } + + if( i < slen ) + { + C1 = *src++; + C2 = ( ( i + 1 ) < slen ) ? *src++ : 0; + + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + + if( ( i + 1 ) < slen ) + *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F]; + else *p++ = '='; + + *p++ = '='; + } + + *olen = p - dst; + *p = 0; + + return( 0 ); +} + +/* + * Decode a base64-formatted buffer + */ +int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ) +{ + size_t i, n; + uint32_t j, x; + unsigned char *p; + + /* First pass: check for validity and get output length */ + for( i = n = j = 0; i < slen; i++ ) + { + /* Skip spaces before checking for EOL */ + x = 0; + while( i < slen && src[i] == ' ' ) + { + ++i; + ++x; + } + + /* Spaces at end of buffer are OK */ + if( i == slen ) + break; + + if( ( slen - i ) >= 2 && + src[i] == '\r' && src[i + 1] == '\n' ) + continue; + + if( src[i] == '\n' ) + continue; + + /* Space inside a line is an error */ + if( x != 0 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if( src[i] == '=' && ++j > 2 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if( src[i] > 127 || base64_dec_map[src[i]] == 127 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if( base64_dec_map[src[i]] < 64 && j != 0 ) + return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + n++; + } + + if( n == 0 ) + return( 0 ); + + n = ( ( n * 6 ) + 7 ) >> 3; + n -= j; + + if( dst == NULL || dlen < n ) + { + *olen = n; + return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + } + + for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) + { + if( *src == '\r' || *src == '\n' || *src == ' ' ) + continue; + + j -= ( base64_dec_map[*src] == 64 ); + x = ( x << 6 ) | ( base64_dec_map[*src] & 0x3F ); + + if( ++n == 4 ) + { + n = 0; + if( j > 0 ) *p++ = (unsigned char)( x >> 16 ); + if( j > 1 ) *p++ = (unsigned char)( x >> 8 ); + if( j > 2 ) *p++ = (unsigned char)( x ); + } + } + + *olen = p - dst; + + return( 0 ); +} + +#if defined(MBEDTLS_SELF_TEST) + +static const unsigned char base64_test_dec[64] = +{ + 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, + 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, + 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, + 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, + 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, + 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, + 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, + 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 +}; + +static const unsigned char base64_test_enc[] = + "JEhuVodiWr2/F9mixBcaAZTtjx4Rs9cJDLbpEG8i7hPK" + "swcFdsn6MWwINP+Nwmw4AEPpVJevUEvRQbqVMVoLlw=="; + +/* + * Checkup routine + */ +int mbedtls_base64_self_test( int verbose ) +{ + size_t len; + const unsigned char *src; + unsigned char buffer[128]; + + if( verbose != 0 ) + mbedtls_printf( " Base64 encoding test: " ); + + src = base64_test_dec; + + if( mbedtls_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || + memcmp( base64_test_enc, buffer, 88 ) != 0 ) + { + if( verbose != 0 ) + mbedtls_printf( "failed\n" ); + + return( 1 ); + } + + if( verbose != 0 ) + mbedtls_printf( "passed\n Base64 decoding test: " ); + + src = base64_test_enc; + + if( mbedtls_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || + memcmp( base64_test_dec, buffer, 64 ) != 0 ) + { + if( verbose != 0 ) + mbedtls_printf( "failed\n" ); + + return( 1 ); + } + + if( verbose != 0 ) + mbedtls_printf( "passed\n\n" ); + + return( 0 ); +} + +#endif /* MBEDTLS_SELF_TEST */ + +#endif /* MBEDTLS_BASE64_C */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I39a9d3ab98257d21b9439b00528c744efa372c14 Gerrit-Change-Number: 25496 Gerrit-PatchSet: 2 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:57:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:57:56 +0000 Subject: Change in libosmocore[master]: base64: Migrate over to osmocom In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25497 ) Change subject: base64: Migrate over to osmocom ...................................................................... base64: Migrate over to osmocom This containts the osmocom changes to the mbedtls base64 code merged in the previous commit. Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 --- M include/Makefile.am M include/osmocom/core/base64.h M src/Makefile.am M src/base64.c M tests/Makefile.am A tests/base64/base64_test.c A tests/base64/base64_test.ok M tests/testsuite.at 8 files changed, 85 insertions(+), 107 deletions(-) Approvals: laforge: Looks good to me, approved; Verified fixeria: Looks good to me, but someone else must approve diff --git a/include/Makefile.am b/include/Makefile.am index e25ed48..7df651a 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -6,6 +6,7 @@ osmocom/codec/gsm610_bits.h \ osmocom/core/application.h \ osmocom/core/backtrace.h \ + osmocom/core/base64.h \ osmocom/core/bit16gen.h \ osmocom/core/bit32gen.h \ osmocom/core/bit64gen.h \ diff --git a/include/osmocom/core/base64.h b/include/osmocom/core/base64.h index 0f7233d..f73db0d 100644 --- a/include/osmocom/core/base64.h +++ b/include/osmocom/core/base64.h @@ -21,14 +21,10 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef MBEDTLS_BASE64_H -#define MBEDTLS_BASE64_H +#pragma once #include -#define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL -0x002A /**< Output buffer too small. */ -#define MBEDTLS_ERR_BASE64_INVALID_CHARACTER -0x002C /**< Invalid character in input. */ - #ifdef __cplusplus extern "C" { #endif @@ -49,7 +45,7 @@ * \note Call this function with dlen = 0 to obtain the * required buffer size in *olen */ -int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ); /** @@ -69,18 +65,9 @@ * \note Call this function with *dst = NULL or dlen = 0 to obtain * the required buffer size in *olen */ -int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ); -/** - * \brief Checkup routine - * - * \return 0 if successful, or 1 if the test failed - */ -int mbedtls_base64_self_test( int verbose ); - #ifdef __cplusplus } #endif - -#endif /* base64.h */ diff --git a/src/Makefile.am b/src/Makefile.am index 2f18d09..3c589e6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -31,6 +31,7 @@ exec.c \ it_q.c \ probes.d \ + base64.c \ $(NULL) if HAVE_SSSE3 diff --git a/src/base64.c b/src/base64.c index 11cb30b..dbc908b 100644 --- a/src/base64.c +++ b/src/base64.c @@ -20,27 +20,11 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif - -#if defined(MBEDTLS_BASE64_C) - -#include "mbedtls/base64.h" +#include #include - -#if defined(MBEDTLS_SELF_TEST) -#include -#if defined(MBEDTLS_PLATFORM_C) -#include "mbedtls/platform.h" -#else #include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ -#endif /* MBEDTLS_SELF_TEST */ +#include static const unsigned char base64_enc_map[64] = { @@ -73,7 +57,7 @@ /* * Encode a buffer into base64 format */ -int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ) { size_t i, n; @@ -98,7 +82,7 @@ if( dlen < n + 1 ) { *olen = n + 1; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return( -ENOBUFS ); } n = ( slen / 3 ) * 3; @@ -139,7 +123,7 @@ /* * Decode a base64-formatted buffer */ -int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, +int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen ) { size_t i, n; @@ -170,16 +154,16 @@ /* Space inside a line is an error */ if( x != 0 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); if( src[i] == '=' && ++j > 2 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); if( src[i] > 127 || base64_dec_map[src[i]] == 127 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); if( base64_dec_map[src[i]] < 64 && j != 0 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + return( -EINVAL ); n++; } @@ -193,7 +177,7 @@ if( dst == NULL || dlen < n ) { *olen = n; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return( -ENOBUFS ); } for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) @@ -217,68 +201,3 @@ return( 0 ); } - -#if defined(MBEDTLS_SELF_TEST) - -static const unsigned char base64_test_dec[64] = -{ - 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, - 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, - 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, - 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, - 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, - 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, - 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, - 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 -}; - -static const unsigned char base64_test_enc[] = - "JEhuVodiWr2/F9mixBcaAZTtjx4Rs9cJDLbpEG8i7hPK" - "swcFdsn6MWwINP+Nwmw4AEPpVJevUEvRQbqVMVoLlw=="; - -/* - * Checkup routine - */ -int mbedtls_base64_self_test( int verbose ) -{ - size_t len; - const unsigned char *src; - unsigned char buffer[128]; - - if( verbose != 0 ) - mbedtls_printf( " Base64 encoding test: " ); - - src = base64_test_dec; - - if( mbedtls_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || - memcmp( base64_test_enc, buffer, 88 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); - } - - if( verbose != 0 ) - mbedtls_printf( "passed\n Base64 decoding test: " ); - - src = base64_test_enc; - - if( mbedtls_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || - memcmp( base64_test_dec, buffer, 64 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); - } - - if( verbose != 0 ) - mbedtls_printf( "passed\n\n" ); - - return( 0 ); -} - -#endif /* MBEDTLS_SELF_TEST */ - -#endif /* MBEDTLS_BASE64_C */ diff --git a/tests/Makefile.am b/tests/Makefile.am index 5c6f30c..22591fb 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,6 +43,7 @@ bssmap_le/bssmap_le_test \ it_q/it_q_test \ gsm48/rest_octets_test \ + base64/base64_test \ $(NULL) if ENABLE_MSGFILE @@ -79,6 +80,8 @@ check_PROGRAMS += gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_bssgp_rim_test gb/gprs_ns_test gb/gprs_ns2_test fr/fr_test endif +base64_base64_test_SOURCES = base64/base64_test.c + utils_utils_test_SOURCES = utils/utils_test.c utils_utils_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la @@ -405,6 +408,7 @@ bssmap_le/bssmap_le_test.ok \ it_q/it_q_test.ok \ gsm48/rest_octets_test.ok \ + base64/base64_test.ok \ $(NULL) if ENABLE_LIBSCTP diff --git a/tests/base64/base64_test.c b/tests/base64/base64_test.c new file mode 100644 index 0000000..e85f649 --- /dev/null +++ b/tests/base64/base64_test.c @@ -0,0 +1,57 @@ +#include +#include +#include + +static const unsigned char base64_test_dec[64] = +{ + 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, + 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, + 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, + 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, + 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, + 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, + 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, + 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 +}; + +static const unsigned char base64_test_enc[] = + "JEhuVodiWr2/F9mixBcaAZTtjx4Rs9cJDLbpEG8i7hPK" + "swcFdsn6MWwINP+Nwmw4AEPpVJevUEvRQbqVMVoLlw=="; + +/* + * Checkup routine + */ +int main(int argc, char **argv) +{ + size_t len; + const unsigned char *src; + unsigned char buffer[128]; + + printf( " Base64 encoding test: " ); + + src = base64_test_dec; + + if( osmo_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || + memcmp( base64_test_enc, buffer, 88 ) != 0 ) + { + printf( "failed\n" ); + + return( 1 ); + } + + printf( "passed\n Base64 decoding test: " ); + + src = base64_test_enc; + + if( osmo_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || + memcmp( base64_test_dec, buffer, 64 ) != 0 ) + { + printf( "failed\n" ); + + return( 1 ); + } + + printf( "passed\n\n" ); + + return( 0 ); +} diff --git a/tests/base64/base64_test.ok b/tests/base64/base64_test.ok new file mode 100644 index 0000000..ff187d9 --- /dev/null +++ b/tests/base64/base64_test.ok @@ -0,0 +1,3 @@ + Base64 encoding test: passed + Base64 decoding test: passed + diff --git a/tests/testsuite.at b/tests/testsuite.at index cb84229..6ac5970 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -446,3 +446,9 @@ cat $abs_srcdir/it_q/it_q_test.ok > expout AT_CHECK([$abs_top_builddir/tests/it_q/it_q_test], [0], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([base64]) +AT_KEYWORDS([base64]) +cat $abs_srcdir/base64/base64_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/base64/base64_test], [0], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I82c1bf5f827c8def370dbcb80b146e9e4184c4a3 Gerrit-Change-Number: 25497 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:57:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:57:56 +0000 Subject: Change in libosmocore[master]: base64: reformat using Lindent to conform to our coding style In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25498 ) Change subject: base64: reformat using Lindent to conform to our coding style ...................................................................... base64: reformat using Lindent to conform to our coding style Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 --- M include/osmocom/core/base64.h M src/base64.c M tests/base64/base64_test.c 3 files changed, 159 insertions(+), 165 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/base64.h b/include/osmocom/core/base64.h index f73db0d..86b862e 100644 --- a/include/osmocom/core/base64.h +++ b/include/osmocom/core/base64.h @@ -45,8 +45,8 @@ * \note Call this function with dlen = 0 to obtain the * required buffer size in *olen */ -int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ); +int osmo_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen); /** * \brief Decode a base64-formatted buffer @@ -65,8 +65,8 @@ * \note Call this function with *dst = NULL or dlen = 0 to obtain * the required buffer size in *olen */ -int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ); +int osmo_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen); #ifdef __cplusplus } diff --git a/src/base64.c b/src/base64.c index dbc908b..d86573e 100644 --- a/src/base64.c +++ b/src/base64.c @@ -26,178 +26,174 @@ #include #include -static const unsigned char base64_enc_map[64] = -{ - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', - 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', - 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', - 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', - 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', '+', '/' +static const unsigned char base64_enc_map[64] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', + 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '+', '/' }; -static const unsigned char base64_dec_map[128] = -{ - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 62, 127, 127, 127, 63, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 127, 127, - 127, 64, 127, 127, 127, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 127, 127, 127, 127, 127, 127, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 127, 127, 127, 127, 127 +static const unsigned char base64_dec_map[128] = { + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 62, 127, 127, 127, 63, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 127, 127, + 127, 64, 127, 127, 127, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 127, 127, 127, 127, 127, 127, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 127, 127, 127, 127, 127 }; /* * Encode a buffer into base64 format */ -int osmo_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ) +int osmo_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen) { - size_t i, n; - int C1, C2, C3; - unsigned char *p; + size_t i, n; + int C1, C2, C3; + unsigned char *p; - if( slen == 0 ) - { - *olen = 0; - return( 0 ); - } + if (slen == 0) { + *olen = 0; + return 0; + } - n = ( slen << 3 ) / 6; + n = (slen << 3) / 6; - switch( ( slen << 3 ) - ( n * 6 ) ) - { - case 2: n += 3; break; - case 4: n += 2; break; - default: break; - } + switch ((slen << 3) - (n * 6)) { + case 2: + n += 3; + break; + case 4: + n += 2; + break; + default: + break; + } - if( dlen < n + 1 ) - { - *olen = n + 1; - return( -ENOBUFS ); - } + if (dlen < n + 1) { + *olen = n + 1; + return -ENOBUFS; + } - n = ( slen / 3 ) * 3; + n = (slen / 3) * 3; - for( i = 0, p = dst; i < n; i += 3 ) - { - C1 = *src++; - C2 = *src++; - C3 = *src++; + for (i = 0, p = dst; i < n; i += 3) { + C1 = *src++; + C2 = *src++; + C3 = *src++; - *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; - *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; - *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F]; - *p++ = base64_enc_map[C3 & 0x3F]; - } + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + *p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F]; + *p++ = base64_enc_map[C3 & 0x3F]; + } - if( i < slen ) - { - C1 = *src++; - C2 = ( ( i + 1 ) < slen ) ? *src++ : 0; + if (i < slen) { + C1 = *src++; + C2 = ((i + 1) < slen) ? *src++ : 0; - *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; - *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; + *p++ = base64_enc_map[(C1 >> 2) & 0x3F]; + *p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F]; - if( ( i + 1 ) < slen ) - *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F]; - else *p++ = '='; + if ((i + 1) < slen) + *p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F]; + else + *p++ = '='; - *p++ = '='; - } + *p++ = '='; + } - *olen = p - dst; - *p = 0; + *olen = p - dst; + *p = 0; - return( 0 ); + return 0; } /* * Decode a base64-formatted buffer */ -int osmo_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ) +int osmo_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen) { - size_t i, n; - uint32_t j, x; - unsigned char *p; + size_t i, n; + uint32_t j, x; + unsigned char *p; - /* First pass: check for validity and get output length */ - for( i = n = j = 0; i < slen; i++ ) - { - /* Skip spaces before checking for EOL */ - x = 0; - while( i < slen && src[i] == ' ' ) - { - ++i; - ++x; - } + /* First pass: check for validity and get output length */ + for (i = n = j = 0; i < slen; i++) { + /* Skip spaces before checking for EOL */ + x = 0; + while (i < slen && src[i] == ' ') { + ++i; + ++x; + } - /* Spaces at end of buffer are OK */ - if( i == slen ) - break; + /* Spaces at end of buffer are OK */ + if (i == slen) + break; - if( ( slen - i ) >= 2 && - src[i] == '\r' && src[i + 1] == '\n' ) - continue; + if ((slen - i) >= 2 && src[i] == '\r' && src[i + 1] == '\n') + continue; - if( src[i] == '\n' ) - continue; + if (src[i] == '\n') + continue; - /* Space inside a line is an error */ - if( x != 0 ) - return( -EINVAL ); + /* Space inside a line is an error */ + if (x != 0) + return -EINVAL; - if( src[i] == '=' && ++j > 2 ) - return( -EINVAL ); + if (src[i] == '=' && ++j > 2) + return -EINVAL; - if( src[i] > 127 || base64_dec_map[src[i]] == 127 ) - return( -EINVAL ); + if (src[i] > 127 || base64_dec_map[src[i]] == 127) + return -EINVAL; - if( base64_dec_map[src[i]] < 64 && j != 0 ) - return( -EINVAL ); + if (base64_dec_map[src[i]] < 64 && j != 0) + return -EINVAL; - n++; - } + n++; + } - if( n == 0 ) - return( 0 ); + if (n == 0) + return 0; - n = ( ( n * 6 ) + 7 ) >> 3; - n -= j; + n = ((n * 6) + 7) >> 3; + n -= j; - if( dst == NULL || dlen < n ) - { - *olen = n; - return( -ENOBUFS ); - } + if (dst == NULL || dlen < n) { + *olen = n; + return -ENOBUFS; + } - for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) - { - if( *src == '\r' || *src == '\n' || *src == ' ' ) - continue; + for (j = 3, n = x = 0, p = dst; i > 0; i--, src++) { + if (*src == '\r' || *src == '\n' || *src == ' ') + continue; - j -= ( base64_dec_map[*src] == 64 ); - x = ( x << 6 ) | ( base64_dec_map[*src] & 0x3F ); + j -= (base64_dec_map[*src] == 64); + x = (x << 6) | (base64_dec_map[*src] & 0x3F); - if( ++n == 4 ) - { - n = 0; - if( j > 0 ) *p++ = (unsigned char)( x >> 16 ); - if( j > 1 ) *p++ = (unsigned char)( x >> 8 ); - if( j > 2 ) *p++ = (unsigned char)( x ); - } - } + if (++n == 4) { + n = 0; + if (j > 0) + *p++ = (unsigned char)(x >> 16); + if (j > 1) + *p++ = (unsigned char)(x >> 8); + if (j > 2) + *p++ = (unsigned char)(x); + } + } - *olen = p - dst; + *olen = p - dst; - return( 0 ); + return 0; } diff --git a/tests/base64/base64_test.c b/tests/base64/base64_test.c index e85f649..79ec212 100644 --- a/tests/base64/base64_test.c +++ b/tests/base64/base64_test.c @@ -1,17 +1,17 @@ #include #include #include +#include -static const unsigned char base64_test_dec[64] = -{ - 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, - 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, - 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, - 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, - 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, - 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, - 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, - 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 +static const unsigned char base64_test_dec[64] = { + 0x24, 0x48, 0x6E, 0x56, 0x87, 0x62, 0x5A, 0xBD, + 0xBF, 0x17, 0xD9, 0xA2, 0xC4, 0x17, 0x1A, 0x01, + 0x94, 0xED, 0x8F, 0x1E, 0x11, 0xB3, 0xD7, 0x09, + 0x0C, 0xB6, 0xE9, 0x10, 0x6F, 0x22, 0xEE, 0x13, + 0xCA, 0xB3, 0x07, 0x05, 0x76, 0xC9, 0xFA, 0x31, + 0x6C, 0x08, 0x34, 0xFF, 0x8D, 0xC2, 0x6C, 0x38, + 0x00, 0x43, 0xE9, 0x54, 0x97, 0xAF, 0x50, 0x4B, + 0xD1, 0x41, 0xBA, 0x95, 0x31, 0x5A, 0x0B, 0x97 }; static const unsigned char base64_test_enc[] = @@ -23,35 +23,33 @@ */ int main(int argc, char **argv) { - size_t len; - const unsigned char *src; - unsigned char buffer[128]; + size_t len; + const unsigned char *src; + unsigned char buffer[128]; - printf( " Base64 encoding test: " ); + printf(" Base64 encoding test: "); - src = base64_test_dec; + src = base64_test_dec; - if( osmo_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || - memcmp( base64_test_enc, buffer, 88 ) != 0 ) - { - printf( "failed\n" ); + if (osmo_base64_encode(buffer, sizeof(buffer), &len, src, 64) != 0 || + memcmp(base64_test_enc, buffer, 88) != 0) { + printf("failed\n"); - return( 1 ); - } + exit(1); + } - printf( "passed\n Base64 decoding test: " ); + printf("passed\n Base64 decoding test: "); - src = base64_test_enc; + src = base64_test_enc; - if( osmo_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || - memcmp( base64_test_dec, buffer, 64 ) != 0 ) - { - printf( "failed\n" ); + if (osmo_base64_decode(buffer, sizeof(buffer), &len, src, 88) != 0 || + memcmp(base64_test_dec, buffer, 64) != 0) { + printf("failed\n"); - return( 1 ); - } + exit(1); + } - printf( "passed\n\n" ); + printf("passed\n\n"); - return( 0 ); + exit(0); } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I2286fa0d2cba7c11359bb48329135dfcd0d8a948 Gerrit-Change-Number: 25498 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 Tue Sep 21 19:57:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:57:57 +0000 Subject: Change in libosmocore[master]: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25495 ) Change subject: osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res ...................................................................... osmo-auc-gen: Print RFC3310 IMS HTTP-AKA style base64 nonce/res This is useful when debugging IMS Authentication which uses RFC3310 representation of the nonce and expected result. Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 --- M tests/osmo-auc-gen/osmo-auc-gen_test.ok M utils/osmo-auc-gen.c 2 files changed, 50 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/osmo-auc-gen/osmo-auc-gen_test.ok b/tests/osmo-auc-gen/osmo-auc-gen_test.ok index 2840783..3c41f41 100644 --- a/tests/osmo-auc-gen/osmo-auc-gen_test.ok +++ b/tests/osmo-auc-gen/osmo-auc-gen_test.ok @@ -9,6 +9,8 @@ IK: 6cf555588bb61ab2ff23cd333c05ed09 CK: f0b29f50a7d873f30336473bdc35d04f RES: f511d3a7f06e6a30 +IMS nonce: amEFB2XKoyyQNxNw5dbcLXkMXYDEewAAcWzgCIO8OeE= +IMS res: 9RHTp/BuajA= SRES: 057fb997 Kc: 60524000cc5e5407 SQN: 0 @@ -24,6 +26,8 @@ IK: 6cf555588bb61ab2ff23cd333c05ed09 CK: f0b29f50a7d873f30336473bdc35d04f RES: f511d3a7f06e6a30 +IMS nonce: amEFB2XKoyyQNxNw5dbcLXkMXYDEegAAWFCKs4ZOJqA= +IMS res: 9RHTp/BuajA= SRES: 057fb997 Kc: 60524000cc5e5407 SQN: 1 @@ -39,6 +43,8 @@ IK: 6cf555588bb61ab2ff23cd333c05ed09 CK: f0b29f50a7d873f30336473bdc35d04f RES: f511d3a7f06e6a30 +IMS nonce: amEFB2XKoyyQNxNw5dbcLXkMXYDEbAAA5015bsCV2+4= +IMS res: 9RHTp/BuajA= SRES: 057fb997 Kc: 60524000cc5e5407 SQN: 23 @@ -54,6 +60,8 @@ IK: d7213dd74860ccb8c14e54c0c4abc91c CK: c350653d72f7a5bac3a27422e5186019 RES: 912cdfaadd7b0154 +IMS nonce: HcT5dDJczmEeVPUW3B/sVkNKRqca6wAA/txWPyegkWw= +IMS res: kSzfqt17AVQ= SRES: 4c57defe Kc: 169d78081b24c007 SQN: 42 @@ -69,6 +77,8 @@ IK: 191a93c4396113bff6939d4f98e169a6 CK: 9c38d9089265ed5ea164e190a65c200d RES: fd40205be2c9c7b2 +IMS nonce: KkgWL/PtykrfC3teUn1sFr+/MzLJHgAA1hmcrTHRXyY= +IMS res: /UAgW+LJx7I= SRES: 1f89e7e9 Kc: d2d5361395b9b74a SQN: 99 @@ -84,6 +94,8 @@ IK: c348c2fe2f3e1fb37a7ae1638163bd98 CK: e740c156278705a14e1a99ba6d31334f RES: 7c04e86a67967fcd +IMS nonce: amEFB2XKoyyQNxNw5dbcLa+5k+T0uAAAac3uu0pLW1g= +IMS res: fAToameWf80= SRES: 1b9297a7 Kc: 10687b71e4eb94c5 SQN: 281474976710655 @@ -99,6 +111,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpV0wAAVB3ed+pbHYw= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 32 @@ -115,6 +129,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpV1gAAeSZ6SzR62JA= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 37 @@ -131,6 +147,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpVxAAAEp3apPUBbiU= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 55 @@ -147,6 +165,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpVzAAAnRafX/ifYIc= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 63 @@ -163,6 +183,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpV6wAA1/xPfxnPwYA= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 24 @@ -179,6 +201,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpV6wAA1/xPfxnPwYA= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 24 @@ -195,6 +219,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpV6gAAqrBt4/1sAa8= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 25 @@ -211,6 +237,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpU8wAAy7ovu6PF4kI= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 256 @@ -227,6 +255,8 @@ IK: 27497388b6cb044648f396aa155b95ef CK: f64735036e5871319c679f4742a75ea1 RES: e229c19e791f2e41 +IMS nonce: OfovTj1SPYYZpztPZcPhTYcE9bpU8gAAj44UV52l7Ls= +IMS res: 4inBnnkfLkE= SRES: 9b36efdf Kc: 059a4f668f6fbe39 SQN: 257 diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c index eb6c65b..446d8ec 100644 --- a/utils/osmo-auc-gen.c +++ b/utils/osmo-auc-gen.c @@ -1,7 +1,7 @@ /*! \file osmo-auc-gen.c * GSM/GPRS/3G authentication testing tool. */ /* - * (C) 2010-2012 by Harald Welte + * (C) 2010-2021 by Harald Welte * * All Rights Reserved * @@ -34,8 +34,20 @@ #include #include +#include #include +static void print_base64(const char *fmt, const uint8_t *data, unsigned int len) +{ + uint8_t outbuf[256]; + size_t olen; + + OSMO_ASSERT(osmo_base64_encode(outbuf, sizeof(outbuf), &olen, data, len) == 0); + OSMO_ASSERT(sizeof(outbuf) > olen); + outbuf[olen] = '\0'; + printf(fmt, outbuf); +} + static void dump_triplets_dat(struct osmo_auth_vector *vec) { if (vec->auth_types & OSMO_AUTH_TYPE_UMTS) { @@ -53,10 +65,17 @@ printf("RAND:\t%s\n", osmo_hexdump_nospc(vec->rand, sizeof(vec->rand))); if (vec->auth_types & OSMO_AUTH_TYPE_UMTS) { + uint8_t inbuf[sizeof(vec->rand) + sizeof(vec->autn)]; + printf("AUTN:\t%s\n", osmo_hexdump_nospc(vec->autn, sizeof(vec->autn))); printf("IK:\t%s\n", osmo_hexdump_nospc(vec->ik, sizeof(vec->ik))); printf("CK:\t%s\n", osmo_hexdump_nospc(vec->ck, sizeof(vec->ck))); printf("RES:\t%s\n", osmo_hexdump_nospc(vec->res, vec->res_len)); + + memcpy(inbuf, vec->rand, sizeof(vec->rand)); + memcpy(inbuf + sizeof(vec->rand), vec->autn, sizeof(vec->autn)); + print_base64("IMS nonce:\t%s\n", inbuf, sizeof(inbuf)); + print_base64("IMS res:\t%s\n", vec->res, vec->res_len); } if (vec->auth_types & OSMO_AUTH_TYPE_GSM) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ibfa72410d8ff8e5b42063f1a12bff69ad2bebbb8 Gerrit-Change-Number: 25495 Gerrit-PatchSet: 6 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 19:58:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:58:35 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Validate band of RxFreq too In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25522 ) Change subject: lms,uhd: Validate band of RxFreq too ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 Gerrit-Change-Number: 25522 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 19:58: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 Sep 21 19:58:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:58:52 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Skip re-assigning same band In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25523 ) Change subject: lms,uhd: Skip re-assigning same band ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 Gerrit-Change-Number: 25523 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 19:58: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 Sep 21 19:59:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 19:59:16 +0000 Subject: Change in osmo-trx[master]: lms, uhd: Allow changing band between poweroff & poweron In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25524 ) Change subject: lms,uhd: Allow changing band between poweroff & poweron ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 Gerrit-Change-Number: 25524 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 19:59: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 Sep 21 20:00:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 20:00:48 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 20:00: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 Sep 21 20:01:20 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 20:01:20 +0000 Subject: Change in libosmocore[master]: refactor stat_item: report only changed values In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25465 ) Change subject: refactor stat_item: report only changed values ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 20: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 Tue Sep 21 20:02:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 20:02:35 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... Patch Set 1: (1 comment) a https://gerrit.osmocom.org/c/pysim/+/25508/1/pySim-prog.py File pySim-prog.py: https://gerrit.osmocom.org/c/pysim/+/25508/1/pySim-prog.py at 203 PS1, Line 203: parser.add_option("--card_handler_config", dest="card_handler_config", metavar="FILE", > I understand that. I would still change both to maintain constancy. [?] i agree with osmith -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 21 Sep 2021 20:02:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 20:03:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 20:03:15 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 21 Sep 2021 20:03:15 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 21 20:04:02 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 21 Sep 2021 20:04:02 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 21 Sep 2021 20:04: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 Sep 22 08:34:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 22 Sep 2021 08:34:18 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Validate band of RxFreq too In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25522 ) Change subject: lms,uhd: Validate band of RxFreq too ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 Gerrit-Change-Number: 25522 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 08:34: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 Sep 22 10:50:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:50:50 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Skip re-assigning same band In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25523 ) Change subject: lms,uhd: Skip re-assigning same band ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 Gerrit-Change-Number: 25523 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 22 Sep 2021 10:50:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 10:50:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:50:53 +0000 Subject: Change in osmo-trx[master]: lms, uhd: Allow changing band between poweroff & poweron In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25524 ) Change subject: lms,uhd: Allow changing band between poweroff & poweron ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 Gerrit-Change-Number: 25524 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 22 Sep 2021 10:50:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 10:50:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:50:56 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Validate band of RxFreq too In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25522 ) Change subject: lms,uhd: Validate band of RxFreq too ...................................................................... lms,uhd: Validate band of RxFreq too So far the validation is only done on TxFreq for all TRX. Let's also do it for RxFreq. Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 34 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 30fd665..221d7e2 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -1026,8 +1026,25 @@ bool LMSDevice::setRxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + LOGCHAN(chan, DDEV, NOTICE) << "Setting Rx Freq to " << wFreq << " Hz"; + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100, 1); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Rx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Rx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (!set_band(req_band)) + return false; + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_RX, chan, wFreq) < 0) { LOGCHAN(chan, DDEV, ERROR) << "Error setting Rx Freq to " << wFreq << " Hz"; return false; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 5486822..7a8eb9b 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -1102,12 +1102,29 @@ bool uhd_device::setRxFreq(double wFreq, size_t chan) { + uint16_t req_arfcn; + enum gsm_band req_band; + if (chan >= rx_freqs.size()) { LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan; return false; } ScopedLock lock(tune_lock); + req_arfcn = gsm_freq102arfcn(wFreq / 1000 / 100, 1); + if (req_arfcn == 0xffff) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown ARFCN for Rx Frequency " << wFreq / 1000 << " kHz"; + return false; + } + if (gsm_arfcn2band_rc(req_arfcn, &req_band) < 0) { + LOGCHAN(chan, DDEV, ALERT) << "Unknown GSM band for Rx Frequency " << wFreq + << " Hz (ARFCN " << req_arfcn << " )"; + return false; + } + + if (!set_band(req_band)) + return false; + return set_freq(wFreq, chan, false); } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I30eef2727ee96b1344aa1416edd66e2302b88964 Gerrit-Change-Number: 25522 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 10:50:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:50:57 +0000 Subject: Change in osmo-trx[master]: lms,uhd: Skip re-assigning same band In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25523 ) Change subject: lms,uhd: Skip re-assigning same band ...................................................................... lms,uhd: Skip re-assigning same band There's no need to spend time looking up again the same band description. Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/uhd/UHDDevice.cpp 2 files changed, 8 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 221d7e2..95bc41e 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -246,8 +246,10 @@ return false; } - band = req_band; - assign_band_desc(band); + if (band == 0) { + band = req_band; + assign_band_desc(band); + } return true; } diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 7a8eb9b..bc39a6d 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -264,8 +264,10 @@ return false; } - band = req_band; - assign_band_desc(band); + if (band == 0) { + band = req_band; + assign_band_desc(band); + } return true; } -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I6f5631c9e64b9c261d52a856d757d08d2f336947 Gerrit-Change-Number: 25523 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 10:50:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:50:57 +0000 Subject: Change in osmo-trx[master]: lms, uhd: Allow changing band between poweroff & poweron In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-trx/+/25524 ) Change subject: lms,uhd: Allow changing band between poweroff & poweron ...................................................................... lms,uhd: Allow changing band between poweroff & poweron Before this patch, reconnecting to osmo-trx and attempting to configure it for another band is not going to work without restarting the process. The new variable is added in order to still allow POWEROFF followed by a POWERON without need to reconfigure the device. In that case, previous configuration is kept. Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/uhd/UHDDevice.h 4 files changed, 16 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 95bc41e..6e5002c 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -134,8 +134,9 @@ LMSDevice::LMSDevice(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), - m_lms_dev(NULL), started(false), band((enum gsm_band)0), m_dev_type(LMS_DEV_UNKNOWN) + RadioDevice(tx_sps, rx_sps, iface, chan_num, lo_offset, tx_paths, rx_paths), + m_lms_dev(NULL), started(false), band_ass_curr_sess(false), band((enum gsm_band)0), + m_dev_type(LMS_DEV_UNKNOWN) { LOGC(DDEV, INFO) << "creating LMS device..."; @@ -240,16 +241,17 @@ bool LMSDevice::set_band(enum gsm_band req_band) { - if (band != 0 && req_band != band) { + if (band_ass_curr_sess && req_band != band) { LOGC(DDEV, ALERT) << "Requesting band " << gsm_band_name(req_band) << " different from previous band " << gsm_band_name(band); return false; } - if (band == 0) { + if (req_band != band) { band = req_band; assign_band_desc(band); } + band_ass_curr_sess = true; return true; } @@ -466,6 +468,8 @@ LMS_DestroyStream(m_lms_dev, &m_lms_stream_rx[i]); } + band_ass_curr_sess = false; + started = false; return true; } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 4ce8ed6..ab28250 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -87,6 +87,7 @@ TIMESTAMP ts_initial, ts_offset; std::vector tx_gains, rx_gains; + bool band_ass_curr_sess; /* true if "band" was set after last POWEROFF */ enum gsm_band band; struct dev_band_desc band_desc; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index bc39a6d..f109660 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -225,7 +225,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), - rx_gain_min(0.0), rx_gain_max(0.0), + rx_gain_min(0.0), rx_gain_max(0.0), band_ass_curr_sess(false), 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) @@ -258,16 +258,17 @@ bool uhd_device::set_band(enum gsm_band req_band) { - if (band != 0 && req_band != band) { + if (band_ass_curr_sess && req_band != band) { LOGC(DDEV, ALERT) << "Requesting band " << gsm_band_name(req_band) << " different from previous band " << gsm_band_name(band); return false; } - if (band == 0) { + if (req_band != band) { band = req_band; assign_band_desc(band); } + band_ass_curr_sess = true; return true; } @@ -795,6 +796,8 @@ for (size_t i = 0; i < rx_buffers.size(); i++) rx_buffers[i]->reset(); + band_ass_curr_sess = false; + started = false; return true; } diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h index 995b43c..659fd18 100644 --- a/Transceiver52M/device/uhd/UHDDevice.h +++ b/Transceiver52M/device/uhd/UHDDevice.h @@ -160,6 +160,7 @@ std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; + bool band_ass_curr_sess; /* true if "band" was set after last POWEROFF */ enum gsm_band band; struct dev_band_desc band_desc; size_t tx_spp, rx_spp; -- To view, visit https://gerrit.osmocom.org/c/osmo-trx/+/25524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-Change-Id: I43e5e1e4dcb36be605c6bd25dd6a5f3649e244e7 Gerrit-Change-Number: 25524 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 10:55:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:55:45 +0000 Subject: Change in osmo-bts[master]: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown pr... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25491 ) Change subject: nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends ...................................................................... nm_*_fsm: Move to state Disabled NotInstalled Locked when shtudown proc ends Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b --- M include/osmo-bts/nm_common_fsm.h M src/common/bts_shutdown_fsm.c M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c 8 files changed, 85 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 4dab0ea..13d7e0c 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -32,6 +32,7 @@ NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, NM_EV_SHUTDOWN_START, + NM_EV_SHUTDOWN_FINISH, NM_EV_RSL_UP, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_RSL_DOWN, /* RadioCarrier and BaseBand Transceiver only */ NM_EV_PHYLINK_UP, /* RadioCarrier and BaseBand Transceiver only */ diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index cffe7cd..a9db76f 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -152,6 +152,10 @@ static void st_exit_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { + struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + + osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SHUTDOWN_FINISH, NULL); + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); exit(0); } diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index a909c8b..1b83cbd 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -41,6 +41,17 @@ #define nm_bb_transc_fsm_state_chg(fi, NEXT_STATE) \ osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) +static void ev_dispatch_children(struct gsm_bts_bb_trx *bb_transc, uint32_t event) +{ + struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); + uint8_t tn; + + for (tn = 0; tn < TRX_NR_TS; tn++) { + struct gsm_bts_trx_ts *ts = &trx->ts[tn]; + osmo_fsm_inst_dispatch(ts->mo.fi, event, NULL); + } +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -184,8 +195,6 @@ static void nm_bb_transc_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; - struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); - uint8_t tn; switch (event) { case NM_EV_SHUTDOWN_START: @@ -193,10 +202,12 @@ oml_mo_state_chg(&bb_transc->mo, -1, -1, NM_STATE_SHUTDOWN); /* Propagate event to children: */ - for (tn = 0; tn < TRX_NR_TS; tn++) { - struct gsm_bts_trx_ts *ts = &trx->ts[tn]; - osmo_fsm_inst_dispatch(ts->mo.fi, NM_EV_SHUTDOWN_START, NULL); - } + ev_dispatch_children(bb_transc, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(bb_transc, event); + nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(false); @@ -213,6 +224,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -228,6 +240,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BBTRANSC_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -239,6 +252,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_BBTRANSC_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BBTRANSC_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", .onenter = st_op_enabled_on_enter, @@ -252,7 +266,8 @@ .num_states = ARRAY_SIZE(nm_bb_transc_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_bb_transc_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 93e5740..9210e7a 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -41,6 +41,15 @@ #define nm_bts_fsm_state_chg(fi, NEXT_STATE) \ osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) +static void ev_dispatch_children(struct gsm_bts *bts, uint32_t event) +{ + struct gsm_bts_trx *trx; + llist_for_each_entry(trx, &bts->trx_list, list) { + osmo_fsm_inst_dispatch(trx->mo.fi, event, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, event, NULL); + } +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -105,7 +114,6 @@ static void nm_bts_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; - struct gsm_bts_trx *trx; switch (event) { case NM_EV_SHUTDOWN_START: @@ -113,10 +121,12 @@ oml_mo_state_chg(&bts->mo, -1, -1, NM_STATE_SHUTDOWN); /* Propagate event to children: */ - llist_for_each_entry(trx, &bts->trx_list, list) { - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SHUTDOWN_START, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SHUTDOWN_START, NULL); - } + ev_dispatch_children(bts, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(bts, event); + nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(false); @@ -128,6 +138,7 @@ .in_event_mask = X(NM_EV_SW_ACT), .out_state_mask = + X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -138,6 +149,7 @@ X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = + X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -145,7 +157,8 @@ }, [NM_BTS_ST_OP_ENABLED] = { .in_event_mask = 0, - .out_state_mask = 0, + .out_state_mask = + X(NM_BTS_ST_OP_DISABLED_NOTINSTALLED), .name = "ENABLED", .onenter = st_op_enabled_on_enter, .action = st_op_enabled, @@ -158,7 +171,8 @@ .num_states = ARRAY_SIZE(nm_bts_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_bts_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index e958917..267341e 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -41,6 +41,13 @@ #define nm_bts_sm_fsm_state_chg(fi, NEXT_STATE) \ osmo_fsm_inst_state_chg(fi, NEXT_STATE, 0, 0) + +static void ev_dispatch_children(struct gsm_bts_sm *site_mgr, uint32_t event) +{ + struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); + osmo_fsm_inst_dispatch(bts->mo.fi, event, NULL); +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -105,7 +112,6 @@ static void nm_bts_sm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; - struct gsm_bts *bts = gsm_bts_sm_get_bts(site_mgr); switch (event) { case NM_EV_SHUTDOWN_START: @@ -113,7 +119,12 @@ oml_mo_state_chg(&site_mgr->mo, -1, -1, NM_STATE_SHUTDOWN); /* Propagate event to children: */ - osmo_fsm_inst_dispatch(bts->mo.fi, NM_EV_SHUTDOWN_START, NULL); + ev_dispatch_children(site_mgr, event); + break; + case NM_EV_SHUTDOWN_FINISH: + /* Propagate event to children: */ + ev_dispatch_children(site_mgr, event); + nm_bts_sm_fsm_state_chg(fi, NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED); break; default: OSMO_ASSERT(false); @@ -125,6 +136,7 @@ .in_event_mask = X(NM_EV_SW_ACT), .out_state_mask = + X(NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_SM_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -135,6 +147,7 @@ X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = + X(NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED) | X(NM_BTS_SM_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -142,7 +155,8 @@ }, [NM_BTS_SM_ST_OP_ENABLED] = { .in_event_mask = 0, - .out_state_mask = 0, + .out_state_mask = + X(NM_BTS_SM_ST_OP_DISABLED_NOTINSTALLED), .name = "ENABLED", .onenter = st_op_enabled_on_enter, .action = st_op_enabled, @@ -155,7 +169,8 @@ .num_states = ARRAY_SIZE(nm_bts_sm_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_bts_sm_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index fc3c8a9..e6c296f 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -177,6 +177,9 @@ /* Announce we start shutting down */ oml_mo_state_chg(&ts->mo, -1, -1, NM_STATE_SHUTDOWN); break; + case NM_EV_SHUTDOWN_FINISH: + nm_chan_fsm_state_chg(fi, NM_CHAN_ST_OP_DISABLED_NOTINSTALLED); + break; default: OSMO_ASSERT(false); } @@ -187,6 +190,7 @@ .in_event_mask = X(NM_EV_BBTRANSC_INSTALLED), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY), .name = "DISABLED_NOTINSTALLED", @@ -202,6 +206,7 @@ X(NM_EV_BBTRANSC_DISABLED) | X(NM_EV_RCARRIER_DISABLED), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_ENABLED), /* backward compatibility, buggy BSC */ .name = "DISABLED_DEPENDENCY", @@ -215,6 +220,7 @@ X(NM_EV_BBTRANSC_DISABLED) | X(NM_EV_RCARRIER_DISABLED), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_ENABLED) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY), .name = "DISABLED_OFFLINE", @@ -227,6 +233,7 @@ X(NM_EV_RCARRIER_DISABLED) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_CHAN_ST_OP_DISABLED_NOTINSTALLED) | X(NM_CHAN_ST_OP_DISABLED_OFFLINE) | X(NM_CHAN_ST_OP_DISABLED_DEPENDENCY), .name = "ENABLED", @@ -241,7 +248,8 @@ .num_states = ARRAY_SIZE(nm_chan_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_chan_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c index 3b73605..2182fef 100644 --- a/src/common/nm_common_fsm.c +++ b/src/common/nm_common_fsm.c @@ -28,6 +28,7 @@ { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" }, + { NM_EV_SHUTDOWN_FINISH, "SHUTDOWN_FINISH" }, { NM_EV_RSL_UP, "RSL_UP" }, { NM_EV_RSL_DOWN, "RSL_DOWN" }, { NM_EV_PHYLINK_UP, "PHYLINK_UP" }, diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 40b93e3..839632c 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -180,6 +180,9 @@ /* Announce we start shutting down */ oml_mo_state_chg(&trx->mo, -1, -1, NM_STATE_SHUTDOWN); break; + case NM_EV_SHUTDOWN_FINISH: + nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED); + break; default: OSMO_ASSERT(false); } @@ -195,6 +198,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) | X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "DISABLED_NOTINSTALLED", .onenter = st_op_disabled_notinstalled_on_enter, @@ -210,6 +214,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) | X(NM_RCARRIER_ST_OP_ENABLED), .name = "DISABLED_OFFLINE", .onenter = st_op_disabled_offline_on_enter, @@ -221,6 +226,7 @@ X(NM_EV_PHYLINK_DOWN) | X(NM_EV_DISABLE), .out_state_mask = + X(NM_RCARRIER_ST_OP_DISABLED_NOTINSTALLED) | X(NM_RCARRIER_ST_OP_DISABLED_OFFLINE), .name = "ENABLED", .onenter = st_op_enabled_on_enter, @@ -234,7 +240,8 @@ .num_states = ARRAY_SIZE(nm_rcarrier_fsm_states), .event_names = nm_fsm_event_names, .allstate_action = nm_rcarrier_allstate, - .allstate_event_mask = X(NM_EV_SHUTDOWN_START), + .allstate_event_mask = X(NM_EV_SHUTDOWN_START) | + X(NM_EV_SHUTDOWN_FINISH), .log_subsys = DOML, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c070adbba6b4abb19467a02d6449a443657ae2b Gerrit-Change-Number: 25491 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 Wed Sep 22 10:55:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 10:55:47 +0000 Subject: Change in osmo-bts[master]: abis: Drop internal OML msg queue In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25493 ) Change subject: abis: Drop internal OML msg queue ...................................................................... abis: Drop internal OML msg queue There's no real use for this queue. If the link is gone, it makes no sense to keep old messages. Instead, BTS should generate new messages sharing current state when link becomes established (it actually does so already). Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 --- M include/osmo-bts/bts.h M src/common/abis.c M src/common/bts.c 3 files changed, 6 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index 6e0e47b..d3cb6bf 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -302,7 +302,6 @@ struct paging_state *paging_state; struct llist_head bsc_oml_hosts; - struct llist_head oml_queue; unsigned int rtp_jitter_buf_ms; bool rtp_jitter_adaptive; diff --git a/src/common/abis.c b/src/common/abis.c index 31a3505..8e713d2 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -104,19 +104,6 @@ memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); } -static void drain_oml_queue(struct gsm_bts *bts) -{ - struct msgb *msg, *msg2; - - llist_for_each_entry_safe(msg, msg2, &bts->oml_queue, list) { - /* osmo-bts uses msg->trx internally, but libosmo-abis uses - * the signalling link at msg->dst */ - llist_del(&msg->list); - msg->dst = bts->oml_link; - abis_sendmsg(msg); - } -} - static int pick_next_bsc(struct osmo_fsm_inst *fi) { struct abis_link_fsm_priv *priv = fi->priv; @@ -208,7 +195,6 @@ static void abis_link_connected_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) { - drain_oml_queue(g_bts); bts_link_estab(g_bts); } @@ -324,14 +310,14 @@ struct gsm_bts *bts = msg->trx->bts; if (!bts->oml_link) { - llist_add_tail(&msg->list, &bts->oml_queue); + LOGP(DABIS, LOGL_INFO, "Drop Tx OML msg, OML link is down\n"); return 0; - } else { - /* osmo-bts uses msg->trx internally, but libosmo-abis uses - * the signalling link at msg->dst */ - msg->dst = bts->oml_link; - return abis_sendmsg(msg); } + + /* osmo-bts uses msg->trx internally, but libosmo-abis uses + * the signalling link at msg->dst */ + msg->dst = bts->oml_link; + return abis_sendmsg(msg); } int abis_bts_rsl_sendmsg(struct msgb *msg) diff --git a/src/common/bts.c b/src/common/bts.c index 05584aa..67e6736 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -407,7 +407,6 @@ bts->smscb_queue_tgt_len = 2; bts->smscb_queue_hyst = 2; - INIT_LLIST_HEAD(&bts->oml_queue); INIT_LLIST_HEAD(&bts->bsc_oml_hosts); /* register DTX DL FSM */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iecd3c7cb96f5fff3b4c7e04c74e031df0f7a6987 Gerrit-Change-Number: 25493 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 Wed Sep 22 11:00:22 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 11:00:22 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25519/2/src/osmo-bts-trx/trx_provision_fsm.c File src/osmo-bts-trx/trx_provision_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/25519/2/src/osmo-bts-trx/trx_provision_fsm.c at 100 PS2, Line 100: > looks like a memset to zero? Kind of but not for all fields in struct, hence I manually set them to zero. Some fields must not be zeroed here, like forced_max_power_red or nominal_power_set_by_vty. I could rearrange all these fields into its own substructs and memzero them, but that would require touching different parts of code and as you can see I'm already queueing quite a lot of changes in the entire patchset. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 11:00:22 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 11:00:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 11:00:54 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 to look at the new patch set (#4). Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... nm_*fsm: Make FSMs aware of object being properly configured or not This will allow in the future advertising children objects that the parent object has been configured. It is useful for instance to let TRX know that the BTS is configured. Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 --- M include/osmo-bts/nm_common_fsm.h M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 15 files changed, 263 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/25505/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 11:00:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 11:00:55 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... bts-trx: Keep the process ongoing trying to reconnect on Abis link down Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/33/25533/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index f35c9ba..8263cab 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -195,10 +195,11 @@ osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } -/* on RSL failure, deactivate transceiver */ void bts_model_abis_close(struct gsm_bts *bts) { - bts_shutdown(bts, "Abis close"); + /* Go into shutdown state deactivating transceivers until Abis link + * becomes up again */ + bts_shutdown_ext(bts, "Abis close", false); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-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 Sep 22 12:23:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 12:23:39 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25505 ) Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 22 Sep 2021 12:23: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 Sep 22 12:23:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 12:23:52 +0000 Subject: Change in osmo-bts[master]: nm_*fsm: Make FSMs aware of object being properly configured or not In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25505 ) Change subject: nm_*fsm: Make FSMs aware of object being properly configured or not ...................................................................... nm_*fsm: Make FSMs aware of object being properly configured or not This will allow in the future advertising children objects that the parent object has been configured. It is useful for instance to let TRX know that the BTS is configured. Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 --- M include/osmo-bts/nm_common_fsm.h M include/osmo-bts/oml.h M src/common/nm_bb_transc_fsm.c M src/common/nm_bts_fsm.c M src/common/nm_bts_sm_fsm.c M src/common/nm_channel_fsm.c M src/common/nm_common_fsm.c M src/common/nm_radio_carrier_fsm.c M src/osmo-bts-lc15/oml.c M src/osmo-bts-oc2g/oml.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-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 15 files changed, 263 insertions(+), 40 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/include/osmo-bts/nm_common_fsm.h b/include/osmo-bts/nm_common_fsm.h index 13d7e0c..1f0accc 100644 --- a/include/osmo-bts/nm_common_fsm.h +++ b/include/osmo-bts/nm_common_fsm.h @@ -25,10 +25,13 @@ #include #include +#include /* Common */ enum nm_fsm_events { NM_EV_SW_ACT, + NM_EV_SETATTR_ACK, /* data: struct nm_fsm_ev_setattr_data */ + NM_EV_SETATTR_NACK, /* data: struct nm_fsm_ev_setattr_data */ NM_EV_OPSTART_ACK, NM_EV_OPSTART_NACK, NM_EV_SHUTDOWN_START, @@ -46,6 +49,11 @@ }; extern const struct value_string nm_fsm_event_names[]; +struct nm_fsm_ev_setattr_data { + struct msgb *msg; /* msgb ownership is transferred to FSM */ + int cause; +}; + /* BTS SiteManager */ enum nm_bts_sm_op_fsm_states { diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h index 42284f9..90c9077 100644 --- a/include/osmo-bts/oml.h +++ b/include/osmo-bts/oml.h @@ -32,6 +32,7 @@ struct gsm_bts *bts; /* NM BTS Site Manager FSM */ struct osmo_fsm_inst *fi; + bool setattr_success; bool opstart_success; }; diff --git a/src/common/nm_bb_transc_fsm.c b/src/common/nm_bb_transc_fsm.c index 1b83cbd..40d5134 100644 --- a/src/common/nm_bb_transc_fsm.c +++ b/src/common/nm_bb_transc_fsm.c @@ -59,6 +59,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; + bb_transc->mo.setattr_success = false; bb_transc->mo.opstart_success = false; oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -99,6 +100,7 @@ struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); int i; + bb_transc->mo.setattr_success = false; bb_transc->mo.opstart_success = false; oml_mo_state_chg(&bb_transc->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); @@ -114,10 +116,17 @@ { struct gsm_bts_bb_trx *bb_transc = (struct gsm_bts_bb_trx *)fi->priv; struct gsm_bts_trx *trx = gsm_bts_bb_trx_get_trx(bb_transc); + struct nm_fsm_ev_setattr_data *setattr_data; bool phy_state_connected; bool rsl_link_connected; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + bb_transc->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: bb_transc->mo.opstart_success = true; oml_mo_opstart_ack(&bb_transc->mo); @@ -150,6 +159,7 @@ rsl_link_connected = true; } + /* We so far don't expect any SetAttributes for this NM object */ if (rsl_link_connected && phy_state_connected && bb_transc->mo.opstart_success) { nm_bb_transc_fsm_state_chg(fi, NM_BBTRANSC_ST_OP_ENABLED); @@ -232,6 +242,8 @@ }, [NM_BBTRANSC_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK) | X(NM_EV_RSL_UP) | diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 9210e7a..54737bf 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -57,6 +57,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + bts->mo.setattr_success = false; bts->mo.opstart_success = false; oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -78,6 +79,7 @@ static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + bts->mo.setattr_success = false; bts->mo.opstart_success = false; oml_mo_state_chg(&bts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } @@ -85,8 +87,15 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + bts->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: bts->mo.opstart_success = true; oml_mo_opstart_ack(&bts->mo); @@ -146,6 +155,8 @@ }, [NM_BTS_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = diff --git a/src/common/nm_bts_sm_fsm.c b/src/common/nm_bts_sm_fsm.c index 267341e..2d43315 100644 --- a/src/common/nm_bts_sm_fsm.c +++ b/src/common/nm_bts_sm_fsm.c @@ -55,6 +55,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + site_mgr->mo.setattr_success = false; site_mgr->mo.opstart_success = false; oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -76,6 +77,7 @@ static void st_op_disabled_offline_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + site_mgr->mo.setattr_success = false; site_mgr->mo.opstart_success = false; oml_mo_state_chg(&site_mgr->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); } @@ -83,8 +85,15 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_sm *site_mgr = (struct gsm_bts_sm *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + site_mgr->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: site_mgr->mo.opstart_success = true; oml_mo_opstart_ack(&site_mgr->mo); @@ -144,6 +153,8 @@ }, [NM_BTS_SM_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK), .out_state_mask = diff --git a/src/common/nm_channel_fsm.c b/src/common/nm_channel_fsm.c index e6c296f..f933a16 100644 --- a/src/common/nm_channel_fsm.c +++ b/src/common/nm_channel_fsm.c @@ -55,6 +55,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + ts->mo.setattr_success = false; ts->mo.opstart_success = false; oml_mo_state_chg(&ts->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -86,8 +87,15 @@ static void st_op_disabled_dependency(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + ts->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: LOGPFSML(fi, LOGL_NOTICE, "BSC trying to activate TS while still in avail=dependency. " "Allowing it to stay backward-compatible with older osmo-bts versions, but BSC is wrong.\n"); @@ -123,8 +131,15 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_trx_ts *ts = (struct gsm_bts_trx_ts *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + ts->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: ts->mo.opstart_success = true; oml_mo_opstart_ack(&ts->mo); @@ -199,6 +214,8 @@ }, [NM_CHAN_ST_OP_DISABLED_DEPENDENCY] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | /* backward compatibility, buggy BSC */ X(NM_EV_OPSTART_NACK) | X(NM_EV_BBTRANSC_ENABLED) | @@ -215,6 +232,8 @@ }, [NM_CHAN_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK) | X(NM_EV_BBTRANSC_DISABLED) | diff --git a/src/common/nm_common_fsm.c b/src/common/nm_common_fsm.c index 2182fef..be11bef 100644 --- a/src/common/nm_common_fsm.c +++ b/src/common/nm_common_fsm.c @@ -25,6 +25,8 @@ const struct value_string nm_fsm_event_names[] = { { NM_EV_SW_ACT, "SW_ACT" }, + { NM_EV_SETATTR_ACK, "SETATTR_ACK" }, + { NM_EV_SETATTR_NACK, "SETATTR_NACK" }, { NM_EV_OPSTART_ACK, "OPSTART_ACK" }, { NM_EV_OPSTART_NACK, "OPSTART_NACK" }, { NM_EV_SHUTDOWN_START, "SHUTDOWN_START" }, diff --git a/src/common/nm_radio_carrier_fsm.c b/src/common/nm_radio_carrier_fsm.c index 839632c..be03d1d 100644 --- a/src/common/nm_radio_carrier_fsm.c +++ b/src/common/nm_radio_carrier_fsm.c @@ -48,6 +48,7 @@ static void st_op_disabled_notinstalled_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; + trx->mo.setattr_success = false; trx->mo.opstart_success = false; oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_NOT_INSTALLED, NM_STATE_LOCKED); } @@ -81,6 +82,7 @@ struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; unsigned int i; + trx->mo.setattr_success = false; trx->mo.opstart_success = false; oml_mo_state_chg(&trx->mo, NM_OPSTATE_DISABLED, NM_AVSTATE_OFF_LINE, -1); @@ -95,10 +97,17 @@ static void st_op_disabled_offline(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts_trx *trx = (struct gsm_bts_trx *)fi->priv; + struct nm_fsm_ev_setattr_data *setattr_data; bool phy_state_connected; bool rsl_link_connected; switch (event) { + case NM_EV_SETATTR_ACK: + case NM_EV_SETATTR_NACK: + setattr_data = (struct nm_fsm_ev_setattr_data *)data; + trx->mo.setattr_success = setattr_data->cause == 0; + oml_fom_ack_nack(setattr_data->msg, setattr_data->cause); + break; case NM_EV_OPSTART_ACK: trx->mo.opstart_success = true; oml_mo_opstart_ack(&trx->mo); @@ -131,12 +140,13 @@ } if (rsl_link_connected && phy_state_connected && - trx->mo.opstart_success) { + trx->mo.setattr_success && trx->mo.opstart_success) { nm_rcarrier_fsm_state_chg(fi, NM_RCARRIER_ST_OP_ENABLED); } else { - LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s\n", + LOGPFSML(fi, LOGL_INFO, "Delay switch to operative state Enabled, wait for:%s%s%s%s\n", rsl_link_connected ? "" : " rsl", phy_state_connected ? "" : " phy", + trx->mo.setattr_success ? "" : " setattr", trx->mo.opstart_success ? "" : " opstart"); } @@ -206,6 +216,8 @@ }, [NM_RCARRIER_ST_OP_DISABLED_OFFLINE] = { .in_event_mask = + X(NM_EV_SETATTR_ACK) | + X(NM_EV_SETATTR_NACK) | X(NM_EV_OPSTART_ACK) | X(NM_EV_OPSTART_NACK) | X(NM_EV_RSL_UP) | diff --git a/src/osmo-bts-lc15/oml.c b/src/osmo-bts-lc15/oml.c index 9d0d99a..6169ef7 100644 --- a/src/osmo-bts-lc15/oml.c +++ b/src/osmo-bts-lc15/oml.c @@ -1834,11 +1834,31 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { - struct gsm_bts_trx *trx = obj; - struct lc15l1_hdl *fl1h = trx_lc15l1_hdl(trx); + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + struct gsm_bts_trx *trx; + struct lc15l1_hdl *fl1h; + uint8_t cell_size; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: + trx = obj; + fl1h = trx_lc15l1_hdl(trx); /* convert max TA to max cell size in qbits */ - uint8_t cell_size = bts->max_ta << 2; + cell_size = bts->max_ta << 2; #if LITECELL15_API_VERSION >= LITECELL15_API(2,1,7) /* We do not need to check for L1 handle @@ -1870,9 +1890,14 @@ } #endif } + break; } - /* FIXME: we actually need to send a ACK or NACK for the OML message */ - return oml_fom_ack_nack(msg, 0); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index b50e151..ba85f36 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -1843,11 +1843,31 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { - struct gsm_bts_trx *trx = obj; - struct oc2gl1_hdl *fl1h = trx_oc2gl1_hdl(trx); + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + struct gsm_bts_trx *trx; + struct oc2gl1_hdl *fl1h; + uint8_t cell_size; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: + trx = obj; + fl1h = trx_oc2gl1_hdl(trx); /* convert max TA to max cell size in qbits */ - uint8_t cell_size = bts->max_ta << 2; + cell_size = bts->max_ta << 2; /* We do not need to check for L1 handle * because the max cell size parameter can receive before MphInit */ @@ -1876,11 +1896,14 @@ l1if_set_txpower_c0_idle_pwr_red(fl1h, fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red); } } - + break; } - /* FIXME: we actually need to send a ACK or NACK for the OML message */ - return oml_fom_ack_nack(msg, 0); + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 1830599..73ab9bd 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1748,13 +1748,36 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { - struct gsm_bts_trx *trx = obj; - /*struct octphy_hdl *fl1h = trx_octphy_hdl(trx); */ + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + struct gsm_bts_trx *trx; - power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); } - return oml_fom_ack_nack(msg, 0); + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: + trx = obj; + /*struct octphy_hdl *fl1h = trx_octphy_hdl(trx); */ + power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0, NULL); + break; + } + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } diff --git a/src/osmo-bts-omldummy/bts_model.c b/src/osmo-bts-omldummy/bts_model.c index 5bfcfca..f5d59a3 100644 --- a/src/osmo-bts-omldummy/bts_model.c +++ b/src/osmo-bts-omldummy/bts_model.c @@ -97,20 +97,38 @@ struct tlv_parsed *new_attr, int kind, void *obj) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - int cause = 0; + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: - cause = vbts_set_bts(obj); + ev_data.cause = vbts_set_bts(obj); break; case NM_MT_SET_RADIO_ATTR: - cause = vbts_set_trx(obj); + ev_data.cause = vbts_set_trx(obj); break; case NM_MT_SET_CHAN_ATTR: - cause = vbts_set_ts(obj); + ev_data.cause = vbts_set_ts(obj); break; } - return oml_fom_ack_nack(msg, cause); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* MO: TS 12.21 Managed Object */ diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c index 194afcd..74af56b 100644 --- a/src/osmo-bts-sysmo/oml.c +++ b/src/osmo-bts-sysmo/oml.c @@ -1748,17 +1748,40 @@ int bts_model_apply_oml(struct gsm_bts *bts, struct msgb *msg, struct tlv_parsed *new_attr, int kind, void *obj) { - if (kind == NM_OC_RADIO_CARRIER) { - struct gsm_bts_trx *trx = obj; - struct femtol1_hdl *fl1h = trx_femtol1_hdl(trx); + struct abis_om_fom_hdr *foh = msgb_l3(msg); + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + struct gsm_bts_trx *trx; + struct femtol1_hdl *fl1h; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } + + switch (foh->msg_type) { + case NM_MT_SET_RADIO_ATTR: + trx = obj; + fl1h = trx_femtol1_hdl(trx); /* 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, NULL); + break; } - /* FIXME: we actually need to send a ACK or NACK for the OML message */ - return oml_fom_ack_nack(msg, 0); + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 6b417f4..90adde2 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -555,21 +555,38 @@ struct tlv_parsed *new_attr, int kind, void *obj) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - int cause = 0; + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: - cause = trx_set_bts(obj, new_attr); + ev_data.cause = trx_set_bts(obj, new_attr); break; case NM_MT_SET_RADIO_ATTR: - cause = trx_set_trx(obj); + ev_data.cause = trx_set_trx(obj); break; case NM_MT_SET_CHAN_ATTR: - cause = trx_set_ts(obj); + ev_data.cause = trx_set_ts(obj); break; } - return oml_fom_ack_nack(msg, cause); + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* callback from OML */ diff --git a/src/osmo-bts-virtual/bts_model.c b/src/osmo-bts-virtual/bts_model.c index 48e9400..8704056 100644 --- a/src/osmo-bts-virtual/bts_model.c +++ b/src/osmo-bts-virtual/bts_model.c @@ -110,20 +110,38 @@ struct tlv_parsed *new_attr, int kind, void *obj) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - int cause = 0; + struct gsm_abis_mo *mo = gsm_objclass2mo(bts, foh->obj_class, &foh->obj_inst); + struct nm_fsm_ev_setattr_data ev_data = { + .msg = msg, + .cause = 0, + }; + int rc; + + /* TODO: NM Object without FSM: */ + switch (foh->obj_class) { + case NM_OC_GPRS_NSE: + case NM_OC_GPRS_CELL: + case NM_OC_GPRS_NSVC: + return oml_fom_ack_nack(ev_data.msg, ev_data.cause); + } switch (foh->msg_type) { case NM_MT_SET_BTS_ATTR: - cause = vbts_set_bts(obj); + ev_data.cause = vbts_set_bts(obj); break; case NM_MT_SET_RADIO_ATTR: - cause = vbts_set_trx(obj); + ev_data.cause = vbts_set_trx(obj); break; case NM_MT_SET_CHAN_ATTR: - cause = vbts_set_ts(obj); + ev_data.cause = vbts_set_ts(obj); break; } - return oml_fom_ack_nack(msg, cause); + + rc = osmo_fsm_inst_dispatch(mo->fi, + ev_data.cause == 0 ? NM_EV_SETATTR_ACK : NM_EV_SETATTR_NACK, + &ev_data); + /* msgb ownsership is transferred to FSM if it received ev: */ + return rc == 0 ? 1 : 0; } /* MO: TS 12.21 Managed Object */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie319465fd0e991bab8451ea34ec72ff3702533d2 Gerrit-Change-Number: 25505 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 Wed Sep 22 12:23:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 12:23:52 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Fix event name In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25515 ) Change subject: bts_shutdown_fsm: Fix event name ...................................................................... bts_shutdown_fsm: Fix event name Change-Id: Id042ae37f7c9dbd2edbb76932abb91d605d85e26 --- M src/common/bts_shutdown_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index a9db76f..c16b76a 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -197,7 +197,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), + OSMO_VALUE_STRING(BTS_SHUTDOWN_EV_TRX_CLOSED), { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id042ae37f7c9dbd2edbb76932abb91d605d85e26 Gerrit-Change-Number: 25515 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 12:23:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 12:23:53 +0000 Subject: Change in osmo-bts[master]: trx_if: Set pointer to null after freeing it In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25516 ) Change subject: trx_if: Set pointer to null after freeing it ...................................................................... trx_if: Set pointer to null after freeing it Change-Id: Icd93c9968095a8801aafe9440806cb5786320cbc --- M src/osmo-bts-trx/trx_if.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 968c335..bfeb2ec 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1199,6 +1199,7 @@ talloc_free(tcm); } talloc_free(l1h->last_acked); + l1h->last_acked = NULL; } /*! close the TRX for given handle (data + control socket) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Icd93c9968095a8801aafe9440806cb5786320cbc Gerrit-Change-Number: 25516 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 13:58:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 13:58:59 +0000 Subject: Change in osmo-bts[master]: l1sap: Support rx of empty rlcmac blocks from PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25534 ) Change subject: l1sap: Support rx of empty rlcmac blocks from PCU ...................................................................... l1sap: Support rx of empty rlcmac blocks from PCU This way the PCU can signal idle RLCMAC blocks (no transmission required) to the BTS, which can then send dummy/fill blocks aplying power reduction as needed by TRX. The block with len=0 is submitted to lower layers up to the scheduler, which will finally drop it in trx_sched_ph_data_req(). Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Related: SYS#4919 --- M src/common/l1sap.c 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/25534/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 8aa80e7..b9bc675 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1977,8 +1977,12 @@ l1sap->u.data.chan_nr = RSL_CHAN_OSMO_PDCH | ts->nr; l1sap->u.data.link_id = 0x00; l1sap->u.data.fn = fn; - msg->l2h = msgb_put(msg, len); - memcpy(msg->l2h, data, len); + if (len) { + msg->l2h = msgb_put(msg, len); + memcpy(msg->l2h, data, len); + } else { + msg->l2h = NULL; /* Idle block */ + } return l1sap_down(ts->trx, l1sap); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Gerrit-Change-Number: 25534 Gerrit-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 Sep 22 14:00:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 14:00:38 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... pcuif: Submit data_req with len=0 as idle frames This way PCU always answers DATA.ind and the BTS can still clearly identify idle frames. It also simplifies testing and verification of correct behavior. Related: SYS#4919 Change-Id: Ife718eeed2af011479c03099ea109518f04567bc --- M src/gprs_rlcmac_sched.cpp M src/pcu_l1_if.cpp 2 files changed, 30 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/35/25535/1 diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp index 405b7db..b3639fb 100644 --- a/src/gprs_rlcmac_sched.cpp +++ b/src/gprs_rlcmac_sched.cpp @@ -486,9 +486,9 @@ } /* Prio 3: send dummy control message if need to poll or USF */ else { - /* If there's no TBF attached to this PDCH, we can early skip - * since there's nothing to transmit nor to poll/USF. This way - * we help BTS energy saving (on TRX!=C0) by sending nothing + /* If there's no TBF attached to this PDCH, we can submit an empty + * data_req since there's nothing to transmit nor to poll/USF. This + * way we help BTS energy saving (on TRX!=C0) by sending nothing * instead of a dummy block. The early return is done here and * not at the start of the function because the condition below * (num_tbfs==0) may not be enough, because temporary dummy TBFs @@ -504,8 +504,11 @@ * TRX0, since BTS is not preparing dummy bursts on idle TS for us */ skip_idle = skip_idle && trx != 0; #endif - if (skip_idle) - return 0; + if (skip_idle) { + msg = NULL; /* submit empty frame */ + goto tx_pdtch; + } + if ((msg = sched_dummy())) { /* increase counter */ gsmtap_cat = PCU_GSMTAP_C_DL_DUMMY; @@ -535,6 +538,7 @@ tap_n_acc(msg, bts, trx, ts, fn, gsmtap_cat); /* send PDTCH/PACCH to L1 */ +tx_pdtch: pcu_l1if_tx_pdtch(msg, bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr); return 0; diff --git a/src/pcu_l1_if.cpp b/src/pcu_l1_if.cpp index 1600da0..8d9defc 100644 --- a/src/pcu_l1_if.cpp +++ b/src/pcu_l1_if.cpp @@ -212,7 +212,8 @@ data_req->trx_nr = trx; data_req->ts_nr = ts; data_req->block_nr = block_nr; - memcpy(data_req->data, data, len); + if (len) + memcpy(data_req->data, data, len); data_req->len = len; return pcu_sock_send(msg); @@ -223,12 +224,20 @@ { #ifdef ENABLE_DIRECT_PHY if (bts->trx[trx].fl1h) { + if (!msg) /* Simply skip sending idle frames to L1 */ + return; l1if_pdch_req(bts->trx[trx].fl1h, ts, 0, fn, arfcn, block_nr, msg->data, msg->len); msgb_free(msg); return; } #endif + if (!msg) { + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, + NULL, 0); + return; + } + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PDTCH, arfcn, fn, block_nr, msg->data, msg->len); msgb_free(msg); @@ -243,10 +252,17 @@ gsmtap_send(the_pcu->gsmtap, arfcn, ts, GSMTAP_CHANNEL_PTCCH, 0, fn, 0, 0, data, data_len); #ifdef ENABLE_DIRECT_PHY if (bts->trx[trx].fl1h) { + if (!data_len) /* Simply skip sending idle frames to L1 */ + return; l1if_pdch_req(bts->trx[trx].fl1h, ts, 1, fn, arfcn, block_nr, data, data_len); return; } #endif + if (!data_len) { + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, NULL, 0); + return; + } + pcu_tx_data_req(bts, trx, ts, PCU_IF_SAPI_PTCCH, arfcn, fn, block_nr, data, data_len); } @@ -544,8 +560,11 @@ * TRX0, since BTS is not preparing dummy bursts on idle TS for us: */ skip_idle = skip_idle && trx != 0; #endif - if (skip_idle) + if (skip_idle) { + pcu_l1if_tx_ptcch(bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr, + NULL, 0); return 0; + } pcu_l1if_tx_ptcch(bts, trx, ts, bts->trx[trx].arfcn, fn, block_nr, pdch->ptcch_msg, GSM_MACBLOCK_LEN); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-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 Sep 22 14:01:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 14:01:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Allow empty rlcmac blocks in data_req References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 ) Change subject: pcu: Allow empty rlcmac blocks in data_req ...................................................................... pcu: Allow empty rlcmac blocks in data_req They are used by osmo-pcu to signal idle blocks. Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4 --- M pcu/GPRS_Components.ttcn M pcu/PCUIF_Components.ttcn 2 files changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/25536/1 diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 4446b63..1014498 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -1094,7 +1094,7 @@ arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, - tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH)) + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), *) ) -> value data_msg; } @@ -1138,6 +1138,12 @@ runs on MS_BTS_IFACE_CT { var BTS_PDTCH_Block data_msg; f_pcuif_rx_data_req_pdtch(data_msg, nr := nr); + + if (data_msg.dl_block == omit) { + setverdict(fail, "Expected RLCMAC block but received idle block (", data_msg.raw.len, ")"); + f_shutdown(__BFILE__, __LINE__); + } + dl_block := data_msg.dl_block; dl_fn := data_msg.raw.fn; diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn index 66b2e21..30982da 100644 --- a/pcu/PCUIF_Components.ttcn +++ b/pcu/PCUIF_Components.ttcn @@ -133,12 +133,12 @@ type record BTS_PDTCH_Block { uint8_t bts_nr, PCUIF_data raw, - RlcmacDlBlock dl_block + RlcmacDlBlock dl_block optional }; type record BTS_PTCCH_Block { uint8_t bts_nr, PCUIF_data raw, - PTCCHDownlinkMsg dl_block + PTCCHDownlinkMsg dl_block optional }; type record BTS_CCCH_Block { uint8_t bts_nr, @@ -554,14 +554,22 @@ [decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { pcu_msg_pdtch.bts_nr := bts_nr; pcu_msg_pdtch.raw := pcu_msg.u.data_req; - pcu_msg_pdtch.dl_block := dec_RlcmacDlBlock(pcu_msg_pdtch.raw.data); + if (pcu_msg_pdtch.raw.len != 0) { + pcu_msg_pdtch.dl_block := dec_RlcmacDlBlock(pcu_msg_pdtch.raw.data); + } else { + pcu_msg_pdtch.dl_block := omit; + } TC.send(pcu_msg_pdtch); repeat; } [decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := PCU_IF_SAPI_PTCCH)) -> value pcu_msg { pcu_msg_ptcch.bts_nr := bts_nr; pcu_msg_ptcch.raw := pcu_msg.u.data_req; - pcu_msg_ptcch.dl_block := dec_PTCCHDownlinkMsg(pcu_msg_ptcch.raw.data); + if (pcu_msg_ptcch.raw.len != 0) { + pcu_msg_ptcch.dl_block := dec_PTCCHDownlinkMsg(pcu_msg_ptcch.raw.data); + } else { + pcu_msg_ptcch.dl_block := omit; + } TC.send(pcu_msg_ptcch); repeat; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4 Gerrit-Change-Number: 25536 Gerrit-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 Sep 22 14:01:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 14:01:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... pcu: Adapt tests to pass with new idle blocks from PCU Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 --- M pcu/PCU_Tests.ttcn 1 file changed, 61 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/25537/1 diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 0324439..32dae1f 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -397,6 +397,7 @@ /* Make sure TBF is released and no data is sent for in after reciving a Suspend Request from that MS. See OS#4761 */ testcase TC_pcuif_suspend_active_tbf() runs on RAW_PCU_Test_CT { var octetstring ra_id := enc_RoutingAreaIdentification(mp_gb_cfg.bvc[0].cell_id.ra_id); + var BTS_PDTCH_Block data_msg; var RlcmacDlBlock dl_block; var octetstring data := f_rnd_octstring(10); var uint32_t sched_fn; @@ -454,9 +455,17 @@ /* Make sure we don't receive data for that TBF since it was released * before. Also check our TBF is not polled for UL. */ - f_rx_rlcmac_dl_block_exp_dummy(dl_block); - if (dl_block.ctrl.mac_hdr.usf != USF_UNUSED) { - setverdict(fail, "Unexpected USF ", dl_block.ctrl.mac_hdr.usf); + f_pcuif_rx_data_req_pdtch(data_msg); + if (data_msg.dl_block == omit) { + /* IDLE block, expected on new PCU versions */ + } else if (match(data_msg.dl_block, tr_RLCMAC_DUMMY_CTRL())) { + /* Dummy RLCMAC block, expected on older PCU versions */ + if (data_msg.dl_block.ctrl.mac_hdr.usf != USF_UNUSED) { + setverdict(fail, "Unexpected USF ", data_msg.dl_block.ctrl.mac_hdr.usf); + f_shutdown(__BFILE__, __LINE__); + } + } else { + setverdict(fail, "Unexpected dl_block", data_msg.dl_block); f_shutdown(__BFILE__, __LINE__); } @@ -583,7 +592,7 @@ f_shutdown(__BFILE__, __LINE__, final := true); } -/* Verify that the PCU generates valid PTCCH/D messages +/* Verify that the PCU generates empty blocks in PTCCH/D * while neither Uplink nor Downlink TBF is established. */ testcase TC_ta_ptcch_idle() runs on RAW_PCU_Test_CT { var BTS_PTCCH_Block pcu_msg; @@ -599,9 +608,15 @@ T.start(5.0); alt { - /* Make sure the message is encoded correctly - * TODO: do we expect all TA values to be equal '1111111'B? */ - [] as_rx_ptcch(pcu_msg, tr_PTCCHDownlinkMsg); + [] BTS.receive(tr_PCUIF_DATA_PTCCH(0, + tr_PCUIF_DATA(0, 7, sapi := PCU_IF_SAPI_PTCCH), + omit)) { + setverdict(pass); + } + [] as_rx_ptcch(pcu_msg, tr_PTCCHDownlinkMsg) { + setverdict(fail, "Expected IDLE block instead of PTCCH/D block"); + f_shutdown(__BFILE__, __LINE__); + } [] BTS.receive(PCUIF_Message:?) { repeat; } [] T.timeout { @@ -1947,7 +1962,7 @@ repeat; } /* At this point in time (N3105_MAX reached), PCU already moved TBF to - * RELEASE state so no data for it is tx'ed, hence the dummy blocks: + * RELEASE state so no data for it is tx'ed, hence the dummy/idle blocks: */ [N3105 == N3105_MAX] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), @@ -1964,13 +1979,25 @@ block_nr := nr.blk_nr)); repeat; } + [N3105 == N3105_MAX] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + omit)) -> value data_msg { + /* We may already receive idle blocks before our own TTCN3 timer + * triggers due to the TBF being released. Keep going until our T_3195 triggers. */ + nr := ts_TsTrxBtsNum; + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), + block_nr := nr.blk_nr)); + repeat; + } [T_3195.running] T_3195.timeout { log("T_3195 timeout"); /* Done in alt, wait for pending RTS initiated previously in * above case before continuing (expect /* Dummy block): */ BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), - tr_RLCMAC_DUMMY_CTRL)); + omit)); } [] BTS.receive { setverdict(fail, "Unexpected BTS message"); @@ -5968,12 +5995,13 @@ f_shutdown(__BFILE__, __LINE__, final := true); } -/* Verify TRX!=C0 don't schedule rlcmac blocks if no TBF attached to it. See OS#4772, SYS#4919 */ +/* Verify PCU schedule idle blocks (len=0) if no TBF attached to it. See OS#4772, SYS#4919 */ testcase TC_pdch_energy_saving() runs on RAW_PCU_Test_CT { var PCUIF_info_ind info_ind; var template (value) TsTrxBtsNum nr; var RlcmacDlBlock dl_block; var BTS_PDTCH_Block data_msg; + var integer ts; timer T; /* Initialize NS/BSSGP side */ @@ -5991,25 +6019,30 @@ /* Establish BSSGP connection to the PCU */ f_bssgp_establish(); - /* Verify C0 gets always dummy blocks: */ - nr := ts_TsTrxBtsNum(ts_nr := 7, trx_nr := 0, bts_nr := 0, blk_nr := 0); - f_rx_rlcmac_dl_block_exp_dummy(dl_block, nr := nr); + for (ts := 0; ts < 2; ts := ts + 1) { + nr := ts_TsTrxBtsNum(ts_nr := 7, trx_nr := ts, bts_nr := 0, blk_nr := 0); - /* TRX1 doesn't send dummy blocks when not needed, in order to honour energy saving: */ - nr.trx_nr := 1; - BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, - sapi := PCU_IF_SAPI_PDTCH, fn := 0, - arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); - T.start(0.5); - alt { - [] as_rx_fail_dummy(nr); - [] BTS.receive { - setverdict(fail, "Unexpected block from BTS"); - f_shutdown(__BFILE__, __LINE__); - } - [] T.timeout { - setverdict(pass); - } + BTS.send(ts_PCUIF_RTS_REQ(nr.bts_nr, nr.trx_nr, nr.ts_nr, + sapi := PCU_IF_SAPI_PDTCH, fn := 0, + arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); + T.start(0.5); + alt { + [] BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), + omit)) -> value data_msg { + setverdict(pass); + T.stop; + } + [] as_rx_fail_dummy(nr); + [] BTS.receive { + setverdict(fail, "Unexpected block from BTS"); + f_shutdown(__BFILE__, __LINE__); + } + [] T.timeout { + setverdict(fail, "Expected IDLE block from BTS"); + f_shutdown(__BFILE__, __LINE__); + } + } } f_shutdown(__BFILE__, __LINE__, final := true); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-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 Sep 22 14:12:38 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 22 Sep 2021 14:12:38 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25508 to look at the new patch set (#2). Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... pySim-prog: rename card_handler option to card_handler_config The option and also the dest variable in the code are currently named card_handler. This might be confusing since the variable actually refers to a config file and therefore should be called "card_handler_config" Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd --- M pySim-prog.py 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/08/25508/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 14:19:00 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 22 Sep 2021 14:19:00 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25483/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/pysim/+/25483/1//COMMIT_MSG at 10 PS1, Line 10: a feq > "a feW"? or rather "several"? Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 14:19:00 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 14:19:06 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 22 Sep 2021 14:19:06 +0000 Subject: Change in pysim[master]: pySim-shell: move command desc and verify_adm to PySimCommands In-Reply-To: References: Message-ID: dexter has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/25483 ) Change subject: pySim-shell: move command desc and verify_adm to PySimCommands ...................................................................... pySim-shell: move command desc and verify_adm to PySimCommands Almost all pySim-shell related commands are agrgated in PySimCommands. There are a few exceptions, so there are some commands in PysimApp. However, it makes sense to reserve PysimApp exclusively for very basic commands that do not directly relate to card operations. So lets move the command verify_adm and desc to PySimCommands. Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf --- M pySim-shell.py 1 file changed, 27 insertions(+), 29 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim-shell.py b/pySim-shell.py index 5644466..06e14f6 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -114,35 +114,6 @@ """Display the intro banner""" self.poutput(self.intro) - @cmd2.with_category(CUSTOM_CATEGORY) - def do_verify_adm(self, arg): - """VERIFY the ADM1 PIN""" - if arg: - # use specified ADM-PIN - pin_adm = sanitize_pin_adm(arg) - else: - # try to find an ADM-PIN if none is specified - result = card_key_provider_get_field('ADM1', key='ICCID', value=self.iccid) - pin_adm = sanitize_pin_adm(result) - if pin_adm: - self.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self.iccid)) - else: - self.poutput("cannot find ADM-PIN for ICCID '%s'" % (self.iccid)) - return - - if pin_adm: - self.card.verify_adm(h2b(pin_adm)) - else: - self.poutput("error: cannot authenticate, no adm-pin!") - - @cmd2.with_category(CUSTOM_CATEGORY) - def do_desc(self, opts): - """Display human readable file description for the currently selected file""" - desc = self.rs.selected_file.desc - if desc: - self.poutput(desc) - else: - self.poutput("no description available") @with_default_category('pySim Commands') class PySimCommands(CommandSet): @@ -319,6 +290,33 @@ self._cmd.poutput('Card ATR: %s' % atr) self._cmd.update_prompt() + def do_desc(self, opts): + """Display human readable file description for the currently selected file""" + desc = self._cmd.rs.selected_file.desc + if desc: + self._cmd.poutput(desc) + else: + self._cmd.poutput("no description available") + + def do_verify_adm(self, arg): + """VERIFY the ADM1 PIN""" + if arg: + # use specified ADM-PIN + pin_adm = sanitize_pin_adm(arg) + else: + # try to find an ADM-PIN if none is specified + result = card_key_provider_get_field('ADM1', key='ICCID', value=self._cmd.iccid) + pin_adm = sanitize_pin_adm(result) + if pin_adm: + self._cmd.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self._cmd.iccid)) + else: + self._cmd.poutput("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) + return + + if pin_adm: + self._cmd.card.verify_adm(h2b(pin_adm)) + else: + self._cmd.poutput("error: cannot authenticate, no adm-pin!") @with_default_category('ISO7816 Commands') class Iso7816Commands(CommandSet): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4a215c8a3907d69f702a70df9b85988be1ce3dbf Gerrit-Change-Number: 25483 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 14:23:53 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 22 Sep 2021 14:23:53 +0000 Subject: Change in pysim[master]: transport/init: print exception type if the execption has no string References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25538 ) Change subject: transport/init: print exception type if the execption has no string ...................................................................... transport/init: print exception type if the execption has no string There may be corner cases where an execption contains no error message. In this case it might still be helpful to display the type of the exeption calss to get at least an idea of what kind of error we are dealing with. Change-Id: I6e6b3acd17e40934050b9b088960a2f851120b26 --- M pySim/transport/__init__.py 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/38/25538/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index dae2a78..72a80a9 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -234,5 +234,8 @@ sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate, **kwargs) return sl except Exception as e: - print("Card reader initialization failed with exception:\n" + str(e)) + if str(e): + print("Card reader initialization failed with exception:\n" + str(e)) + else: + print("Card reader initialization failed with an exception of type:\n" + str(type(e))) return None -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e6b3acd17e40934050b9b088960a2f851120b26 Gerrit-Change-Number: 25538 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 Sep 22 14:23:55 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 22 Sep 2021 14:23:55 +0000 Subject: Change in pysim[master]: transport/pcsc: make sure reader is disconnected References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25539 ) Change subject: transport/pcsc: make sure reader is disconnected ...................................................................... transport/pcsc: make sure reader is disconnected Make sure that a reader is disconnected before connecting it. This will efectively prevent resource leakage in the lower PCSC layers when the reader is connected multiple times during bulk provisioning Change-Id: I266e56f2330da25c680a76f4c0ca630a38e1f61b --- M pySim/transport/pcsc.py 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/39/25539/1 diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index c16abac..147a6b7 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -56,6 +56,10 @@ def connect(self): try: + # To avoid leakage of resources, make sure the reader + # is disconnected + self.disconnect() + # Explicitly select T=0 communication protocol self._con.connect(CardConnection.T0_protocol) except CardConnectionException: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I266e56f2330da25c680a76f4c0ca630a38e1f61b Gerrit-Change-Number: 25539 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 Sep 22 14:55:41 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 14:55:41 +0000 Subject: Change in osmo-pcu[master]: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25540 ) Change subject: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description ...................................................................... tbf_ul_ass_fsm.c: Fix missing state transition in FSM description As seen operating PCU after BTS restart, lots of following message sequences due to FSM kept in same state (hence scheduler retyring every time): """ DTBF tbf_ul_ass_fsm.c:306 UL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG DTBF tbf_ul_ass_fsm.c:95 TBF(TFI=0 TLLI=0xf80bd801 DIR=DL STATE=RELEASING EGPRS) We have a schedule for uplink assignment, but there is no uplink TBF DTBF tbf_ul_ass_fsm.c:97 UL_ASS_TBF(DL-TFI_0){SEND_ASS}: transition to state NONE not permitted! DTBF tbf_ul_ass_fsm.c:306 UL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG """ Change-Id: I91d74f70a9106ccbf0c137b6e713877f9ea8f59d --- M src/tbf_ul_ass_fsm.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/40/25540/1 diff --git a/src/tbf_ul_ass_fsm.c b/src/tbf_ul_ass_fsm.c index eab34ee..618e072 100644 --- a/src/tbf_ul_ass_fsm.c +++ b/src/tbf_ul_ass_fsm.c @@ -257,7 +257,9 @@ }, [TBF_UL_ASS_SEND_ASS] = { .in_event_mask = X(TBF_UL_ASS_EV_CREATE_RLCMAC_MSG), - .out_state_mask = X(TBF_UL_ASS_WAIT_ACK), + .out_state_mask = + X(TBF_UL_ASS_WAIT_ACK) | + X(TBF_UL_ASS_NONE), .name = "SEND_ASS", .action = st_send_ass, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I91d74f70a9106ccbf0c137b6e713877f9ea8f59d Gerrit-Change-Number: 25540 Gerrit-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 Sep 22 15:02:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 15:02:05 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 to look at the new patch set (#4). Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx This step is required while turning off the BTS without killing the process. Right now only osmo-bts-trx supports this feature, so this function is only available and used by osmo-bts-trx. Later on, when the feature is support more generally, we can move call to this function to common place like bts_shutdown_fsm or alike. Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e --- M doc/manuals/chapters/architecture.adoc M include/osmo-bts/phy_link.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_provision_fsm.c 4 files changed, 22 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/29/25529/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 15:02:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 15:02:06 +0000 Subject: Change in osmo-bts[master]: trx_sched_clean_ts: Clean VAMOS shadow TS too References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25541 ) Change subject: trx_sched_clean_ts: Clean VAMOS shadow TS too ...................................................................... trx_sched_clean_ts: Clean VAMOS shadow TS too trx_sched_init_ts does it properly, but apparently it was forgotten to do the same upon clean up. Change-Id: Ice751870a46548af42b14846b8482335f636a84a --- M src/common/scheduler.c 1 file changed, 29 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/41/25541/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 6e1e4fb..0826eda 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -653,34 +653,43 @@ } } +static void trx_sched_clean_ts(struct gsm_bts_trx_ts *ts) +{ + struct l1sched_ts *l1ts = ts->priv; + unsigned int i; + + 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]; + if (chan_state->dl_bursts) { + talloc_free(chan_state->dl_bursts); + chan_state->dl_bursts = NULL; + } + if (chan_state->ul_bursts) { + talloc_free(chan_state->ul_bursts); + chan_state->ul_bursts = NULL; + } + } + /* clear lchan channel states */ + for (i = 0; i < ARRAY_SIZE(ts->lchan); i++) + lchan_set_state(&ts->lchan[i], LCHAN_S_NONE); +} + void trx_sched_clean(struct gsm_bts_trx *trx) { - unsigned int tn, i; + unsigned int tn; LOGPTRX(trx, DL1C, LOGL_DEBUG, "Clean scheduler structures\n"); for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) { struct gsm_bts_trx_ts *ts = &trx->ts[tn]; - struct l1sched_ts *l1ts = ts->priv; - 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]; - if (chan_state->dl_bursts) { - talloc_free(chan_state->dl_bursts); - chan_state->dl_bursts = NULL; - } - if (chan_state->ul_bursts) { - talloc_free(chan_state->ul_bursts); - chan_state->ul_bursts = NULL; - } - } - /* clear lchan channel states */ - for (i = 0; i < ARRAY_SIZE(ts->lchan); i++) - lchan_set_state(&ts->lchan[i], LCHAN_S_NONE); + /* Clean primary and shadow timeslots */ + trx_sched_clean_ts(ts); + trx_sched_clean_ts(ts->vamos.peer); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ice751870a46548af42b14846b8482335f636a84a Gerrit-Change-Number: 25541 Gerrit-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 Sep 22 15:24:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 15:24:12 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Disable threshold comparison on {LOWER, UPPER}_... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25514 ) Change subject: MS Power Control Loop: Disable threshold comparison on {LOWER,UPPER}_CMP_N=0 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c Gerrit-Change-Number: 25514 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 15:24:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 16:28:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 16:28:06 +0000 Subject: Change in osmo-bts[master]: bts_trx: Drop non-executed path in trx_link_estab() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25542 ) Change subject: bts_trx: Drop non-executed path in trx_link_estab() ...................................................................... bts_trx: Drop non-executed path in trx_link_estab() This function is only called during sign_link_up() e1inp callback, hence only the link!=NULL condition (UP) is ever executed. Let's drop the DOWN path and make it a function only used to trigger events when link becomes up, similar to what bts_link_estab() does with OML. Here it becomes clear the NM_EV_RSL_DOWN was never sent. It's not much of an issue though since it would only make transition RCARRIER/BBTRANSC Enabled->DisabledOffline. However, since due to libosmo-abis limitation we receive a sign_link_down() for the entire line when 1 of its links goes down, we don't care much since we go for shutdown of the entire BTS anyway. Ideally, libosmo-abis would support simply telling us 1 of the links in the line went down and if it was not OML and not RSL TRX==C0, then we could keep on running and simply disable the related TRX. Change-Id: Iac553c68339c0da32fd313676995747eb4344087 --- M src/common/abis.c M src/common/bts_trx.c 2 files changed, 13 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/42/25542/1 diff --git a/src/common/abis.c b/src/common/abis.c index 1722f3d..1b489c1 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -214,6 +214,14 @@ e1inp_sign_link_destroy(trx->rsl_link); trx->rsl_link = NULL; } + /* Note: Here we could send NM_EV_RSL_DOWN to each + * trx->(bb_transc.)mo.fi, but we are starting shutdown of the + * entire BTS anyway through bts_model_abis_close(), so simply + * let bts_shutdown FSM take care of slowly powering down all + * the TRX. It would make sense to send NM_EV_RSL_DOWN only if a + * RSL link TRX!=C0 was going down, in order to selectively stop + * that TRX only. But libosmo-abis expects us to drop the entire + * line when something goes wrong... */ } bts_model_abis_close(bts); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c index a5d7ed3..ed742d5 100644 --- a/src/common/bts_trx.c +++ b/src/common/bts_trx.c @@ -206,25 +206,16 @@ /* RSL link is established, send status report */ int trx_link_estab(struct gsm_bts_trx *trx) { - struct e1inp_sign_link *link = trx->rsl_link; int rc; - LOGPTRX(trx, DSUM, LOGL_INFO, "RSL link %s\n", - link ? "up" : "down"); + LOGPTRX(trx, DSUM, LOGL_INFO, "RSL link up\n"); - osmo_fsm_inst_dispatch(trx->mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL); + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_RSL_UP, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_RSL_UP, NULL); - if (link) - rc = rsl_tx_rf_res(trx); - else - rc = bts_model_trx_deact_rf(trx); - if (rc < 0) { + if ((rc = rsl_tx_rf_res(trx)) < 0) oml_tx_failure_event_rep(&trx->bb_transc.mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_RSL_FAIL, - link ? - "Failed to establish RSL link (%d)" : - "Failed to deactivate RF (%d)", rc); - } + "Failed to establish RSL link (%d)", rc); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iac553c68339c0da32fd313676995747eb4344087 Gerrit-Change-Number: 25542 Gerrit-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 Sep 22 16:40:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 16:40:44 +0000 Subject: Change in osmo-bts[master]: Avoid sending Load Indications when BTS is not RSL-connected References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25543 ) Change subject: Avoid sending Load Indications when BTS is not RSL-connected ...................................................................... Avoid sending Load Indications when BTS is not RSL-connected Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 --- M include/osmo-bts/bts.h M src/common/abis.c M src/common/bts.c M src/common/bts_trx.c M src/common/load_indication.c M src/common/oml.c 6 files changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/43/25543/1 diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index a601423..fab7f96 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -409,6 +409,8 @@ int lchan_init_lapdm(struct gsm_lchan *lchan); void load_timer_start(struct gsm_bts *bts); +void load_timer_stop(struct gsm_bts *bts); +bool load_timer_is_running(const struct gsm_bts *bts); void bts_update_status(enum bts_global_status which, int on); struct gsm_time *get_time(struct gsm_bts *bts); diff --git a/src/common/abis.c b/src/common/abis.c index 1b489c1..3451b2e 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -213,6 +213,8 @@ if (trx->rsl_link) { e1inp_sign_link_destroy(trx->rsl_link); trx->rsl_link = NULL; + if (trx == trx->bts->c0) + load_timer_stop(trx->bts); } /* Note: Here we could send NM_EV_RSL_DOWN to each * trx->(bb_transc.)mo.fi, but we are starting shutdown of the diff --git a/src/common/bts.c b/src/common/bts.c index 67e6736..191c331 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -345,7 +345,6 @@ /* configurable via OML */ bts->load.ccch.load_ind_period = 112; - load_timer_start(bts); bts->rtp_jitter_buf_ms = 100; bts->max_ta = 63; bts->ny1 = 4; diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c index ed742d5..127e797 100644 --- a/src/common/bts_trx.c +++ b/src/common/bts_trx.c @@ -217,6 +217,9 @@ oml_tx_failure_event_rep(&trx->bb_transc.mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_RSL_FAIL, "Failed to establish RSL link (%d)", rc); + if (trx == trx->bts->c0) + load_timer_start(trx->bts); + return 0; } diff --git a/src/common/load_indication.c b/src/common/load_indication.c index c9b2645..69af9c6 100644 --- a/src/common/load_indication.c +++ b/src/common/load_indication.c @@ -94,3 +94,8 @@ { osmo_timer_del(&bts->load.ccch.timer); } + +bool load_timer_is_running(const struct gsm_bts *bts) +{ + return osmo_timer_pending(&bts->load.ccch.timer); +} diff --git a/src/common/oml.c b/src/common/oml.c index d2cf877..f841853 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -670,7 +670,10 @@ /* 9.4.11 CCCH Load Indication Period */ if (TLVP_PRES_LEN(&tp, NM_ATT_CCCH_L_I_P, 1)) { bts->load.ccch.load_ind_period = *TLVP_VAL(&tp, NM_ATT_CCCH_L_I_P); - load_timer_start(bts); + if (load_timer_is_running(bts)) { + load_timer_stop(bts); + load_timer_start(bts); + } } /* 9.4.44 RACH Busy Threshold */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 Gerrit-Change-Number: 25543 Gerrit-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 Sep 22 17:10:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 17:10:24 +0000 Subject: Change in osmo-bts[master]: abis: Fix memory leak of bts->osmo_link upon link going down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25544 ) Change subject: abis: Fix memory leak of bts->osmo_link upon link going down ...................................................................... abis: Fix memory leak of bts->osmo_link upon link going down Commit below (see "Fixes" section) wrongly erased the code re-introduced in this commit, due to not spotting different between "oml_link" and "osmo_link". This commit is hence a revert of such commit, updated to current code. Fixes: c2ba34d9c13d309926c760943a9531fd3b236189 Change-Id: Id436116e5cd0bec024b2f9943fbff8d0bdc956ac --- M src/common/abis.c 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/44/25544/1 diff --git a/src/common/abis.c b/src/common/abis.c index 3451b2e..93635c2 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -102,6 +102,13 @@ bts->oml_link = NULL; } memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); + + /* Same for IPAC_PROTO_OSMO on the same ipa connection: */ + if (bts->osmo_link) { + e1inp_sign_link_destroy(bts->osmo_link); + bts->osmo_link = NULL; + } + } static int pick_next_bsc(struct osmo_fsm_inst *fi) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id436116e5cd0bec024b2f9943fbff8d0bdc956ac Gerrit-Change-Number: 25544 Gerrit-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 Sep 22 17:32:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 17:32:53 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix line not removed from e1inp_line_list when freed References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25545 ) Change subject: e1_input: Fix line not removed from e1inp_line_list when freed ...................................................................... e1_input: Fix line not removed from e1inp_line_list when freed This was not an observable issue so far because both osmo-bts and osmo-bsc used to keep the same line created once, keeping at least 1 reference count to it. Change-Id: I1314d6b917ecb622994507475eb894e649a1a2ad --- M src/e1_input.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/45/25545/1 diff --git a/src/e1_input.c b/src/e1_input.c index 93ab446..fd3082e 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -452,6 +452,8 @@ if (line->driver_data) talloc_unlink(line, line->driver_data); } + + llist_del(&line->list); talloc_free(line); return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I1314d6b917ecb622994507475eb894e649a1a2ad Gerrit-Change-Number: 25545 Gerrit-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 Sep 22 17:38:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 17:38:42 +0000 Subject: Change in libosmo-abis[master]: e1_input: Document e1inp_line_create() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25546 ) Change subject: e1_input: Document e1inp_line_create() ...................................................................... e1_input: Document e1inp_line_create() Specially important regarding the pre-allocated reference count. This was done when moving the API to use osmo_use_count internally, because previous code already came with refcount=1. Change-Id: I819a13732c5d0ff150bc11d1cfd64e96ee81bad2 --- M src/e1_input.c 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/46/25546/1 diff --git a/src/e1_input.c b/src/e1_input.c index fd3082e..9fb8a3b 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -470,6 +470,14 @@ return NULL; } +/*! Create a new e1inp line object. + * \param[in] e1_nr The line number of the new line to be created. + * \param[in] driver_name String identifying the driver (see e1inp_driver_register() for more info). + * \returns pointer to the new object created. + * + * The allocated object is returned with a count reference with name "ctor", + * which must be dropped in order to free the object [e1inp_line_put2(line, "ctor")]. + */ struct e1inp_line * e1inp_line_create(uint8_t e1_nr, const char *driver_name) { -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I819a13732c5d0ff150bc11d1cfd64e96ee81bad2 Gerrit-Change-Number: 25546 Gerrit-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 Sep 22 17:43:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 22 Sep 2021 17:43:10 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25547 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... abis: Fix line leaked & recreated upon every reconnect Previous code creating a new line was really a workaroudn to have it working while previous lines were being stacked internally inside libosmo-abis. Let's handle reference counts for the line properly and erase + re-create it every time. Recent patches to libosmo-abis fixed a crash happening when refcount being 0 and destroying the object (object was not removed from a global llist). Depends: libosmo-abis Change-Id I1314d6b917ecb622994507475eb894e649a1a2ad Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/25547/1 diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index 40707cd..d5cf634 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -8,7 +8,7 @@ enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_OML_UP, - ABIS_LINK_EV_SIGN_LINK_DOWN, + ABIS_LINK_EV_SIGN_LINK_DOWN, /* data: struct e1inp_line* of link going down */ ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ }; diff --git a/src/common/abis.c b/src/common/abis.c index 93635c2..b734576 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,7 +81,6 @@ struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; - int line_ctr; }; static void reset_oml_link(struct gsm_bts *bts) @@ -156,15 +155,7 @@ bts_dev_info.unit_name = bts->description; bts_dev_info.location2 = priv->model_name; - line = e1inp_line_find(priv->line_ctr); - if (line) { - e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ - } else - line = e1inp_line_create(priv->line_ctr, "ipa"); /* already comes with a reference */ - - /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next - * attempt must happen on a different line. */ - priv->line_ctr++; + line = e1inp_line_create(0, "ipa"); /* already comes with a reference "ctor" */ if (!line) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); @@ -186,13 +177,17 @@ { struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; + struct e1inp_line *line; switch (event) { case ABIS_LINK_EV_SIGN_LINK_OML_UP: osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); break; case ABIS_LINK_EV_SIGN_LINK_DOWN: + line = (struct e1inp_line *)data; reset_oml_link(bts); + /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ + e1inp_line_put2(line, "ctor"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); break; default: @@ -210,6 +205,7 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; struct gsm_bts_trx *trx; + struct e1inp_line *line = (struct e1inp_line *)data; OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); /* First remove the OML signalling link */ @@ -232,6 +228,10 @@ * that TRX only. But libosmo-abis expects us to drop the entire * line when something goes wrong... */ } + + /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ + e1inp_line_put2(line, "ctor"); + bts_model_abis_close(bts); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); } @@ -395,7 +395,7 @@ static void sign_link_down(struct e1inp_line *line) { LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n"); - osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, NULL); + osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, line); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 Gerrit-Change-Number: 25547 Gerrit-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 Sep 22 17:51:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 17:51:10 +0000 Subject: Change in osmo-bts[master]: trx_sched_clean_ts: Clean VAMOS shadow TS too In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25541 ) Change subject: trx_sched_clean_ts: Clean VAMOS shadow TS too ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ice751870a46548af42b14846b8482335f636a84a Gerrit-Change-Number: 25541 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 22 Sep 2021 17:51:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 17:52:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 17:52:04 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix line not removed from e1inp_line_list when freed In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25545 ) Change subject: e1_input: Fix line not removed from e1inp_line_list when freed ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I1314d6b917ecb622994507475eb894e649a1a2ad Gerrit-Change-Number: 25545 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 17: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 Sep 22 17:52:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 17:52:57 +0000 Subject: Change in libosmo-abis[master]: e1_input: Document e1inp_line_create() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25546 ) Change subject: e1_input: Document e1inp_line_create() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I819a13732c5d0ff150bc11d1cfd64e96ee81bad2 Gerrit-Change-Number: 25546 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 22 Sep 2021 17:52:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:09:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:09:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn at 595 PS1, Line 595: empty blocks Well, the idea of this test case was to check if the IUT generates _valid_ PTCCH/D messages. Not just empty blocks. And now we're unable to test that. What if we make it configurable via the INFO.ind? New osmo-bts versions (and some test cases) will indicate that they do support empty DATA.req messages, while old versions would not and thus receive all blocks. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn at 5998 PS1, Line 5998: idle empty -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 18:09:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:12:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:12:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Allow empty rlcmac blocks in data_req In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 ) Change subject: pcu: Allow empty rlcmac blocks in data_req ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4 Gerrit-Change-Number: 25536 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 18:12:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:14:15 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:14:15 +0000 Subject: Change in osmo-bts[master]: l1sap: Support rx of empty rlcmac blocks from PCU In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25534 ) Change subject: l1sap: Support rx of empty rlcmac blocks from PCU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Gerrit-Change-Number: 25534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 22 Sep 2021 18:14: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 Sep 22 18:28:42 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:28:42 +0000 Subject: Change in osmo-bts[master]: trx_if: delete retrans timer when flushing the Tx queue In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25518 ) Change subject: trx_if: delete retrans timer when flushing the Tx queue ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb Gerrit-Change-Number: 25518 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:28:42 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:29:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:29:30 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:29:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:32:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:32:52 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... Patch Set 3: Would be also good to know what's wrong with the current implementation and what do we benefit from this patch? Right now, while doing code review, it feels like some upcoming patches require this. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 22 Sep 2021 18:32:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:33:47 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:33:47 +0000 Subject: Change in osmo-bts[master]: bts-trx: Get rid of check_transceiver_availability_trx() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25526 ) Change subject: bts-trx: Get rid of check_transceiver_availability_trx() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a Gerrit-Change-Number: 25526 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:33:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:36:43 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:36:43 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25527/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25527/3//COMMIT_MSG at 9 PS3, Line 9: Set Attributes comes first for Channel object and then for Hmm, how is this possible? Message reordering? Is it something that we tolerate? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Wed, 22 Sep 2021 18:36: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 Wed Sep 22 18:37:24 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:37:24 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX SW_ACT when PHY becomes connected In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25528 ) Change subject: bts-trx: Submit TRX SW_ACT when PHY becomes connected ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 Gerrit-Change-Number: 25528 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:37:24 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:39:52 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:39:52 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25529 ) Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25529/4/doc/manuals/chapters/architecture.adoc File doc/manuals/chapters/architecture.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/25529/4/doc/manuals/chapters/architecture.adoc at 91 PS4, Line 91: links Actually, we're closing all instances associated with the given link... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:39:52 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:40:51 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:40:51 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25530 ) Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:40: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 Sep 22 18:42:22 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:42:22 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting p... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25531 ) Change subject: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae Gerrit-Change-Number: 25531 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:42:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:42:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:42:45 +0000 Subject: Change in osmo-bts[master]: abis: Call bts_model_abis_close() when Abis link goes down In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25532 ) Change subject: abis: Call bts_model_abis_close() when Abis link goes down ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 Gerrit-Change-Number: 25532 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 22 Sep 2021 18:42:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:46:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:46:29 +0000 Subject: Change in osmo-bts[master]: Avoid sending Load Indications when BTS is not RSL-connected In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25543 ) Change subject: Avoid sending Load Indications when BTS is not RSL-connected ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 Gerrit-Change-Number: 25543 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 22 Sep 2021 18:46:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 22 18:47:25 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:47:25 +0000 Subject: Change in osmo-bts[master]: abis: Fix memory leak of bts->osmo_link upon link going down In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25544 ) Change subject: abis: Fix memory leak of bts->osmo_link upon link going down ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id436116e5cd0bec024b2f9943fbff8d0bdc956ac Gerrit-Change-Number: 25544 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 22 Sep 2021 18:47: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 Sep 22 18:48:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 22 Sep 2021 18:48:32 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25547 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 Gerrit-Change-Number: 25547 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 22 Sep 2021 18:48: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 Sep 23 04:05:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 23 Sep 2021 04:05:37 +0000 Subject: Change in osmo-bts[master]: bts_trx: Drop non-executed path in trx_link_estab() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25542 ) Change subject: bts_trx: Drop non-executed path in trx_link_estab() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iac553c68339c0da32fd313676995747eb4344087 Gerrit-Change-Number: 25542 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 23 Sep 2021 04:05: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 Sep 23 04:06:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 23 Sep 2021 04:06:48 +0000 Subject: Change in osmo-pcu[master]: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25540 ) Change subject: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I91d74f70a9106ccbf0c137b6e713877f9ea8f59d Gerrit-Change-Number: 25540 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Thu, 23 Sep 2021 04:06: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 Sep 23 06:01:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:01:52 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 06: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 Thu Sep 23 06:03:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:03:49 +0000 Subject: Change in pysim[master]: transport/init: print exception type if the execption has no string In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25538 ) Change subject: transport/init: print exception type if the execption has no string ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e6b3acd17e40934050b9b088960a2f851120b26 Gerrit-Change-Number: 25538 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06: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 Thu Sep 23 06:08:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:08:40 +0000 Subject: Change in pysim[master]: transport/pcsc: make sure reader is disconnected In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25539 ) Change subject: transport/pcsc: make sure reader is disconnected ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I266e56f2330da25c680a76f4c0ca630a38e1f61b Gerrit-Change-Number: 25539 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:08:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 06:13:06 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:13:06 +0000 Subject: Change in osmo-bts[master]: l1sap: Support rx of empty rlcmac blocks from PCU In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25534 ) Change subject: l1sap: Support rx of empty rlcmac blocks from PCU ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Gerrit-Change-Number: 25534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:13: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 Sep 23 06:19:16 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:19:16 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:19:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 06:22:10 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:22:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Allow empty rlcmac blocks in data_req In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 ) Change subject: pcu: Allow empty rlcmac blocks in data_req ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4 Gerrit-Change-Number: 25536 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06: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 Thu Sep 23 06:23:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:23:40 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix line not removed from e1inp_line_list when freed In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25545 ) Change subject: e1_input: Fix line not removed from e1inp_line_list when freed ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I1314d6b917ecb622994507475eb894e649a1a2ad Gerrit-Change-Number: 25545 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:23:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 06:25:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:25:03 +0000 Subject: Change in libosmo-abis[master]: e1_input: Document e1inp_line_create() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25546 ) Change subject: e1_input: Document e1inp_line_create() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I819a13732c5d0ff150bc11d1cfd64e96ee81bad2 Gerrit-Change-Number: 25546 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:25: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 Sep 23 06:42:47 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:42:47 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25517/2/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/25517/2/src/osmo-bts-trx/trx_if.c at 724 PS2, Line 724: osmo_timer_schedule(&l1h->trx_ctrl_timer, rc, 0); What happens here, will it still properly re-schedule tcm? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:42: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 Sep 23 06:42:51 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 06:42:51 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... Patch Set 2: -Code-Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 06:42:51 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 08:16:07 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 08:16:07 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c File src/vty/vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c at 339 PS2, Line 339: int vty_out_uptime(struct vty *vty, const struct timespec *starttime) > I recall we already have some libosmocore APIs to get this kind of strings. what do you mean exactly? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 08:16: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 Sep 23 08:23:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 08:23:27 +0000 Subject: Change in libosmo-abis[master]: e1_input: Fix line not removed from e1inp_line_list when freed In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25545 ) Change subject: e1_input: Fix line not removed from e1inp_line_list when freed ...................................................................... e1_input: Fix line not removed from e1inp_line_list when freed This was not an observable issue so far because both osmo-bts and osmo-bsc used to keep the same line created once, keeping at least 1 reference count to it. Change-Id: I1314d6b917ecb622994507475eb894e649a1a2ad --- M src/e1_input.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/e1_input.c b/src/e1_input.c index 93ab446..fd3082e 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -452,6 +452,8 @@ if (line->driver_data) talloc_unlink(line, line->driver_data); } + + llist_del(&line->list); talloc_free(line); return 0; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I1314d6b917ecb622994507475eb894e649a1a2ad Gerrit-Change-Number: 25545 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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 Thu Sep 23 08:23:27 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 08:23:27 +0000 Subject: Change in libosmo-abis[master]: e1_input: Document e1inp_line_create() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25546 ) Change subject: e1_input: Document e1inp_line_create() ...................................................................... e1_input: Document e1inp_line_create() Specially important regarding the pre-allocated reference count. This was done when moving the API to use osmo_use_count internally, because previous code already came with refcount=1. Change-Id: I819a13732c5d0ff150bc11d1cfd64e96ee81bad2 --- M src/e1_input.c 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/e1_input.c b/src/e1_input.c index fd3082e..9fb8a3b 100644 --- a/src/e1_input.c +++ b/src/e1_input.c @@ -470,6 +470,14 @@ return NULL; } +/*! Create a new e1inp line object. + * \param[in] e1_nr The line number of the new line to be created. + * \param[in] driver_name String identifying the driver (see e1inp_driver_register() for more info). + * \returns pointer to the new object created. + * + * The allocated object is returned with a count reference with name "ctor", + * which must be dropped in order to free the object [e1inp_line_put2(line, "ctor")]. + */ struct e1inp_line * e1inp_line_create(uint8_t e1_nr, const char *driver_name) { -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: I819a13732c5d0ff150bc11d1cfd64e96ee81bad2 Gerrit-Change-Number: 25546 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 08:24:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 08:24:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Allow empty rlcmac blocks in data_req In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 ) Change subject: pcu: Allow empty rlcmac blocks in data_req ...................................................................... pcu: Allow empty rlcmac blocks in data_req They are used by osmo-pcu to signal idle blocks. Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4 --- M pcu/GPRS_Components.ttcn M pcu/PCUIF_Components.ttcn 2 files changed, 19 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/pcu/GPRS_Components.ttcn b/pcu/GPRS_Components.ttcn index 4446b63..1014498 100644 --- a/pcu/GPRS_Components.ttcn +++ b/pcu/GPRS_Components.ttcn @@ -1094,7 +1094,7 @@ arfcn := f_trxnr2arfcn(valueof(nr.trx_nr)), block_nr := nr.blk_nr)); BTS.receive(tr_PCUIF_DATA_PDTCH(nr.bts_nr, - tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH)) + tr_PCUIF_DATA(nr.trx_nr, nr.ts_nr, sapi := PCU_IF_SAPI_PDTCH), *) ) -> value data_msg; } @@ -1138,6 +1138,12 @@ runs on MS_BTS_IFACE_CT { var BTS_PDTCH_Block data_msg; f_pcuif_rx_data_req_pdtch(data_msg, nr := nr); + + if (data_msg.dl_block == omit) { + setverdict(fail, "Expected RLCMAC block but received idle block (", data_msg.raw.len, ")"); + f_shutdown(__BFILE__, __LINE__); + } + dl_block := data_msg.dl_block; dl_fn := data_msg.raw.fn; diff --git a/pcu/PCUIF_Components.ttcn b/pcu/PCUIF_Components.ttcn index 66b2e21..30982da 100644 --- a/pcu/PCUIF_Components.ttcn +++ b/pcu/PCUIF_Components.ttcn @@ -133,12 +133,12 @@ type record BTS_PDTCH_Block { uint8_t bts_nr, PCUIF_data raw, - RlcmacDlBlock dl_block + RlcmacDlBlock dl_block optional }; type record BTS_PTCCH_Block { uint8_t bts_nr, PCUIF_data raw, - PTCCHDownlinkMsg dl_block + PTCCHDownlinkMsg dl_block optional }; type record BTS_CCCH_Block { uint8_t bts_nr, @@ -554,14 +554,22 @@ [decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := PCU_IF_SAPI_PDTCH)) -> value pcu_msg { pcu_msg_pdtch.bts_nr := bts_nr; pcu_msg_pdtch.raw := pcu_msg.u.data_req; - pcu_msg_pdtch.dl_block := dec_RlcmacDlBlock(pcu_msg_pdtch.raw.data); + if (pcu_msg_pdtch.raw.len != 0) { + pcu_msg_pdtch.dl_block := dec_RlcmacDlBlock(pcu_msg_pdtch.raw.data); + } else { + pcu_msg_pdtch.dl_block := omit; + } TC.send(pcu_msg_pdtch); repeat; } [decode_data_req] PCUIF.receive(tr_PCUIF_DATA_REQ(bts_nr, ?, ?, sapi := PCU_IF_SAPI_PTCCH)) -> value pcu_msg { pcu_msg_ptcch.bts_nr := bts_nr; pcu_msg_ptcch.raw := pcu_msg.u.data_req; - pcu_msg_ptcch.dl_block := dec_PTCCHDownlinkMsg(pcu_msg_ptcch.raw.data); + if (pcu_msg_ptcch.raw.len != 0) { + pcu_msg_ptcch.dl_block := dec_PTCCHDownlinkMsg(pcu_msg_ptcch.raw.data); + } else { + pcu_msg_ptcch.dl_block := omit; + } TC.send(pcu_msg_ptcch); repeat; } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ied6b133be5bfd181f08c445b76af0f570edfd2a4 Gerrit-Change-Number: 25536 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 08:27:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 23 Sep 2021 08:27:39 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 08:27: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 Sep 23 08:28:48 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 23 Sep 2021 08:28:48 +0000 Subject: Change in osmo-bts[master]: rsl: simplfy parse_repeated_acch_capability In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25288 ) Change subject: rsl: simplfy parse_repeated_acch_capability ...................................................................... rsl: simplfy parse_repeated_acch_capability The separate TLVP_PRESENT and TLVP_LEN calls can be replaced by a single TLVP_PRES_LEN Change-Id: I6bde1b9df50fdf355e768f5066e86422238b98e9 --- M src/common/rsl.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/common/rsl.c b/src/common/rsl.c index ca40e49..368590c 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1589,9 +1589,7 @@ memset(&lchan->repeated_acch_capability, 0, sizeof(lchan->repeated_acch_capability)); - if (!TLVP_PRESENT(tp, RSL_IE_OSMO_REP_ACCH_CAP)) - return; - if (TLVP_LEN(tp, RSL_IE_OSMO_REP_ACCH_CAP) != sizeof(lchan->repeated_acch_capability)) + if (!TLVP_PRES_LEN(tp, RSL_IE_OSMO_REP_ACCH_CAP, sizeof(lchan->repeated_acch_capability))) return; memcpy(&lchan->repeated_acch_capability, TLVP_VAL(tp, RSL_IE_OSMO_REP_ACCH_CAP), -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6bde1b9df50fdf355e768f5066e86422238b98e9 Gerrit-Change-Number: 25288 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 Sep 23 08:30:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 08:30:50 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25517/2/src/osmo-bts-trx/trx_if.c File src/osmo-bts-trx/trx_if.c: https://gerrit.osmocom.org/c/osmo-bts/+/25517/2/src/osmo-bts-trx/trx_if.c at 724 PS2, Line 724: osmo_timer_schedule(&l1h->trx_ctrl_timer, rc, 0); > What happens here, will it still properly re-schedule tcm? ACK, I need to add here: if (rc > 0 && !llist_empty(&l1h->trx_ctrl_list)) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 08:30:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:07:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 09:07:55 +0000 Subject: Change in osmo-pcu[master]: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25540 ) Change subject: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I91d74f70a9106ccbf0c137b6e713877f9ea8f59d Gerrit-Change-Number: 25540 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 09:07:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:08:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:08:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn at 595 PS1, Line 595: empty blocks > Well, the idea of this test case was to check if the IUT generates _valid_ PTCCH/D messages. [?] Test is called "TC_ta_ptcch_idle", which iiuc means it tests behavior of PTCCH/D when the TS is idle, that is, when there's no MS using the TS. Hence, it is totally fine for the PCU to send nothing. We gain nothing by sending an PTCCH block, on the contrary, BTS will submit it instead of nothing on TRX!=0, causing use of more energy for no good reason. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 09:08:20 +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 Sep 23 09:11:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:11:57 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... Patch Set 3: > Patch Set 3: > > Would be also good to know what's wrong with the current implementation and what do we benefit from this patch? Right now, while doing code review, it feels like some upcoming patches require this. Well, the previous way it was done was plainly wrong, because event for ARFCN ready was sent at a time when the ARFCN was retreived. It just happened to work before because in general we would get SetBtsAttr before IPA SetRadioAttributes. So regardless of changes done after it, this patch is correct on its own. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 23 Sep 2021 09:11:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:18:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:18:36 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25527/3//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25527/3//COMMIT_MSG at 9 PS3, Line 9: Set Attributes comes first for Channel object and then for > Hmm, how is this possible? Message reordering? Is it something that we tolerate? It's possible once patch https://gerrit.osmocom.org/c/osmo-bts/+/25528 (after this one) is applied, which moves SW_ACT for RCARRIER/BBTRANSC to be independent from SetBTSAttr. It is rather moved to be sent when the PHY is available (TRXC is up), which makes a lot more sense. As a result, RCARRIER/BBTRANSC can become "Disabled Offline" before BTS is configured with SetBTSAttr, and hence can also receive Set Radio Attributes before BTS receives SetBTSAttr. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 23 Sep 2021 09:18:36 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:21:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:21:40 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25529 ) Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25529/4/doc/manuals/chapters/architecture.adoc File doc/manuals/chapters/architecture.adoc: https://gerrit.osmocom.org/c/osmo-bts/+/25529/4/doc/manuals/chapters/architecture.adoc at 91 PS4, Line 91: links > Actually, we're closing all instances associated with the given link... "Each of the configured PHY links" I guess means here "Each of the configured PHY links each time you call it", but I agree it's a bit confusing and phrased in a wrong way. However, I'm just keeping the same use from line above, changing open with close, so it becomes clear it's the counterpart API. We can later improve this documentation if needed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 23 Sep 2021 09:21:40 +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 Sep 23 09:30:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:30:45 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c File src/vty/vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25348/2/src/vty/vty.c at 339 PS2, Line 339: int vty_out_uptime(struct vty *vty, const struct timespec *starttime) > what do you mean exactly? Nevermind I was unable to find it, I recalled Max added something similar some time ago. I only found osmocom/core/timer.h: #define OSMO_SEC2MIN(sec) ((sec % (60 * 60)) / 60) #define OSMO_SEC2HRS(sec) ((sec % (60 * 60 * 24)) / (60 * 60)) #define OSMO_SEC2DAY(sec) ((sec % (60 * 60 * 24 * 365)) / (60 * 60 * 24)) /* we ignore leap year for simplicity */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 09:30:45 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: lynxis lazus Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:34:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 23 Sep 2021 09:34:35 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 23 Sep 2021 09:34:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:38:07 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 09:38:07 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25484 to look at the new patch set (#5). Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Related: SYS#5617 --- M pySim-shell.py 1 file changed, 53 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/5 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 5 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:38:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 09:38:09 +0000 Subject: Change in pysim[master]: card_handler: make reader (sl) operations optional. References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25548 ) Change subject: card_handler: make reader (sl) operations optional. ...................................................................... card_handler: make reader (sl) operations optional. The constructor gets an sl object on initalization. The card handler will then carry out reader operations like wait_for_card or connect. In some cases it may be useful to go without those operations. Lets make the sl object optional. If it is not present, simply do not carry out the reader operation. Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Related: SYS#5617 --- M pySim/card_handler.py 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/48/25548/1 diff --git a/pySim/card_handler.py b/pySim/card_handler.py index ef1b071..84b8f36 100644 --- a/pySim/card_handler.py +++ b/pySim/card_handler.py @@ -36,7 +36,8 @@ def get(self, first = False): print("Ready for Programming: Insert card now (or CTRL-C to cancel)") - self.sl.wait_for_card(newcardonly=not first) + if self.sl: + self.sl.wait_for_card(newcardonly=not first) def error(self): print("Programming failed: Remove card from reader") @@ -94,7 +95,8 @@ def get(self, first = False): print("Ready for Programming: Transporting card into the reader-bay...") self.__exec_cmd(self.cmds['get']) - self.sl.connect() + if self.sl: + self.sl.connect() def error(self): print("Programming failed: Transporting card to the error-bin...") -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Gerrit-Change-Number: 25548 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 Sep 23 09:38:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 09:38:09 +0000 Subject: Change in pysim[master]: pySim-shell: allow card insertion at runtime References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25549 ) Change subject: pySim-shell: allow card insertion at runtime ...................................................................... pySim-shell: allow card insertion at runtime Currently a card must be present in the reader until the user can enter pySim-shell. Removing and plugging another card is in theory already possible, but then the new card will operate on the old card and runtime state object. It might also be useful to enter pySim-shell before the card is plugged to execute some other commands for preperation before. So lets allow to "equip" pySim-shell with a card and rs object at runtime. Related: SYS#5617 Change-Id: I9cf532d9da8203065463c7201e7064de6c7ab1b5 --- M pySim-shell.py M pySim/filesystem.py 2 files changed, 84 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/49/25549/1 diff --git a/pySim-shell.py b/pySim-shell.py index 92b2e02..fb9a894 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -20,6 +20,7 @@ from typing import List import json +import traceback import cmd2 from cmd2 import style, fg, bg @@ -92,28 +93,63 @@ class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' def __init__(self, card, rs, script = None): - basic_commands = [Iso7816Commands(), PySimCommands()] + basic_commands = [] super().__init__(persistent_history_file='~/.pysim_shell_history', allow_cli_args=False, - use_ipython=True, auto_load_commands=False, command_sets=basic_commands, startup_script=script) + use_ipython=True, auto_load_commands=False, startup_script=script) self.intro = style('Welcome to pySim-shell!', fg=fg.red) self.default_category = 'pySim-shell built-in commands' - self.card = card - iccid, sw = self.card.read_iccid() - self.iccid = iccid - self.rs = rs - self.py_locals = { 'card': self.card, 'rs' : self.rs } self.numeric_path = False - self.add_settable(cmd2.Settable('numeric_path', bool, 'Print File IDs instead of names', - onchange_cb=self._onchange_numeric_path)) self.conserve_write = True - self.add_settable(cmd2.Settable('conserve_write', bool, 'Read and compare before write', - onchange_cb=self._onchange_conserve_write)) - self.update_prompt() self.json_pretty_print = True - self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output')) self.apdu_trace = False + + self.add_settable(cmd2.Settable('numeric_path', bool, 'Print File IDs instead of names', + onchange_cb=self._onchange_numeric_path)) + self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output')) self.add_settable(cmd2.Settable('apdu_trace', bool, 'Trace and display APDUs exchanged with card', - onchange_cb=self._onchange_apdu_trace)) + onchange_cb=self._onchange_apdu_trace)) + + # Ensure we have a card and rs attribute + self.card = None + self.rs = None + self.py_locals = { 'card': self.card, 'rs' : self.rs } + + self.equip(card, rs) + + def equip(self, card, rs): + """ + Equip pySim-shell with the supplied card and runtime state, add (or remove) all required settables and + and commands to enable card operations. + """ + + # Unequip everything from pySim-shell that would not work in unequipped state + if self.rs: + self.rs.unregister_cmds(self) + if 'conserve_write' in self.settables: + self.remove_settable('conserve_write') + cmd_set = self.find_commandsets(Iso7816Commands) + if (cmd_set != []): + self.unregister_command_set(cmd_set[0]) + cmd_set = self.find_commandsets(PySimCommands) + if (cmd_set != []): + self.unregister_command_set(cmd_set[0]) + + self.card = card + self.rs = rs + + # When a card object and a runtime state is present, (re)equip pySim-shell with everything that is + # needed to operate on cards. + if self.card and self.rs: + self.register_command_set(Iso7816Commands()) + self.register_command_set(PySimCommands()) + self.add_settable(cmd2.Settable('conserve_write', bool, 'Read and compare before write', + onchange_cb=self._onchange_conserve_write)) + self.iccid, sw = self.card.read_iccid() + rs.select('MF', self) + else: + self.poutput("pySim-shell not equipped!") + + self.update_prompt() def poutput_json(self, data, force_no_pretty = False): """like cmd2.poutput() but for a JSON serializable dict.""" @@ -144,14 +180,23 @@ self.cmd2.poutput("<- %s: %s" % (sw, resp)) def update_prompt(self): - path_list = self.rs.selected_file.fully_qualified_path(not self.numeric_path) - self.prompt = 'pySIM-shell (%s)> ' % ('/'.join(path_list)) + if self.rs: + path_list = self.rs.selected_file.fully_qualified_path(not self.numeric_path) + self.prompt = 'pySIM-shell (%s)> ' % ('/'.join(path_list)) + else: + self.prompt = 'pySIM-shell (no card)> ' @cmd2.with_category(CUSTOM_CATEGORY) def do_intro(self, _): """Display the intro banner""" self.poutput(self.intro) + @cmd2.with_category(CUSTOM_CATEGORY) + def do_equip(self, opts): + """Equip pySim-shell with card""" + rs, card = init_card(sl); + self.equip(card, rs) + @with_default_category('pySim Commands') class PySimCommands(CommandSet): @@ -533,16 +578,29 @@ scc = SimCardCommands(transport=sl) - rs, card = init_card(sl) - if (rs == None or card == None): - exit(1) - app = PysimApp(card, rs, opts.script) - rs.select('MF', app) + # Detect and initalize the card in the reader. This may fail when there + # is no card in the reader or the card is unresponsive. PysimApp is + # able to tolerate and recover from that. + try: + rs, card = init_card(sl) + app = PysimApp(card, rs, opts.script) + except: + print("Card initalization failed with an execption:") + print("---------------------8<---------------------") + traceback.print_exc() + print("---------------------8<---------------------") + print("(you may still try to recover from this manually by using the 'equip' command.)") + print(" it should also be noted that some readers may behave strangely when no card") + print(" is inserted.)") + print("") + app = PysimApp(None, None, opts.script) # If the user supplies an ADM PIN at via commandline args authenticate # immediately so that the user does not have to use the shell commands pin_adm = sanitize_pin_adm(opts.pin_adm, opts.pin_adm_hex) if pin_adm: + if not card: + print("Card error, cannot do ADM verification with supplied ADM pin now.") try: card.verify_adm(h2b(pin_adm)) except Exception as e: diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 170429b..ea1fd81 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -1324,6 +1324,11 @@ raise TypeError("Only works with BER-TLV EF") return self.card._scc.set_data(self.selected_file.fid, tag, data_hex, conserve=self.conserve_write) + def unregister_cmds(self, cmd_app=None): + """Unregister all file specific commands.""" + if cmd_app and self.selected_file.shell_commands: + for c in self.selected_file.shell_commands: + cmd_app.unregister_command_set(c) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9cf532d9da8203065463c7201e7064de6c7ab1b5 Gerrit-Change-Number: 25549 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 Sep 23 09:38:09 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 09:38:09 +0000 Subject: Change in pysim[master]: pySim-shell: verify_adm: turn error messages into exceptions References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25550 ) Change subject: pySim-shell: verify_adm: turn error messages into exceptions ...................................................................... pySim-shell: verify_adm: turn error messages into exceptions When verify_adm is used with scripts, especially bulk provisioning, then an exception is far more visible and allows us to spot problems with ADM verification quicker. Change-Id: I4162b43754efd061b6b9058b7ff8e1fc985e3538 Related: SYS#5617 --- M pySim-shell.py 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/50/25550/1 diff --git a/pySim-shell.py b/pySim-shell.py index fb9a894..34a2436 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -393,13 +393,12 @@ if pin_adm: self._cmd.poutput("found ADM-PIN '%s' for ICCID '%s'" % (result, self._cmd.iccid)) else: - self._cmd.poutput("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) - return + raise ValueError("cannot find ADM-PIN for ICCID '%s'" % (self._cmd.iccid)) if pin_adm: self._cmd.card.verify_adm(h2b(pin_adm)) else: - self._cmd.poutput("error: cannot authenticate, no adm-pin!") + raise ValueError("error: cannot authenticate, no adm-pin!") @with_default_category('ISO7816 Commands') class Iso7816Commands(CommandSet): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4162b43754efd061b6b9058b7ff8e1fc985e3538 Gerrit-Change-Number: 25550 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 Sep 23 09:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 09:38:10 +0000 Subject: Change in pysim[master]: pySim-shell: add echo command References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25551 ) Change subject: pySim-shell: add echo command ...................................................................... pySim-shell: add echo command There is no convinient way to echo strings from scripts. Change-Id: Iaed1d24eeb7f887e46957971083cd30d8d1bea6c Related: SYS#5617 --- M pySim-shell.py 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/51/25551/1 diff --git a/pySim-shell.py b/pySim-shell.py index 34a2436..6a49080 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -197,6 +197,13 @@ rs, card = init_card(sl); self.equip(card, rs) + echo_parser = argparse.ArgumentParser() + echo_parser.add_argument('string', help="string to echo on the shell") + + @cmd2.with_argparser(echo_parser) + @cmd2.with_category(CUSTOM_CATEGORY) + def do_echo(self, opts): + self.poutput(opts.string) @with_default_category('pySim Commands') class PySimCommands(CommandSet): -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iaed1d24eeb7f887e46957971083cd30d8d1bea6c Gerrit-Change-Number: 25551 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 Sep 23 09:38:10 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 09:38:10 +0000 Subject: Change in pysim[master]: pySim-shell: add bulk provisioning support References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/25552 ) Change subject: pySim-shell: add bulk provisioning support ...................................................................... pySim-shell: add bulk provisioning support There are scenarios where multiple cards need to get the same change. Lets add a new command that takes a script as parameter and executes the secript in a loop on multiple cards while prompting the user to change the card before starting the next cycle. Change-Id: I9e4926675c5a497a22fc6a4fefdd388fe18a2b2d Related: SYS#5617 --- M pySim-shell.py 1 file changed, 182 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/25552/1 diff --git a/pySim-shell.py b/pySim-shell.py index 6a49080..1ca5cb2 100755 --- a/pySim-shell.py +++ b/pySim-shell.py @@ -30,6 +30,7 @@ import os import sys from pathlib import Path +from io import StringIO from pySim.ts_51_011 import EF, DF, EF_SST_map from pySim.ts_31_102 import EF_UST_map, EF_USIM_ADF_map @@ -41,7 +42,7 @@ from pySim.cards import card_detect, SimCard from pySim.utils import h2b, swap_nibbles, rpad, b2h, h2s, JsonEncoder, bertlv_parse_one from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str -from pySim.card_handler import CardHandler +from pySim.card_handler import CardHandler, CardHandlerAuto from pySim.filesystem import CardMF, RuntimeState, CardDF, CardADF from pySim.ts_51_011 import CardProfileSIM, DF_TELECOM, DF_GSM @@ -92,7 +93,7 @@ class PysimApp(cmd2.Cmd): CUSTOM_CATEGORY = 'pySim Commands' - def __init__(self, card, rs, script = None): + def __init__(self, card, rs, sl, ch, script = None): basic_commands = [] super().__init__(persistent_history_file='~/.pysim_shell_history', allow_cli_args=False, use_ipython=True, auto_load_commands=False, startup_script=script) @@ -102,6 +103,8 @@ self.conserve_write = True self.json_pretty_print = True self.apdu_trace = False + self.sl = sl + self.ch = ch self.add_settable(cmd2.Settable('numeric_path', bool, 'Print File IDs instead of names', onchange_cb=self._onchange_numeric_path)) @@ -122,6 +125,8 @@ and commands to enable card operations. """ + rc = False + # Unequip everything from pySim-shell that would not work in unequipped state if self.rs: self.rs.unregister_cmds(self) @@ -146,10 +151,12 @@ onchange_cb=self._onchange_conserve_write)) self.iccid, sw = self.card.read_iccid() rs.select('MF', self) + rc = True else: self.poutput("pySim-shell not equipped!") self.update_prompt() + return rc def poutput_json(self, data, force_no_pretty = False): """like cmd2.poutput() but for a JSON serializable dict.""" @@ -197,6 +204,170 @@ rs, card = init_card(sl); self.equip(card, rs) + class InterceptStderr(list): + def __init__(self): + self._stderr_backup = sys.stderr + def __enter__(self): + self._stringio_stderr = StringIO() + sys.stderr = self._stringio_stderr + return self + def __exit__(self, *args): + self.stderr = self._stringio_stderr.getvalue().strip() + del self._stringio_stderr + sys.stderr = self._stderr_backup + + def _show_failure_sign(self): + print(" +-------------+") + print(" + ## ## +") + print(" + ## ## +") + print(" + ### +") + print(" + ## ## +") + print(" + ## ## +") + print(" +-------------+") + print("") + + def _show_success_sign(self): + print(" +-------------+") + print(" + ## +") + print(" + ## +") + print(" + # ## +") + print(" + ## # +") + print(" + ## +") + print(" +-------------+") + print("") + + def _process_card(self, first, script_path): + + # Eearly phase of card initialzation (this part may fail with an exception) + try: + rs, card = init_card(self.sl) + rc = self.equip(card, rs) + except: + self.poutput("") + self.poutput("Card initialization failed with an execption:") + self.poutput("---------------------8<---------------------") + traceback.print_exc() + self.poutput("---------------------8<---------------------") + self.poutput("") + return -1 + + # Actual card processing step. This part should never fail with an exception since the cmd2 + # do_run_script method will catch any exception that might occur during script execution. + if rc: + self.poutput("") + self.poutput("Transcript stdout:") + self.poutput("---------------------8<---------------------") + with self.InterceptStderr() as logged: + self.do_run_script(script_path) + self.poutput("---------------------8<---------------------") + + self.poutput("") + self.poutput("Transcript stderr:") + if logged.stderr: + self.poutput("---------------------8<---------------------") + self.poutput(logged.stderr) + self.poutput("---------------------8<---------------------") + else: + self.poutput("(none)") + + # Check for exceptions + self.poutput("") + if "EXCEPTION of type" not in logged.stderr: + return 0 + + return -1 + + bulk_script_parser = argparse.ArgumentParser() + bulk_script_parser.add_argument('script_path', help="path to the script file") + bulk_script_parser.add_argument('--halt_on_error', help='stop card handling if an exeption occurs', + action='store_true') + bulk_script_parser.add_argument('--tries', type=int, default=2, + help='how many tries before trying the next card') + bulk_script_parser.add_argument('--on_stop_action', type=str, default=None, + help='commandline to execute when card handling has stopped') + bulk_script_parser.add_argument('--pre_card_action', type=str, default=None, + help='commandline to execute before actually talking to the card') + + @cmd2.with_argparser(bulk_script_parser) + @cmd2.with_category(CUSTOM_CATEGORY) + def do_bulk_script(self, opts): + """Run script on multiple cards (bulk provisioning)""" + + # Make sure that the script file exists and that it is readable. + if not os.access(opts.script_path, os.R_OK): + self.poutput("Invalid script file!") + return + + success_count = 0 + fail_count = 0 + + first = True + while 1: + # TODO: Count consecutive failures, if more than N consecutive failures occur, then stop. + # The ratinale is: There may be a problem with the device, we do want to prevent that + # all remaining cards are fired to the error bin. This is only relevant for situations + # with large stacks, probably we do not need this feature right now. + + try: + # In case of failure, try multiple times. + for i in range(opts.tries): + # fetch card into reader bay + ch.get(first) + + # if necessary execute an action before we start processing the card + if(opts.pre_card_action): + os.system(opts.pre_card_action) + + # process the card + rc = self._process_card(first, opts.script_path) + if rc == 0: + success_count = success_count + 1 + self._show_success_sign() + print("Statistics: success :%i, failure: %i" % (success_count, fail_count)) + break + else: + fail_count = fail_count + 1 + self._show_failure_sign() + print("Statistics: success :%i, failure: %i" % (success_count, fail_count)) + + + # Depending on success or failure, the card goes either in the "error" bin or in the + # "done" bin. + if rc < 0: + ch.error() + else: + ch.done() + + # In most cases it is possible to proceed with the next card, but the + # user may decide to halt immediately when an error occurs + if opts.halt_on_error and rc < 0: + return + + except (KeyboardInterrupt): + self.poutput("") + self.poutput("Terminated by user!") + return; + except (SystemExit): + # When all cards are processed the card handler device will throw a SystemExit + # execption. Also Errors that are not recoverable (cards stuck etc.) will end up here. + # The user has the option to execute some action to make aware that the card handler + # needs service. + if(opts.on_stop_action): + os.system(opts.on_stop_action) + return + except: + self.poutput("") + self.poutput("Card handling failed with an execption:") + self.poutput("---------------------8<---------------------") + traceback.print_exc() + self.poutput("---------------------8<---------------------") + self.poutput("") + fail_count = fail_count + 1 + self._show_failure_sign() + print("Statistics: success :%i, failure: %i" % (success_count, fail_count)) + + first = False + echo_parser = argparse.ArgumentParser() echo_parser.add_argument('string', help="string to echo on the shell") @@ -548,6 +719,8 @@ global_group.add_argument('--script', metavar='PATH', default=None, help='script with pySim-shell commands to be executed automatically at start-up') global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file') +global_group.add_argument("--card_handler", dest="card_handler_config", metavar="FILE", + help="Use automatic card handling machine") adm_group = global_group.add_mutually_exclusive_group() adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None, @@ -583,13 +756,18 @@ # Create command layer scc = SimCardCommands(transport=sl) + # Create a card handler (for bulk provisioning) + if opts.card_handler_config: + ch = CardHandlerAuto(None, opts.card_handler_config) + else: + ch = CardHandler(sl) # Detect and initalize the card in the reader. This may fail when there # is no card in the reader or the card is unresponsive. PysimApp is # able to tolerate and recover from that. try: rs, card = init_card(sl) - app = PysimApp(card, rs, opts.script) + app = PysimApp(card, rs, sl, ch, opts.script) except: print("Card initalization failed with an execption:") print("---------------------8<---------------------") @@ -599,7 +777,7 @@ print(" it should also be noted that some readers may behave strangely when no card") print(" is inserted.)") print("") - app = PysimApp(None, None, opts.script) + app = PysimApp(None, None, sl, ch, opts.script) # If the user supplies an ADM PIN at via commandline args authenticate # immediately so that the user does not have to use the shell commands -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9e4926675c5a497a22fc6a4fefdd388fe18a2b2d Gerrit-Change-Number: 25552 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 Sep 23 09:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:51:17 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 to look at the new patch set (#3). Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... trx_if: Allow calling trx_if_flush/close from within TRXC callback Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/25517/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:59:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:59:26 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 09:59: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 Sep 23 09:59:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:59:29 +0000 Subject: Change in osmo-bts[master]: trx_if: Allow calling trx_if_flush/close from within TRXC callback In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25517 ) Change subject: trx_if: Allow calling trx_if_flush/close from within TRXC callback ...................................................................... trx_if: Allow calling trx_if_flush/close from within TRXC callback Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 --- M src/osmo-bts-trx/trx_if.c 1 file changed, 9 insertions(+), 6 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index bfeb2ec..533f7c8 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -707,6 +707,13 @@ rsp.cb = tcm->cb; + /* Remove command from list, save it to last_acked and remove previous + * last_acked. Do it before calling callback to avoid user freeing tcm + * pointer if flushing/closing the iface. */ + llist_del(&tcm->list); + talloc_free(l1h->last_acked); + l1h->last_acked = tcm; + /* check for response code */ rc = trx_ctrl_rx_rsp(l1h, &rsp, tcm); if (rc == -EINVAL) @@ -714,15 +721,11 @@ /* re-schedule last cmd in rc seconds time */ if (rc > 0) { - osmo_timer_schedule(&l1h->trx_ctrl_timer, rc, 0); + if (!llist_empty(&l1h->trx_ctrl_list)) + osmo_timer_schedule(&l1h->trx_ctrl_timer, rc, 0); return 0; } - /* remove command from list, save it to last_acked and removed previous last_acked */ - llist_del(&tcm->list); - talloc_free(l1h->last_acked); - l1h->last_acked = tcm; - trx_ctrl_send(l1h); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25517 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic3baa95ffe4e6ca95c6d02276ea8eb0cb9fa0064 Gerrit-Change-Number: 25517 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:59:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:59:48 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 09:59:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 09:59:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:59:50 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 09: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 Thu Sep 23 09:59:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 09:59:55 +0000 Subject: Change in osmo-bts[master]: bts-trx: Get rid of check_transceiver_availability_trx() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25526 ) Change subject: bts-trx: Get rid of check_transceiver_availability_trx() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a Gerrit-Change-Number: 25526 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 09:59: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 Sep 23 10:00:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:00:09 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 23 Sep 2021 10: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 Thu Sep 23 10:00:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:00:19 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... Patch Set 3: -Code-Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 23 Sep 2021 10:00:19 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:00:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:00:24 +0000 Subject: Change in osmo-bts[master]: trx_if: delete retrans timer when flushing the Tx queue In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25518 ) Change subject: trx_if: delete retrans timer when flushing the Tx queue ...................................................................... trx_if: delete retrans timer when flushing the Tx queue Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb --- M src/osmo-bts-trx/trx_if.c 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 533f7c8..c4b00fd 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1203,6 +1203,10 @@ } talloc_free(l1h->last_acked); l1h->last_acked = NULL; + + /* Tx queue is now empty, so there's no point in keeping the retrans timer armed: */ + if (osmo_timer_pending(&l1h->trx_ctrl_timer)) + osmo_timer_del(&l1h->trx_ctrl_timer); } /*! close the TRX for given handle (data + control socket) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic31dc5629ed950f3b4b8feb9917d11779696f6eb Gerrit-Change-Number: 25518 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 Thu Sep 23 10:00:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:00:25 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Properly reset FSM state upon starting listening f... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25519 ) Change subject: trx_provision_fsm: Properly reset FSM state upon starting listening for events ...................................................................... trx_provision_fsm: Properly reset FSM state upon starting listening for events Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 52 insertions(+), 1 deletion(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 19cbc8b..660360d 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -92,6 +92,57 @@ /* * transceiver provisioning */ + +static void trx_provision_reset(struct trx_l1h *l1h) +{ + struct phy_instance *pinst = l1h->phy_inst; + uint8_t tn; + + l1h->config.trxd_pdu_ver_req = pinst->phy_link->u.osmotrx.trxd_pdu_ver_max; + l1h->config.trxd_pdu_ver_use = 0; + l1h->config.setformat_sent = false; + l1h->config.setformat_acked = false; + + l1h->config.enabled = false; + l1h->config.arfcn_valid = false; + l1h->config.arfcn = 0; + l1h->config.rxtune_sent = false; + l1h->config.rxtune_acked = false; + l1h->config.txtune_sent = false; + l1h->config.txtune_acked = false; + + l1h->config.tsc_valid = false; + l1h->config.tsc = 0; + l1h->config.tsc_sent = false; + l1h->config.tsc_acked = false; + + l1h->config.bsic_valid = false; + l1h->config.bsic = 0; + l1h->config.bsic_sent = false; + l1h->config.bsic_acked = false; + + l1h->config.rxgain_valid = false; + l1h->config.rxgain = 0; + l1h->config.rxgain_sent = false; + + l1h->config.nomtxpower_sent = false; + l1h->config.nomtxpower_acked = false; + + l1h->config.maxdly_valid = false; + l1h->config.maxdly_sent = false; + + l1h->config.maxdlynb_valid = false; + l1h->config.maxdlynb_sent = false; + + for (tn = 0; tn < TRX_NR_TS; tn++) { + l1h->config.setslot_valid[tn] = false; + l1h->config.setslot_sent[tn] = false; + l1h->config.setslot[tn].slottype = 0; + l1h->config.setslot[tn].tsc_set = 0; + l1h->config.setslot[tn].tsc_val = 0; + l1h->config.setslot[tn].tsc_valid = 0; + } +} int l1if_provision_transceiver_trx(struct trx_l1h *l1h) { struct phy_instance *pinst = l1h->phy_inst; @@ -274,7 +325,7 @@ struct trx_l1h *l1h = (struct trx_l1h *)fi->priv; struct phy_instance *pinst = l1h->phy_inst; - l1h->config.trxd_pdu_ver_req = pinst->phy_link->u.osmotrx.trxd_pdu_ver_max; + trx_provision_reset(l1h); /* Apply initial RFMUTE state */ if (pinst->trx != NULL) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If0d078bc0170091efbca351c44ee412dad1e944a Gerrit-Change-Number: 25519 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 Thu Sep 23 10:00:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:00:26 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25525 ) Change subject: bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr ...................................................................... bts-trx: Submit TRX_PROV_EV_CFG_ARFCN for C0 during SetBtsAttr In oml_rx_set_bts_attr, arfcn for C0 is assigned from NM_ATT_BCCH_ARFCN. The rest of the TRX get their arfcn from oml_rx_set_radio_attr() NM_ATT_ARFCN_LIST. Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 14 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 90adde2..0fedcfc 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -230,13 +230,20 @@ /* set bts attributes */ static uint8_t trx_set_bts(struct gsm_bts *bts, struct tlv_parsed *new_attr) { - struct gsm_bts_trx *trx; + struct phy_instance *pinst = trx_phy_instance(bts->c0); + struct trx_l1h *l1h = pinst->u.osmotrx.hdl; uint8_t bsic = bts->bsic; + struct gsm_bts_trx *trx; + struct phy_link *plink; + + /* ARFCN for C0 is assigned during Set BTS Attr, see oml.c */ + osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void *)(intptr_t)pinst->trx->arfcn); llist_for_each_entry(trx, &bts->trx_list, list) { - struct phy_instance *pinst = trx_phy_instance(trx); - struct phy_link *plink = pinst->phy_link; - struct trx_l1h *l1h = pinst->u.osmotrx.hdl; + pinst = trx_phy_instance(trx); + l1h = pinst->u.osmotrx.hdl; + plink = pinst->phy_link; + osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_BSIC, (void*)(intptr_t)bsic); check_transceiver_availability_trx(l1h, phy_link_state_get(plink) != PHY_LINK_SHUTDOWN); } @@ -252,7 +259,9 @@ struct phy_link *plink = pinst->phy_link; uint16_t arfcn = trx->arfcn; - osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void*)(intptr_t)arfcn); + /* ARFCN for C0 is assigned during Set BTS Attr, see oml.c */ + if (trx != trx->bts->c0) + osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void *)(intptr_t)arfcn); /* 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8aa9652622107fe0a707b2cbcbe8be6c71e19087 Gerrit-Change-Number: 25525 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 Thu Sep 23 10:00:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:00:26 +0000 Subject: Change in osmo-bts[master]: bts-trx: Get rid of check_transceiver_availability_trx() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25526 ) Change subject: bts-trx: Get rid of check_transceiver_availability_trx() ...................................................................... bts-trx: Get rid of check_transceiver_availability_trx() Get rid of this helper function, which is a remain of past epochs (pre-FSM). In the current uses, there's only 2 real cases: the "if" path upon SET BTS ATTR received (and even that one should be moved as per what the code comment states), and the one happening when the TRX is closed. it really makes no sense to DISABLE the TRX as a result of SET BTS ATTR. Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a --- M src/osmo-bts-trx/l1_if.c 1 file changed, 10 insertions(+), 24 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 0fedcfc..9b210eb 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -87,26 +87,6 @@ return l1h; } -static void check_transceiver_availability_trx(struct trx_l1h *l1h, int avail) -{ - struct phy_instance *pinst = l1h->phy_inst; - struct gsm_bts_trx *trx = pinst->trx; - - /* HACK, we should change state when we receive first clock from - * transceiver */ - if (avail) { - /* signal availability */ - if (!pinst->u.osmotrx.sw_act_reported) { - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SW_ACT, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); - pinst->u.osmotrx.sw_act_reported = true; - } - } else { - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_DISABLE, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); - } -} - int bts_model_lchan_deactivate(struct gsm_lchan *lchan) { if (lchan->rel_act_kind == LCHAN_REL_ACT_REACT) { @@ -211,7 +191,8 @@ osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CLOSE, NULL); /* Set to Operational State: Disabled */ - check_transceiver_availability_trx(l1h, 0); + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_DISABLE, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } /* on RSL failure, deactivate transceiver */ @@ -234,7 +215,6 @@ struct trx_l1h *l1h = pinst->u.osmotrx.hdl; uint8_t bsic = bts->bsic; struct gsm_bts_trx *trx; - struct phy_link *plink; /* ARFCN for C0 is assigned during Set BTS Attr, see oml.c */ osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_ARFCN, (void *)(intptr_t)pinst->trx->arfcn); @@ -242,10 +222,16 @@ llist_for_each_entry(trx, &bts->trx_list, list) { pinst = trx_phy_instance(trx); l1h = pinst->u.osmotrx.hdl; - plink = pinst->phy_link; osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_BSIC, (void*)(intptr_t)bsic); - check_transceiver_availability_trx(l1h, phy_link_state_get(plink) != PHY_LINK_SHUTDOWN); + /* signal availability */ + if (!pinst->u.osmotrx.sw_act_reported) { + /* HACK, we should change state when we receive first clock from + * transceiver */ + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SW_ACT, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); + pinst->u.osmotrx.sw_act_reported = true; + } } return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I48adfeecd722684152c589bcba827079b0a78c3a Gerrit-Change-Number: 25526 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 Thu Sep 23 10:02:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:02:42 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Support turn off C/I based logic In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25513 ) Change subject: MS Power Control Loop: Support turn off C/I based logic ...................................................................... MS Power Control Loop: Support turn off C/I based logic Setting LOWER_CMP_N and UPPER_CMP_N for all channel types can be quite cumbersome and end up in lengthy config files. Let's instead add a placeholder command to apply it to all channel types of a BTS at once. This is useful specially since a user disabling C/I capabilities probably does so because it may require a fair amount of fine-tuning parameters to have it working perfectly. Hence, a user not willing to spend time configuring those parameters correctly (and for which default ones doesn't work properly) will require quick way to get rid of C/I based MS Power Control Loop. By disabling C/I comparison, osmo-bts will rely on RxLev only when applying the MS Power Control Loop, which is fine for non noisy environments. Related: SYS#4917 Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 --- M doc/manuals/chapters/power_control.adoc M src/osmo-bsc/bts_vty.c M tests/power_ctrl.vty 3 files changed, 77 insertions(+), 0 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index 54cbd5b..bc112aa 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -345,6 +345,14 @@ <3> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power. <4> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power. +NOTE: The BSC can instruct a BTS to disable C/I related logic in its +autonomous MS Power Control Loop for a given channel type (hence not taking C/I +measurements into account) by means of setting both related LOWER_CMP_N and +UPPER_CMP_N parameters to zero (see _ci-thresh-comp_ VTY command). For the sake +of easing configuration, a placeholder VTY command to disable C/I for all +channel types is available under VTY node _ms-power-control_ as *_ci-thresh-comp +disable all_*. + ==== Measurement averaging process 3GPP 45.008, section A.3.1 requires that the measurement values reported by both diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 3774344..7a502d7 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3272,6 +3272,35 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp_disable, + cfg_power_ctrl_ci_thresh_comp_disable_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "ci-thresh-comp disable all", + "Set Carrier-to_interference (C/I) threshold comparators (for dynamic mode)\n" + "Disable C/I comparison in control loop (sets LOWER_CMP_N and UPPER_CMP_N to zero)\n" + "Disable C/I comparison for all channel types\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + +#define DISABLE_MEAS_PC(PARAMS, TYPE) \ + (PARAMS)->TYPE##_meas.lower_cmp_p = 0; \ + (PARAMS)->TYPE##_meas.lower_cmp_n = 0; \ + (PARAMS)->TYPE##_meas.upper_cmp_p = 0; \ + (PARAMS)->TYPE##_meas.upper_cmp_n = 0 + + DISABLE_MEAS_PC(params, ci_fr); + DISABLE_MEAS_PC(params, ci_hr); + DISABLE_MEAS_PC(params, ci_amr_fr); + DISABLE_MEAS_PC(params, ci_amr_hr); + DISABLE_MEAS_PC(params, ci_sdcch); + DISABLE_MEAS_PC(params, ci_gprs); + +#undef DISABLE_MEAS_PC + + return CMD_SUCCESS; +} + #define POWER_CONTROL_MEAS_AVG_CMD \ "(rxlev-avg|rxqual-avg)" #define POWER_CONTROL_MEAS_AVG_DESC \ @@ -4445,6 +4474,7 @@ install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_disable_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd); diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index af02cd4..b14a905 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -38,6 +38,7 @@ . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> + . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -118,6 +119,7 @@ . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> + . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -295,3 +297,40 @@ rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 ... + +OsmoBSC(config-net-bts)# ### Check 'ci-thresh-comp disable all' works properly: +OsmoBSC(config-net-bts)# ms-power-control +OsmoBSC(config-ms-power-ctrl)# show running-config +... + ms-power-control +... + ci-thresh-comp fr-efr lower 5 7 upper 15 18 +... + ci-thresh-comp hr lower 5 7 upper 15 18 +... + ci-thresh-comp amr-fr lower 5 7 upper 15 18 +... + ci-thresh-comp amr-hr lower 5 7 upper 15 18 +... + ci-thresh-comp sdcch lower 5 7 upper 15 18 +... + ci-thresh-comp gprs lower 5 7 upper 15 18 +... + +OsmoBSC(config-ms-power-ctrl)# ci-thresh-comp disable all +OsmoBSC(config-ms-power-ctrl)# show running-config +... + ms-power-control +... + ci-thresh-comp fr-efr lower 0 0 upper 0 0 +... + ci-thresh-comp hr lower 0 0 upper 0 0 +... + ci-thresh-comp amr-fr lower 0 0 upper 0 0 +... + ci-thresh-comp amr-hr lower 0 0 upper 0 0 +... + ci-thresh-comp sdcch lower 0 0 upper 0 0 +... + ci-thresh-comp gprs lower 0 0 upper 0 0 +... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I0e1a1a9228a15e9ec9c41b7952b03e1d25309706 Gerrit-Change-Number: 25513 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:02:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:02:59 +0000 Subject: Change in osmo-bts[master]: MS Power Control Loop: Disable threshold comparison on {LOWER, UPPER}_... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25514 ) Change subject: MS Power Control Loop: Disable threshold comparison on {LOWER,UPPER}_CMP_N=0 ...................................................................... MS Power Control Loop: Disable threshold comparison on {LOWER,UPPER}_CMP_N=0 This way we provide an effective way to disable C/I based decision taking in the MS Power Control Loop. With this set up, MS Power Level is decided only based on RxLev. This allows for working setup in following scenarios: * BTS L1 not passing proper C/I values to upper layers (eg. TRXDv0). * User not willing to spend time configuring proper C/I levels for each channel type. Related: SYS#4917 Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c --- M src/common/power_control.c 1 file changed, 10 insertions(+), 4 deletions(-) Approvals: fixeria: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/power_control.c b/src/common/power_control.c index a3334be..8f5ce37 100644 --- a/src/common/power_control.c +++ b/src/common/power_control.c @@ -199,7 +199,7 @@ uint8_t rxlev_avg; int16_t ul_lqual_cb_avg; const struct gsm_power_ctrl_meas_params *ci_meas; - bool ignore; + bool ignore, ci_on; if (!trx_ms_pwr_ctrl_is_osmo(trx)) return 0; @@ -225,13 +225,19 @@ return 0; } - /* If computed C/I is out of acceptable thresholds: */ ci_meas = lchan_get_ci_thresholds(lchan); + + /* Is C/I based algo enabled by config? + * FIXME: this can later be generalized when properly implementing P & N counting. */ + ci_on = ci_meas->lower_cmp_n && ci_meas->upper_cmp_n; + ul_lqual_cb_avg = do_avg_algo(ci_meas, &state->ci_meas_proc, ul_lqual_cb); rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &state->rxlev_meas_proc, dbm2rxlev(ul_rssi_dbm)); - if (ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { + + /* If computed C/I is enabled and out of acceptable thresholds: */ + if (ci_on && ul_lqual_cb_avg < ci_meas->lower_thresh * 10) { new_dbm = ms_dbm + params->inc_step_size_db; - } else if (ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { + } else if (ci_on && ul_lqual_cb_avg > ci_meas->upper_thresh * 10) { new_dbm = ms_dbm - params->red_step_size_db; } else { /* Calculate the new Tx power value (in dBm) */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ibd10eb96a5d072d5c19f7449a8b11e64aad1cd4c Gerrit-Change-Number: 25514 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:03:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:03:21 +0000 Subject: Change in osmo-bts[master]: l1sap: Support rx of empty rlcmac blocks from PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25534 ) Change subject: l1sap: Support rx of empty rlcmac blocks from PCU ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Gerrit-Change-Number: 25534 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 10:03:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:03:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:03:23 +0000 Subject: Change in osmo-bts[master]: l1sap: Support rx of empty rlcmac blocks from PCU In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25534 ) Change subject: l1sap: Support rx of empty rlcmac blocks from PCU ...................................................................... l1sap: Support rx of empty rlcmac blocks from PCU This way the PCU can signal idle RLCMAC blocks (no transmission required) to the BTS, which can then send dummy/fill blocks aplying power reduction as needed by TRX. The block with len=0 is submitted to lower layers up to the scheduler, which will finally drop it in trx_sched_ph_data_req(). Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Related: SYS#4919 --- M src/common/l1sap.c 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 8aa80e7..b9bc675 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1977,8 +1977,12 @@ l1sap->u.data.chan_nr = RSL_CHAN_OSMO_PDCH | ts->nr; l1sap->u.data.link_id = 0x00; l1sap->u.data.fn = fn; - msg->l2h = msgb_put(msg, len); - memcpy(msg->l2h, data, len); + if (len) { + msg->l2h = msgb_put(msg, len); + memcpy(msg->l2h, data, len); + } else { + msg->l2h = NULL; /* Idle block */ + } return l1sap_down(ts->trx, l1sap); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I734c66e236bf3e2015a4571ea1fd84849a9ef02c Gerrit-Change-Number: 25534 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:03:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 10:03:35 +0000 Subject: Change in osmo-pcu[master]: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25540 ) Change subject: tbf_ul_ass_fsm.c: Fix missing state transition in FSM description ...................................................................... tbf_ul_ass_fsm.c: Fix missing state transition in FSM description As seen operating PCU after BTS restart, lots of following message sequences due to FSM kept in same state (hence scheduler retyring every time): """ DTBF tbf_ul_ass_fsm.c:306 UL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG DTBF tbf_ul_ass_fsm.c:95 TBF(TFI=0 TLLI=0xf80bd801 DIR=DL STATE=RELEASING EGPRS) We have a schedule for uplink assignment, but there is no uplink TBF DTBF tbf_ul_ass_fsm.c:97 UL_ASS_TBF(DL-TFI_0){SEND_ASS}: transition to state NONE not permitted! DTBF tbf_ul_ass_fsm.c:306 UL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG """ Change-Id: I91d74f70a9106ccbf0c137b6e713877f9ea8f59d --- M src/tbf_ul_ass_fsm.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/tbf_ul_ass_fsm.c b/src/tbf_ul_ass_fsm.c index eab34ee..618e072 100644 --- a/src/tbf_ul_ass_fsm.c +++ b/src/tbf_ul_ass_fsm.c @@ -257,7 +257,9 @@ }, [TBF_UL_ASS_SEND_ASS] = { .in_event_mask = X(TBF_UL_ASS_EV_CREATE_RLCMAC_MSG), - .out_state_mask = X(TBF_UL_ASS_WAIT_ACK), + .out_state_mask = + X(TBF_UL_ASS_WAIT_ACK) | + X(TBF_UL_ASS_NONE), .name = "SEND_ASS", .action = st_send_ass, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I91d74f70a9106ccbf0c137b6e713877f9ea8f59d Gerrit-Change-Number: 25540 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:42:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 10:42:16 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25484 to look at the new patch set (#6). Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Related: SYS#5617 --- M pySim-shell.py 1 file changed, 52 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/6 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 10:42:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 10:42:16 +0000 Subject: Change in pysim[master]: pySim-shell: allow card insertion at runtime 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/+/25549 to look at the new patch set (#2). Change subject: pySim-shell: allow card insertion at runtime ...................................................................... pySim-shell: allow card insertion at runtime Currently a card must be present in the reader until the user can enter pySim-shell. Removing and plugging another card is in theory already possible, but then the new card will operate on the old card and runtime state object. It might also be useful to enter pySim-shell before the card is plugged to execute some other commands for preperation before. So lets allow to "equip" pySim-shell with a card and rs object at runtime. Related: SYS#5617 Change-Id: I9cf532d9da8203065463c7201e7064de6c7ab1b5 --- M pySim-shell.py M pySim/filesystem.py 2 files changed, 84 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/49/25549/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9cf532d9da8203065463c7201e7064de6c7ab1b5 Gerrit-Change-Number: 25549 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 Thu Sep 23 10:42:16 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 23 Sep 2021 10:42:16 +0000 Subject: Change in pysim[master]: pySim-shell: add bulk provisioning support In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25552 to look at the new patch set (#2). Change subject: pySim-shell: add bulk provisioning support ...................................................................... pySim-shell: add bulk provisioning support There are scenarios where multiple cards need to get the same change. Lets add a new command that takes a script as parameter and executes the secript in a loop on multiple cards while prompting the user to change the card before starting the next cycle. Change-Id: I9e4926675c5a497a22fc6a4fefdd388fe18a2b2d Related: SYS#5617 --- M pySim-shell.py 1 file changed, 183 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/52/25552/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9e4926675c5a497a22fc6a4fefdd388fe18a2b2d Gerrit-Change-Number: 25552 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 Thu Sep 23 11:03:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 23 Sep 2021 11:03:50 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11:03: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 Sep 23 11:09:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:09:01 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX SW_ACT when PHY becomes connected In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25528 ) Change subject: bts-trx: Submit TRX SW_ACT when PHY becomes connected ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 Gerrit-Change-Number: 25528 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11:09:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 11:09:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:09:15 +0000 Subject: Change in osmo-bts[master]: bts-trx: Avoid race condition configuring TS-specific TSC values In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25527 ) Change subject: bts-trx: Avoid race condition configuring TS-specific TSC values ...................................................................... bts-trx: Avoid race condition configuring TS-specific TSC values In OML, if Set Attributes comes first for Channel object and then for BTS object, BSIC will still not be set. Hence, when applying Channel (TS) specific TSC, the code would compare against an unset value, enabling use of TRXC extensions (which osmo-trx doesn't support) without need for it, since actually the TSC of the TS matches the BSIC of the BTS once both are set. In order to fix it, don't check for the BSIC when receiving the OML messages, but rather later when we apply the settings to the the lower layers once trx_provision_fsm allows for it. Fixes: 3c1151f9456bdf0d7348c27c0cabbb41e84fcbbc Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 --- M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/trx_if.c 2 files changed, 4 insertions(+), 2 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 9b210eb..df2531e 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -292,7 +292,7 @@ struct trx_prov_ev_cfg_ts_data data = { .tn = tn, .slottype = slottype }; - if (ts->tsc_set != 0 || ts->tsc != BTS_TSC(ts->trx->bts)) { + if (ts->tsc_set != 0) { /* On TRXC we use 3GPP compliant numbering, so +1 */ data.tsc_set = ts->tsc_set + 1; data.tsc_val = ts->tsc; diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index c4b00fd..1a92047 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -332,8 +332,10 @@ trx_if_cmd_setslot_cb *cb) { const struct trx_config *cfg = &l1h->config; + const struct phy_instance *pinst = l1h->phy_inst; - if (cfg->setslot[tn].tsc_valid) { /* PHY is instructed to use a custom TSC */ + if (cfg->setslot[tn].tsc_valid && cfg->setslot[tn].tsc_val != BTS_TSC(pinst->trx->bts)) { + /* PHY is instructed to use a custom TSC */ return trx_ctrl_cmd_cb(l1h, 1, cb, "SETSLOT", "%u %u C%u/S%u", tn, cfg->setslot[tn].slottype, cfg->setslot[tn].tsc_val, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I49fc7e35acb44ecc4f37ae71acd4c684248548e7 Gerrit-Change-Number: 25527 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 11:09:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:09:17 +0000 Subject: Change in osmo-bts[master]: bts-trx: Submit TRX SW_ACT when PHY becomes connected In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25528 ) Change subject: bts-trx: Submit TRX SW_ACT when PHY becomes connected ...................................................................... bts-trx: Submit TRX SW_ACT when PHY becomes connected Once the TRXC link is available, we can signal SW_ACT which will transit rcarrier and bbtransc NM FSMs to Disabled Offline and announce availability to be configured to the BSC through transmission of Software Activated Report. Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 --- M include/osmo-bts/phy_link.h M src/osmo-bts-trx/l1_if.c M src/osmo-bts-trx/trx_provision_fsm.c 3 files changed, 4 insertions(+), 9 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 4b8a863..78fe6b9 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -112,7 +112,6 @@ } sysmobts; struct { struct trx_l1h *hdl; - bool sw_act_reported; struct trx_dl_burst_req br[TRX_NR_TS]; } osmotrx; struct { diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index df2531e..f35c9ba 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -224,14 +224,6 @@ l1h = pinst->u.osmotrx.hdl; osmo_fsm_inst_dispatch(l1h->provision_fi, TRX_PROV_EV_CFG_BSIC, (void*)(intptr_t)bsic); - /* signal availability */ - if (!pinst->u.osmotrx.sw_act_reported) { - /* HACK, we should change state when we receive first clock from - * transceiver */ - osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_SW_ACT, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); - pinst->u.osmotrx.sw_act_reported = true; - } } return 0; diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 660360d..6041073 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_provision_fsm.h" @@ -332,6 +333,9 @@ trx_if_cmd_rfmute(l1h, pinst->trx->mo.nm_state.administrative != NM_STATE_UNLOCKED); else trx_if_cmd_rfmute(l1h, true); + + osmo_fsm_inst_dispatch(pinst->trx->mo.fi, NM_EV_SW_ACT, NULL); + osmo_fsm_inst_dispatch(pinst->trx->bb_transc.mo.fi, NM_EV_SW_ACT, NULL); } static void st_open_poweroff(struct osmo_fsm_inst *fi, uint32_t event, void *data) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I6e62ec2fdd4cae58b52d83fa851552f7ed51c821 Gerrit-Change-Number: 25528 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 Thu Sep 23 11:09:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:09:17 +0000 Subject: Change in osmo-bts[master]: trx_sched_clean_ts: Clean VAMOS shadow TS too In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25541 ) Change subject: trx_sched_clean_ts: Clean VAMOS shadow TS too ...................................................................... trx_sched_clean_ts: Clean VAMOS shadow TS too trx_sched_init_ts does it properly, but apparently it was forgotten to do the same upon clean up. Change-Id: Ice751870a46548af42b14846b8482335f636a84a --- M src/common/scheduler.c 1 file changed, 29 insertions(+), 20 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 6e1e4fb..0826eda 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -653,34 +653,43 @@ } } +static void trx_sched_clean_ts(struct gsm_bts_trx_ts *ts) +{ + struct l1sched_ts *l1ts = ts->priv; + unsigned int i; + + 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]; + if (chan_state->dl_bursts) { + talloc_free(chan_state->dl_bursts); + chan_state->dl_bursts = NULL; + } + if (chan_state->ul_bursts) { + talloc_free(chan_state->ul_bursts); + chan_state->ul_bursts = NULL; + } + } + /* clear lchan channel states */ + for (i = 0; i < ARRAY_SIZE(ts->lchan); i++) + lchan_set_state(&ts->lchan[i], LCHAN_S_NONE); +} + void trx_sched_clean(struct gsm_bts_trx *trx) { - unsigned int tn, i; + unsigned int tn; LOGPTRX(trx, DL1C, LOGL_DEBUG, "Clean scheduler structures\n"); for (tn = 0; tn < ARRAY_SIZE(trx->ts); tn++) { struct gsm_bts_trx_ts *ts = &trx->ts[tn]; - struct l1sched_ts *l1ts = ts->priv; - 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]; - if (chan_state->dl_bursts) { - talloc_free(chan_state->dl_bursts); - chan_state->dl_bursts = NULL; - } - if (chan_state->ul_bursts) { - talloc_free(chan_state->ul_bursts); - chan_state->ul_bursts = NULL; - } - } - /* clear lchan channel states */ - for (i = 0; i < ARRAY_SIZE(ts->lchan); i++) - lchan_set_state(&ts->lchan[i], LCHAN_S_NONE); + /* Clean primary and shadow timeslots */ + trx_sched_clean_ts(ts); + trx_sched_clean_ts(ts->vamos.peer); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ice751870a46548af42b14846b8482335f636a84a Gerrit-Change-Number: 25541 Gerrit-PatchSet: 3 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 Sep 23 11:15:47 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:15:47 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25348 to look at the new patch set (#3). Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... vty: add vty_out_uptime() print the uptime to the vty vty_out_uptime() calculates the time difference to a given timespec and print it in a human readable format (days, hours, minutes, seconds) to the vty. Related: OS#5028 Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 --- M include/osmocom/vty/vty.h M src/vty/command.c M src/vty/vty.c 3 files changed, 25 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/25348/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 11:16:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:16:50 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11:16:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 11:32:40 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 23 Sep 2021 11:32:40 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11: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 Sep 23 11:35:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:35:21 +0000 Subject: Change in osmo-ggsn[master]: cosmetic: configure.ac: Fix tabulation in line References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/25553 ) Change subject: cosmetic: configure.ac: Fix tabulation in line ...................................................................... cosmetic: configure.ac: Fix tabulation in line Change-Id: I5cfc90ace5f9cc9c3fe4dde7aeccbdf1909da007 --- M configure.ac 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/53/25553/1 diff --git a/configure.ac b/configure.ac index 479ae3b..2cf44fc 100644 --- a/configure.ac +++ b/configure.ac @@ -258,7 +258,7 @@ intl/Makefile po/Makefile sgsnemu/Makefile - doc/manuals/Makefile + doc/manuals/Makefile contrib/Makefile contrib/systemd/Makefile contrib/osmo-ggsn.spec -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I5cfc90ace5f9cc9c3fe4dde7aeccbdf1909da007 Gerrit-Change-Number: 25553 Gerrit-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 Sep 23 11:41:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:41:03 +0000 Subject: Change in libosmocore[master]: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of u... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25554 ) Change subject: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci ...................................................................... ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci The BLOCK and BLOCK ACK PDUs can be send over a working NSVC to inform the NSE that a NSVC is blocked. Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c M tests/gb/gprs_ns2_test.c 4 files changed, 25 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/54/25554/1 diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index bfb12d9..a5d78d4 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -422,8 +422,8 @@ unsigned int num_ip6_elems); /* transmit message over a VC */ -int ns2_tx_block(struct gprs_ns2_vc *nsvc, uint8_t cause); -int ns2_tx_block_ack(struct gprs_ns2_vc *nsvc); +int ns2_tx_block(struct gprs_ns2_vc *nsvc, uint8_t cause, uint16_t *nsvci); +int ns2_tx_block_ack(struct gprs_ns2_vc *nsvc, uint16_t *nsvci); int ns2_tx_reset(struct gprs_ns2_vc *nsvc, uint8_t cause); int ns2_tx_reset_ack(struct gprs_ns2_vc *nsvc); diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 5e3e025..2dbbf5e 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -207,11 +207,16 @@ * \param[in] vc NS-VC on which the NS-BLOCK is to be transmitted * \param[in] cause Numeric NS Cause value * \returns 0 in case of success */ -int ns2_tx_block(struct gprs_ns2_vc *nsvc, uint8_t cause) +int ns2_tx_block(struct gprs_ns2_vc *nsvc, uint8_t cause, uint16_t *nsvci) { struct msgb *msg; struct gprs_ns_hdr *nsh; - uint16_t nsvci = osmo_htons(nsvc->nsvci); + uint16_t encoded_nsvci; + + if (nsvci) + encoded_nsvci = osmo_htons(*nsvci); + else + encoded_nsvci = osmo_htons(nsvc->nsvci); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -229,7 +234,7 @@ nsh->pdu_type = NS_PDUT_BLOCK; msgb_tvlv_put(msg, NS_IE_CAUSE, 1, &cause); - msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); + msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &encoded_nsvci); LOG_NS_SIGNAL(nsvc, "Tx", nsh->pdu_type, LOGL_INFO, " cause=%s\n", gprs_ns2_cause_str(cause)); return ns_vc_tx(nsvc, msg); @@ -238,11 +243,16 @@ /*! Transmit a NS-BLOCK-ACK on a given NS-VC. * \param[in] nsvc NS-VC on which the NS-BLOCK is to be transmitted * \returns 0 in case of success */ -int ns2_tx_block_ack(struct gprs_ns2_vc *nsvc) +int ns2_tx_block_ack(struct gprs_ns2_vc *nsvc, uint16_t *nsvci) { struct msgb *msg; struct gprs_ns_hdr *nsh; - uint16_t nsvci = osmo_htons(nsvc->nsvci); + uint16_t encoded_nsvci; + + if (nsvci) + encoded_nsvci = osmo_htons(*nsvci); + else + encoded_nsvci = osmo_htons(nsvc->nsvci); log_set_context(LOG_CTX_GB_NSE, nsvc->nse); log_set_context(LOG_CTX_GB_NSVC, nsvc); @@ -257,7 +267,7 @@ nsh = (struct gprs_ns_hdr *) msg->l2h; nsh->pdu_type = NS_PDUT_BLOCK_ACK; - msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); + msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &encoded_nsvci); LOG_NS_TX_SIGNAL(nsvc, nsh->pdu_type); return ns_vc_tx(nsvc, msg); diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index fa8cec2..a366c93 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -348,7 +348,7 @@ if (old_state == GPRS_NS2_ST_RESET) { osmo_timer_del(&fi->timer); } else { - ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); + ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION, NULL); } } else if (priv->initiate_block) { ns2_tx_unblock(priv->nsvc); @@ -369,12 +369,12 @@ break; case GPRS_NS2_EV_RX_BLOCK: priv->accept_unitdata = false; - ns2_tx_block_ack(priv->nsvc); + ns2_tx_block_ack(priv->nsvc, NULL); osmo_timer_del(&fi->timer); break; case GPRS_NS2_EV_RX_UNBLOCK: priv->accept_unitdata = false; - ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION); + ns2_tx_block(priv->nsvc, NS_CAUSE_OM_INTERVENTION, NULL); osmo_timer_add(&fi->timer); break; } @@ -382,7 +382,7 @@ switch (event) { case GPRS_NS2_EV_RX_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ - ns2_tx_block_ack(priv->nsvc); + ns2_tx_block_ack(priv->nsvc, NULL); break; case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); @@ -397,7 +397,7 @@ /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { case GPRS_NS2_EV_RX_BLOCK: - ns2_tx_block_ack(priv->nsvc); + ns2_tx_block_ack(priv->nsvc, NULL); break; case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); @@ -441,7 +441,7 @@ case GPRS_NS2_EV_RX_BLOCK: priv->initiate_block = false; priv->accept_unitdata = false; - ns2_tx_block_ack(priv->nsvc); + ns2_tx_block_ack(priv->nsvc, NULL); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 2); break; diff --git a/tests/gb/gprs_ns2_test.c b/tests/gb/gprs_ns2_test.c index ad78a62..0221a8d 100644 --- a/tests/gb/gprs_ns2_test.c +++ b/tests/gb/gprs_ns2_test.c @@ -439,7 +439,7 @@ printf("---- Send Block NSVC[0]\n"); ns2_vc_block(nsvc[0]); - ns2_tx_block_ack(loop[0]); + ns2_tx_block_ack(loop[0], NULL); /* try to receive a unitdata - this should be dropped & freed by NS */ printf("---- Try to receive over blocked NSVC[0]\n"); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 Gerrit-Change-Number: 25554 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 Sep 23 11:41:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:41:03 +0000 Subject: Change in libosmocore[master]: ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLO... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25555 ) Change subject: ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLOCKED cause codes ...................................................................... ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLOCKED cause codes Those cause codes are only valid for BLOCK/RESET NSVCs. Change-Id: I560f1c8c2826befd03641bebffe156ac070061c2 --- M src/gb/gprs_ns2_message.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/55/25555/1 diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index 2dbbf5e..a77a79c 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -103,6 +103,11 @@ *cause = NS_CAUSE_MISSING_ESSENT_IE; return -1; } + + if (nsvc->mode != GPRS_NS2_VC_MODE_BLOCKRESET) { + *cause = NS_CAUSE_PDU_INCOMP_PSTATE; + return -1; + } break; case NS_CAUSE_SEM_INCORR_PDU: case NS_CAUSE_PDU_INCOMP_PSTATE: -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I560f1c8c2826befd03641bebffe156ac070061c2 Gerrit-Change-Number: 25555 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 Sep 23 11:41:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:41:03 +0000 Subject: Change in libosmocore[master]: ns2: fsm: add comment don't answer on a STATUS with a STATUS References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25556 ) Change subject: ns2: fsm: add comment don't answer on a STATUS with a STATUS ...................................................................... ns2: fsm: add comment don't answer on a STATUS with a STATUS Change-Id: Ib8f700f9193a96a7bada3b0293dcecf6a05d6efc --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/25556/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index a366c93..d09c31a 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -861,6 +861,7 @@ /* TODO: handle BLOCK/UNBLOCK/ALIVE with different VCI */ if (ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { + /* don't answer on a STATUS with a STATUS */ if (nsh->pdu_type != NS_PDUT_STATUS) { rc = ns2_tx_status(nsvc, cause, 0, msg); goto out; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib8f700f9193a96a7bada3b0293dcecf6a05d6efc Gerrit-Change-Number: 25556 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 Sep 23 11:41:03 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:41:03 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25557 ) Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... ns2: correct parse a STATUS PDU which was received over a different NSVC STATUS PDU can be send over a different NSVC than the NSVC. E.g. informing a NSVC got blocked in case of a lower-layer failure. Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 24 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/25557/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d09c31a..3395254 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -851,6 +851,7 @@ int ns2_vc_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; + struct gprs_ns2_vc *target_nsvc = NULL; struct osmo_fsm_inst *fi = nsvc->fi; int rc = 0; uint8_t cause; @@ -884,11 +885,27 @@ nsvci = tlvp_val16be(tp, NS_IE_VCI); if (nsvci != nsvc->nsvci) { /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ - if (nsh->pdu_type == NS_PDUT_RESET) + if (nsh->pdu_type == NS_PDUT_RESET) { ns2_tx_reset_ack(nsvc); + } else if (nsh->pdu_type == NS_PDUT_STATUS) { + /* this is a PDU received over a NSVC and reports a status for another NSVC */ + target_nsvc = gprs_ns2_nsvc_by_nsvci(nsvc->nse->nsi, nsvci); + if (!target_nsvc) { + LOGPFSML(fi, LOGL_ERROR, "Received a STATUS PDU for unknown NSVC (NSVCI %d)\n", nsvci); + goto out; + } - LOG_NS_SIGNAL(nsvc, "Rx", nsh->pdu_type, LOGL_ERROR, " with wrong NSVCI=%05u. Ignoring PDU.\n", nsvci); - goto out; + if (target_nsvc->nse != nsvc->nse) { + LOGPFSML(fi, LOGL_ERROR, "Received a STATUS PDU for a NSVC (NSVCI %d) but it belongs to a different NSE!\n", nsvci); + /* send out status */ + goto out; + } + + /* the status will be passed to the nsvc/target nsvc in the switch */ + } else { + LOG_NS_SIGNAL(nsvc, "Rx", nsh->pdu_type, LOGL_ERROR, " with wrong NSVCI=%05u. Ignoring PDU.\n", nsvci); + goto out; + } } } @@ -922,7 +939,10 @@ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_UNITDATA, msg); return 0; case NS_PDUT_STATUS: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_STATUS, tp); + if (target_nsvc) + osmo_fsm_inst_dispatch(target_nsvc->fi, GPRS_NS2_EV_RX_STATUS, tp); + else + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_STATUS, tp); break; default: LOGPFSML(fi, LOGL_ERROR, "NSEI=%u Rx unknown NS PDU type %s\n", nsvc->nse->nsei, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 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 Sep 23 11:41:04 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:41:04 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a BLOCK PDU which was received over a different NSVC References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25558 ) Change subject: ns2: correct parse a BLOCK PDU which was received over a different NSVC ...................................................................... ns2: correct parse a BLOCK PDU which was received over a different NSVC BLOCK PDU can be send over a different NSVC than the NSVC. E.g. informing a NSVC got blocked in case of a lower-layer failure. Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 33 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/25558/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 3395254..b528a06 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -118,6 +118,7 @@ GPRS_NS2_EV_REQ_OM_RESET, /* vty cmd: reset */ GPRS_NS2_EV_REQ_OM_BLOCK, /* vty cmd: block */ GPRS_NS2_EV_REQ_OM_UNBLOCK, /* vty cmd: unblock*/ + GPRS_NS2_EV_RX_BLOCK_FOREIGN, /* received a BLOCK over another NSVC */ }; static const struct value_string ns2_vc_event_names[] = { @@ -127,6 +128,7 @@ { GPRS_NS2_EV_RX_UNBLOCK, "RX-UNBLOCK" }, { GPRS_NS2_EV_RX_UNBLOCK_ACK, "RX-UNBLOCK_ACK" }, { GPRS_NS2_EV_RX_BLOCK, "RX-BLOCK" }, + { GPRS_NS2_EV_RX_BLOCK_FOREIGN, "RX-BLOCK_FOREIGN" }, { GPRS_NS2_EV_RX_BLOCK_ACK, "RX-BLOCK_ACK" }, { GPRS_NS2_EV_RX_ALIVE, "RX-ALIVE" }, { GPRS_NS2_EV_RX_ALIVE_ACK, "RX-ALIVE_ACK" }, @@ -368,8 +370,12 @@ osmo_timer_del(&fi->timer); break; case GPRS_NS2_EV_RX_BLOCK: + case GPRS_NS2_EV_RX_BLOCK_FOREIGN: priv->accept_unitdata = false; - ns2_tx_block_ack(priv->nsvc, NULL); + /* the BLOCK ACK for foreign BLOCK PDUs (rx over another nsvc) will be send + * from the receiving nsvc */ + if (event == GPRS_NS2_EV_RX_BLOCK) + ns2_tx_block_ack(priv->nsvc, NULL); osmo_timer_del(&fi->timer); break; case GPRS_NS2_EV_RX_UNBLOCK: @@ -380,6 +386,9 @@ } } else if (priv->initiate_block) { switch (event) { + case GPRS_NS2_EV_RX_BLOCK_FOREIGN: + /* the block ack will be send by the rx NSVC */ + break; case GPRS_NS2_EV_RX_BLOCK: /* TODO: BLOCK is a UNBLOCK_NACK */ ns2_tx_block_ack(priv->nsvc, NULL); @@ -396,6 +405,9 @@ } else { /* we are on the receiving end. The initiator who sent RESET is responsible to UNBLOCK! */ switch (event) { + case GPRS_NS2_EV_RX_BLOCK_FOREIGN: + /* the block ack will be send by the rx NSVC */ + break; case GPRS_NS2_EV_RX_BLOCK: ns2_tx_block_ack(priv->nsvc, NULL); break; @@ -438,10 +450,14 @@ case GPRS_NS2_EV_RX_UNBLOCK: ns2_tx_unblock_ack(priv->nsvc); break; + case GPRS_NS2_EV_RX_BLOCK_FOREIGN: case GPRS_NS2_EV_RX_BLOCK: priv->initiate_block = false; priv->accept_unitdata = false; - ns2_tx_block_ack(priv->nsvc, NULL); + /* the BLOCK ACK for foreign BLOCK PDUs (rx over another nsvc) will be send + * from the receiving nsvc */ + if (event == GPRS_NS2_EV_RX_BLOCK) + ns2_tx_block_ack(priv->nsvc, NULL); osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_BLOCKED, 0, 2); break; @@ -887,21 +903,26 @@ /* 48.016 ? 7.3.1 send RESET_ACK to wrong NSVCI + ignore */ if (nsh->pdu_type == NS_PDUT_RESET) { ns2_tx_reset_ack(nsvc); - } else if (nsh->pdu_type == NS_PDUT_STATUS) { - /* this is a PDU received over a NSVC and reports a status for another NSVC */ + } else if (nsh->pdu_type == NS_PDUT_BLOCK || nsh->pdu_type == NS_PDUT_STATUS) { + /* this is a PDU received over a NSVC and reports a status/block for another NSVC */ target_nsvc = gprs_ns2_nsvc_by_nsvci(nsvc->nse->nsi, nsvci); if (!target_nsvc) { LOGPFSML(fi, LOGL_ERROR, "Received a STATUS PDU for unknown NSVC (NSVCI %d)\n", nsvci); + if (nsh->pdu_type == NS_PDUT_BLOCK) { + /* send out status */ + } goto out; } if (target_nsvc->nse != nsvc->nse) { LOGPFSML(fi, LOGL_ERROR, "Received a STATUS PDU for a NSVC (NSVCI %d) but it belongs to a different NSE!\n", nsvci); - /* send out status */ + if (nsh->pdu_type == NS_PDUT_BLOCK) { + /* send out status */ + } goto out; } - /* the status will be passed to the nsvc/target nsvc in the switch */ + /* the status/block will be passed to the nsvc/target nsvc in the switch */ } else { LOG_NS_SIGNAL(nsvc, "Rx", nsh->pdu_type, LOGL_ERROR, " with wrong NSVCI=%05u. Ignoring PDU.\n", nsvci); goto out; @@ -917,7 +938,12 @@ osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_RESET_ACK, tp); break; case NS_PDUT_BLOCK: - osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK, tp); + if (target_nsvc) { + osmo_fsm_inst_dispatch(target_nsvc->fi, GPRS_NS2_EV_RX_BLOCK_FOREIGN, tp); + ns2_tx_block_ack(nsvc, &nsvci); + } else { + osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK, tp); + } break; case NS_PDUT_BLOCK_ACK: osmo_fsm_inst_dispatch(fi, GPRS_NS2_EV_RX_BLOCK_ACK, tp); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf Gerrit-Change-Number: 25558 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 Sep 23 11:41:04 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:41:04 +0000 Subject: Change in libosmocore[master]: ns2: trigger a reset in case of receiving a NS STATUS with incompatib... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25559 ) Change subject: ns2: trigger a reset in case of receiving a NS STATUS with incompatible protocol state ...................................................................... ns2: trigger a reset in case of receiving a NS STATUS with incompatible protocol state Change-Id: I912315f816bd0597d4646627dbfdd270fbae2509 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/25559/1 diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index b528a06..d8b9ca0 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -745,6 +745,12 @@ osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); } break; + case NS_CAUSE_PDU_INCOMP_PSTATE: + if (fi->state != GPRS_NS2_ST_RESET && fi->state != GPRS_NS2_ST_UNCONFIGURED) { + LOG_NS_SIGNAL(priv->nsvc, "Rx", NS_PDUT_STATUS, LOGL_ERROR, ": remote side reported incompatible protocol state.\n"); + osmo_fsm_inst_state_chg(fi, GPRS_NS2_ST_RESET, nsi->timeout[NS_TOUT_TNS_RESET], 0); + } + break; } break; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I912315f816bd0597d4646627dbfdd270fbae2509 Gerrit-Change-Number: 25559 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 Sep 23 11:42:21 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 11:42:21 +0000 Subject: Change in libosmocore[master]: ns2: trigger a reset in case of receiving a NS STATUS with incompatib... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25559 ) Change subject: ns2: trigger a reset in case of receiving a NS STATUS with incompatible protocol state ...................................................................... Patch Set 1: Code-Review-1 I'm uncertain about this commit. keeping it in WIP and gerrit for later. I'm unsure if we should trigger a reset here. Maybe parsing the PDU as far as possible to know if it's UNITDATA (to ignore) or not and to decide if a reset is correct. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I912315f816bd0597d4646627dbfdd270fbae2509 Gerrit-Change-Number: 25559 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 11:42: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 Sep 23 11:56:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 11:56:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn at 6023 PS1, Line 6023: nr := ts_TsTrxBtsNum(ts_nr := 7, trx_nr := ts, bts_nr := 0, blk_nr := 0); Doing this over 3 trx seems like an unrelated change, maybe put it into a separate commit? Otherwise LGTM. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 11:56:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 11:56:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:56:43 +0000 Subject: Change in libosmocore[master]: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of u... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25554 ) Change subject: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25554/1/src/gb/gprs_ns2_message.c File src/gb/gprs_ns2_message.c: https://gerrit.osmocom.org/c/libosmocore/+/25554/1/src/gb/gprs_ns2_message.c at 208 PS1, Line 208: * \param[in] cause Numeric NS Cause value missing update of doc. https://gerrit.osmocom.org/c/libosmocore/+/25554/1/src/gb/gprs_ns2_message.c at 245 PS1, Line 245: * \returns 0 in case of success */ missing update of doc. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 Gerrit-Change-Number: 25554 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11:56: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 Thu Sep 23 11:57:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:57:58 +0000 Subject: Change in libosmocore[master]: ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLO... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25555 ) Change subject: ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLOCKED cause codes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I560f1c8c2826befd03641bebffe156ac070061c2 Gerrit-Change-Number: 25555 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11:57: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 Sep 23 11:58:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 11:58:44 +0000 Subject: Change in libosmocore[master]: ns2: fsm: add comment don't answer on a STATUS with a STATUS In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25556 ) Change subject: ns2: fsm: add comment don't answer on a STATUS with a STATUS ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25556/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/25556/1//COMMIT_MSG at 7 PS1, Line 7: ns2: fsm: add comment don't answer on a STATUS with a STATUS what? https://gerrit.osmocom.org/c/libosmocore/+/25556/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25556/1/src/gb/gprs_ns2_vc_fsm.c at 864 PS1, Line 864: /* don't answer on a STATUS with a STATUS */ what? can you add more words there? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib8f700f9193a96a7bada3b0293dcecf6a05d6efc Gerrit-Change-Number: 25556 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 11:58: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 Thu Sep 23 12:01:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:01:24 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25557 ) Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/25557/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/25557/1//COMMIT_MSG at 9 PS1, Line 9: STATUS PDU can be send over a different NSVC than the NSVC. "than the target NSVC"? https://gerrit.osmocom.org/c/libosmocore/+/25557/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25557/1/src/gb/gprs_ns2_vc_fsm.c at 854 PS1, Line 854: struct gprs_ns2_vc *target_nsvc = NULL; what about setting target_nsvc = nsvc; here... https://gerrit.osmocom.org/c/libosmocore/+/25557/1/src/gb/gprs_ns2_vc_fsm.c at 942 PS1, Line 942: if (target_nsvc) .... and always use target_nsvc here. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:01:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:04:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:04:28 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25529 ) Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:04:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:04:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:04:50 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a BLOCK PDU which was received over a different NSVC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25558 ) Change subject: ns2: correct parse a BLOCK PDU which was received over a different NSVC ...................................................................... Patch Set 1: (6 comments) https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 375 PS1, Line 375: /* the BLOCK ACK for foreign BLOCK PDUs (rx over another nsvc) will be send You can probably move this above, immediatelly below "ase GPRS_NS2_EV_RX_BLOCK:" and fall through. https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 390 PS1, Line 390: /* the block ack will be send by the rx NSVC */ be sent https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 409 PS1, Line 409: /* the block ack will be send by the rx NSVC */ be sent https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 457 PS1, Line 457: /* the BLOCK ACK for foreign BLOCK PDUs (rx over another nsvc) will be send be sent https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 459 PS1, Line 459: if (event == GPRS_NS2_EV_RX_BLOCK) same, move above and fall through? https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 941 PS1, Line 941: if (target_nsvc) { and from my previous post, you can also use always target_nsvc here. Ideally you could use it for all messages I -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf Gerrit-Change-Number: 25558 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:04: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 Sep 23 12:06:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:06:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn at 6023 PS1, Line 6023: nr := ts_TsTrxBtsNum(ts_nr := 7, trx_nr := ts, bts_nr := 0, blk_nr := 0); > Doing this over 3 trx seems like an unrelated change, maybe put it into a separate commit? [?] It's doing it over 2 TRX liek before AFAIU?! -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:06:26 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:07:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:06 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25530 ) Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:07: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 Sep 23 12:07:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:08 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting p... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25531 ) Change subject: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae Gerrit-Change-Number: 25531 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:07:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:07:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:12 +0000 Subject: Change in osmo-bts[master]: abis: Call bts_model_abis_close() when Abis link goes down In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25532 ) Change subject: abis: Call bts_model_abis_close() when Abis link goes down ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 Gerrit-Change-Number: 25532 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12: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 Thu Sep 23 12:07:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:30 +0000 Subject: Change in osmo-bts[master]: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25529 ) Change subject: phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx ...................................................................... phy_link: Introduce bts_model_phy_link_close() and use it in bts-trx This step is required while turning off the BTS without killing the process. Right now only osmo-bts-trx supports this feature, so this function is only available and used by osmo-bts-trx. Later on, when the feature is support more generally, we can move call to this function to common place like bts_shutdown_fsm or alike. Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e --- M doc/manuals/chapters/architecture.adoc M include/osmo-bts/phy_link.h M src/osmo-bts-trx/trx_if.c M src/osmo-bts-trx/trx_provision_fsm.c 4 files changed, 22 insertions(+), 4 deletions(-) Approvals: fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/architecture.adoc b/doc/manuals/chapters/architecture.adoc index a0e66cd..30eab7a 100644 --- a/doc/manuals/chapters/architecture.adoc +++ b/doc/manuals/chapters/architecture.adoc @@ -88,6 +88,7 @@ | common | abis_open() | Start of the A-bis connection to BSC | common | phy_links_open() | Iterate over list of configured PHY links | bts-specific | bts_model_phy_link_open() | Open each of the configured PHY links +| bts-specific | bts_model_phy_link_close() | Close each of the configured PHY links | common | write_pid_file() | Generate the pid file | common | osmo_daemonize() | Fork as daemon in background (if configured) | common | bts_main() | Run main loop until global variable quit >= 2 diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 78fe6b9..ac38c28 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -174,6 +174,7 @@ } int bts_model_phy_link_open(struct phy_link *plink); +int bts_model_phy_link_close(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/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c index 1a92047..f0c8746 100644 --- a/src/osmo-bts-trx/trx_if.c +++ b/src/osmo-bts-trx/trx_if.c @@ -1341,6 +1341,23 @@ return -1; } +/*! close the PHY link using TRX protocol */ +int bts_model_phy_link_close(struct phy_link *plink) +{ + bool clock_stopped = false; + struct phy_instance *pinst; + llist_for_each_entry(pinst, &plink->instances, list) { + if (!clock_stopped) { + clock_stopped = true; + trx_sched_clock_stopped(pinst->trx->bts); + } + trx_phy_inst_close(pinst); + } + trx_udp_close(&plink->u.osmotrx.trx_ofd_clk); + phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + return 0; +} + /*! determine if the TRX for given handle is powered up */ int trx_if_powered(struct trx_l1h *l1h) { diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 6041073..7f42b47 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -592,14 +592,13 @@ case TRX_PROV_EV_POWEROFF_CNF: rc = (uint16_t)(intptr_t)data; if (plink->state != PHY_LINK_SHUTDOWN) { - trx_sched_clock_stopped(pinst->trx->bts); - phy_link_state_set(plink, PHY_LINK_SHUTDOWN); + bts_model_phy_link_close(plink); /* 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); } - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWEROFF); + trx_prov_fsm_state_chg(fi, TRX_PROV_ST_CLOSED); } break; default: @@ -661,7 +660,7 @@ .in_event_mask = X(TRX_PROV_EV_POWEROFF_CNF), .out_state_mask = - X(TRX_PROV_ST_OPEN_POWEROFF), + X(TRX_PROV_ST_CLOSED), .name = "OPEN_WAIT_POWEROFF_CNF", .action = st_open_wait_poweroff_cnf, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I3253112700a31b85db82dc7ccadec8542bac745e Gerrit-Change-Number: 25529 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:07:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:30 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25530 ) Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it Since recently we support shutting down phys when BTS goes into shutdown mode. Let's make sure they are opened again when we connect again to the BSC. Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 --- M src/common/nm_bts_fsm.c 1 file changed, 13 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index 54737bf..bad533f 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -65,10 +65,23 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; + struct gsm_bts_trx *trx; switch (event) { case NM_EV_SW_ACT: oml_mo_tx_sw_act_rep(&bts->mo); + + llist_for_each_entry(trx, &bts->trx_list, list) { + /* During startup, phy_links are already opened, but if we are + * re-connecting, phy_link was closed when disconnected from + * previous BSC, so let's re-open it. + */ + struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; + if (phy_link_state_get(plink) == PHY_LINK_SHUTDOWN) + bts_model_phy_link_open(plink); + } + nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_OFFLINE); return; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 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 Thu Sep 23 12:07:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:31 +0000 Subject: Change in osmo-bts[master]: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting p... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25531 ) Change subject: bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process ...................................................................... bts_shutdown_fsm: Allow configuring FSM to shutdown without exiting process This feature is not yet used by any bts_shutdown_fsm caller, but will be used in the future when Abis link goes down. Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae --- M include/osmo-bts/bts.h M src/common/bts_shutdown_fsm.c 2 files changed, 20 insertions(+), 5 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index d3cb6bf..a601423 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -368,6 +368,7 @@ } gsmtap; struct osmo_fsm_inst *shutdown_fi; /* FSM instance to manage shutdown procedure during process exit */ + bool shutdown_fi_exit_proc; /* exit process when shutdown_fsm is finished? */ struct osmo_fsm_inst *abis_link_fi; /* FSM instance to manage abis connection during process startup and link failure */ struct osmo_tdef *T_defs; /* Timer defines */ @@ -390,6 +391,7 @@ int bts_init(struct gsm_bts *bts); void bts_shutdown(struct gsm_bts *bts, const char *reason); +void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc); int bts_link_estab(struct gsm_bts *bts); diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index c16b76a..85d2d83 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -156,8 +156,11 @@ osmo_fsm_inst_dispatch(bts->site_mgr.mo.fi, NM_EV_SHUTDOWN_FINISH, NULL); - LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfuly, exiting process\n"); - exit(0); + if (bts->shutdown_fi_exit_proc) { + LOGPFSML(fi, LOGL_NOTICE, "Shutdown process completed successfully, exiting process\n"); + exit(0); + } + bts_shutdown_fsm_state_chg(fi, BTS_SHUTDOWN_ST_NONE); } static struct osmo_fsm_state bts_shutdown_fsm_states[] = { @@ -190,6 +193,8 @@ }, [BTS_SHUTDOWN_ST_EXIT] = { .name = "EXIT", + .out_state_mask = + X(BTS_SHUTDOWN_ST_NONE), .onenter = st_exit_on_enter, } }; @@ -232,18 +237,26 @@ OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0); } -void bts_shutdown(struct gsm_bts *bts, const char *reason) +void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc) { 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"); + if (exit_proc) + bts->shutdown_fi_exit_proc = true; return; } - - LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, reason: %s\n", reason); + bts->shutdown_fi_exit_proc = exit_proc; + LOGPFSML(fi, LOGL_NOTICE, "Shutting down BTS, exit %u, reason: %s\n", + exit_proc, reason); osmo_fsm_inst_dispatch(fi, BTS_SHUTDOWN_EV_START, NULL); } +void bts_shutdown(struct gsm_bts *bts, const char *reason) +{ + bts_shutdown_ext(bts, reason, true); +} + void bts_model_trx_close_cb(struct gsm_bts_trx *trx, int rc) { struct osmo_fsm_inst *fi = trx->bts->shutdown_fi; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5dc282fdbcf862067be326e72b6183dd544222ae Gerrit-Change-Number: 25531 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 Thu Sep 23 12:07:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:31 +0000 Subject: Change in osmo-bts[master]: abis: Call bts_model_abis_close() when Abis link goes down In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25532 ) Change subject: abis: Call bts_model_abis_close() when Abis link goes down ...................................................................... abis: Call bts_model_abis_close() when Abis link goes down This way based on BTS model features it can attempt to reconnect or simply exit the process. Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 --- M src/common/abis.c 1 file changed, 3 insertions(+), 7 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/common/abis.c b/src/common/abis.c index 8e713d2..1722f3d 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -215,12 +215,8 @@ trx->rsl_link = NULL; } } - - /* Note: if there was an OML or RSL connection present (the BTS was connected to a BSC). Then we will not try - * to connect to an alternate BSC. Instead we will shut down the BTS process. This will ensure that all states - * in the BTS (hardware and software) are reset properly. It is then up to the process management of the host - * to restart osmo-bts. */ - osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); + bts_model_abis_close(bts); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); } static void abis_link_failed_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) @@ -284,7 +280,7 @@ .in_event_mask = S(ABIS_LINK_EV_SIGN_LINK_DOWN), .out_state_mask = - S(ABIS_LINK_ST_FAILED), + S(ABIS_LINK_ST_WAIT_RECONNECT), .onenter = abis_link_connected_onenter, .action = abis_link_connected, }, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I42b43a0128bd4b579d9695e6dd2bccf6dc7e1d41 Gerrit-Change-Number: 25532 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 Thu Sep 23 12:07:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:07:32 +0000 Subject: Change in osmo-bts[master]: bts_trx: Drop non-executed path in trx_link_estab() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25542 ) Change subject: bts_trx: Drop non-executed path in trx_link_estab() ...................................................................... bts_trx: Drop non-executed path in trx_link_estab() This function is only called during sign_link_up() e1inp callback, hence only the link!=NULL condition (UP) is ever executed. Let's drop the DOWN path and make it a function only used to trigger events when link becomes up, similar to what bts_link_estab() does with OML. Here it becomes clear the NM_EV_RSL_DOWN was never sent. It's not much of an issue though since it would only make transition RCARRIER/BBTRANSC Enabled->DisabledOffline. However, since due to libosmo-abis limitation we receive a sign_link_down() for the entire line when 1 of its links goes down, we don't care much since we go for shutdown of the entire BTS anyway. Ideally, libosmo-abis would support simply telling us 1 of the links in the line went down and if it was not OML and not RSL TRX==C0, then we could keep on running and simply disable the related TRX. Change-Id: Iac553c68339c0da32fd313676995747eb4344087 --- M src/common/abis.c M src/common/bts_trx.c 2 files changed, 13 insertions(+), 14 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/abis.c b/src/common/abis.c index 1722f3d..1b489c1 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -214,6 +214,14 @@ e1inp_sign_link_destroy(trx->rsl_link); trx->rsl_link = NULL; } + /* Note: Here we could send NM_EV_RSL_DOWN to each + * trx->(bb_transc.)mo.fi, but we are starting shutdown of the + * entire BTS anyway through bts_model_abis_close(), so simply + * let bts_shutdown FSM take care of slowly powering down all + * the TRX. It would make sense to send NM_EV_RSL_DOWN only if a + * RSL link TRX!=C0 was going down, in order to selectively stop + * that TRX only. But libosmo-abis expects us to drop the entire + * line when something goes wrong... */ } bts_model_abis_close(bts); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c index a5d7ed3..ed742d5 100644 --- a/src/common/bts_trx.c +++ b/src/common/bts_trx.c @@ -206,25 +206,16 @@ /* RSL link is established, send status report */ int trx_link_estab(struct gsm_bts_trx *trx) { - struct e1inp_sign_link *link = trx->rsl_link; int rc; - LOGPTRX(trx, DSUM, LOGL_INFO, "RSL link %s\n", - link ? "up" : "down"); + LOGPTRX(trx, DSUM, LOGL_INFO, "RSL link up\n"); - osmo_fsm_inst_dispatch(trx->mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL); - osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, link ? NM_EV_RSL_UP : NM_EV_RSL_DOWN, NULL); + osmo_fsm_inst_dispatch(trx->mo.fi, NM_EV_RSL_UP, NULL); + osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_RSL_UP, NULL); - if (link) - rc = rsl_tx_rf_res(trx); - else - rc = bts_model_trx_deact_rf(trx); - if (rc < 0) { + if ((rc = rsl_tx_rf_res(trx)) < 0) oml_tx_failure_event_rep(&trx->bb_transc.mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_RSL_FAIL, - link ? - "Failed to establish RSL link (%d)" : - "Failed to deactivate RF (%d)", rc); - } + "Failed to establish RSL link (%d)", rc); return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iac553c68339c0da32fd313676995747eb4344087 Gerrit-Change-Number: 25542 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:08:30 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:08:30 +0000 Subject: Change in osmo-bts[master]: Avoid sending Load Indications when BTS is not RSL-connected In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25543 ) Change subject: Avoid sending Load Indications when BTS is not RSL-connected ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 Gerrit-Change-Number: 25543 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:08:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:15:04 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:15:04 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25547 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 Gerrit-Change-Number: 25547 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:15: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 Sep 23 12:20:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:20:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn File pcu/PCU_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537/1/pcu/PCU_Tests.ttcn at 6023 PS1, Line 6023: nr := ts_TsTrxBtsNum(ts_nr := 7, trx_nr := ts, bts_nr := 0, blk_nr := 0); > It's doing it over 2 TRX liek before AFAIU?! nvm, I meant two and got confused about the loop. But I see it now, makes sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:20:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:21:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:21:26 +0000 Subject: Change in osmo-bts[master]: Avoid sending Load Indications when BTS is not RSL-connected In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25543 ) Change subject: Avoid sending Load Indications when BTS is not RSL-connected ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 Gerrit-Change-Number: 25543 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:21: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 Sep 23 12:21:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:21:33 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25547 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 Gerrit-Change-Number: 25547 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:21:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:21:46 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:21:46 +0000 Subject: Change in osmo-ggsn[master]: cosmetic: configure.ac: Fix tabulation in line In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/25553 ) Change subject: cosmetic: configure.ac: Fix tabulation in line ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I5cfc90ace5f9cc9c3fe4dde7aeccbdf1909da007 Gerrit-Change-Number: 25553 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12: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 Thu Sep 23 12:22:13 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:22:13 +0000 Subject: Change in osmo-ggsn[master]: cosmetic: configure.ac: Fix tabulation in line In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/25553 ) Change subject: cosmetic: configure.ac: Fix tabulation in line ...................................................................... cosmetic: configure.ac: Fix tabulation in line Change-Id: I5cfc90ace5f9cc9c3fe4dde7aeccbdf1909da007 --- M configure.ac 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 479ae3b..2cf44fc 100644 --- a/configure.ac +++ b/configure.ac @@ -258,7 +258,7 @@ intl/Makefile po/Makefile sgsnemu/Makefile - doc/manuals/Makefile + doc/manuals/Makefile contrib/Makefile contrib/systemd/Makefile contrib/osmo-ggsn.spec -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: I5cfc90ace5f9cc9c3fe4dde7aeccbdf1909da007 Gerrit-Change-Number: 25553 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:26:58 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:26:58 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12:26: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 Sep 23 12:27:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:27:19 +0000 Subject: Change in osmo-bts[master]: Avoid sending Load Indications when BTS is not RSL-connected In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25543 ) Change subject: Avoid sending Load Indications when BTS is not RSL-connected ...................................................................... Avoid sending Load Indications when BTS is not RSL-connected Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 --- M include/osmo-bts/bts.h M src/common/abis.c M src/common/bts.c M src/common/bts_trx.c M src/common/load_indication.c M src/common/oml.c 6 files changed, 16 insertions(+), 2 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmo-bts/bts.h b/include/osmo-bts/bts.h index a601423..fab7f96 100644 --- a/include/osmo-bts/bts.h +++ b/include/osmo-bts/bts.h @@ -409,6 +409,8 @@ int lchan_init_lapdm(struct gsm_lchan *lchan); void load_timer_start(struct gsm_bts *bts); +void load_timer_stop(struct gsm_bts *bts); +bool load_timer_is_running(const struct gsm_bts *bts); void bts_update_status(enum bts_global_status which, int on); struct gsm_time *get_time(struct gsm_bts *bts); diff --git a/src/common/abis.c b/src/common/abis.c index 1b489c1..3451b2e 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -213,6 +213,8 @@ if (trx->rsl_link) { e1inp_sign_link_destroy(trx->rsl_link); trx->rsl_link = NULL; + if (trx == trx->bts->c0) + load_timer_stop(trx->bts); } /* Note: Here we could send NM_EV_RSL_DOWN to each * trx->(bb_transc.)mo.fi, but we are starting shutdown of the diff --git a/src/common/bts.c b/src/common/bts.c index 67e6736..191c331 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -345,7 +345,6 @@ /* configurable via OML */ bts->load.ccch.load_ind_period = 112; - load_timer_start(bts); bts->rtp_jitter_buf_ms = 100; bts->max_ta = 63; bts->ny1 = 4; diff --git a/src/common/bts_trx.c b/src/common/bts_trx.c index ed742d5..127e797 100644 --- a/src/common/bts_trx.c +++ b/src/common/bts_trx.c @@ -217,6 +217,9 @@ oml_tx_failure_event_rep(&trx->bb_transc.mo, NM_SEVER_MAJOR, OSMO_EVT_MAJ_RSL_FAIL, "Failed to establish RSL link (%d)", rc); + if (trx == trx->bts->c0) + load_timer_start(trx->bts); + return 0; } diff --git a/src/common/load_indication.c b/src/common/load_indication.c index c9b2645..69af9c6 100644 --- a/src/common/load_indication.c +++ b/src/common/load_indication.c @@ -94,3 +94,8 @@ { osmo_timer_del(&bts->load.ccch.timer); } + +bool load_timer_is_running(const struct gsm_bts *bts) +{ + return osmo_timer_pending(&bts->load.ccch.timer); +} diff --git a/src/common/oml.c b/src/common/oml.c index d2cf877..f841853 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -670,7 +670,10 @@ /* 9.4.11 CCCH Load Indication Period */ if (TLVP_PRES_LEN(&tp, NM_ATT_CCCH_L_I_P, 1)) { bts->load.ccch.load_ind_period = *TLVP_VAL(&tp, NM_ATT_CCCH_L_I_P); - load_timer_start(bts); + if (load_timer_is_running(bts)) { + load_timer_stop(bts); + load_timer_start(bts); + } } /* 9.4.44 RACH Busy Threshold */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I97e8dd7dd58ee2ec90c3a38d45dfd944db44c412 Gerrit-Change-Number: 25543 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:27:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:27:20 +0000 Subject: Change in osmo-bts[master]: abis: Fix memory leak of bts->osmo_link upon link going down In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25544 ) Change subject: abis: Fix memory leak of bts->osmo_link upon link going down ...................................................................... abis: Fix memory leak of bts->osmo_link upon link going down Commit below (see "Fixes" section) wrongly erased the code re-introduced in this commit, due to not spotting different between "oml_link" and "osmo_link". This commit is hence a revert of such commit, updated to current code. Fixes: c2ba34d9c13d309926c760943a9531fd3b236189 Change-Id: Id436116e5cd0bec024b2f9943fbff8d0bdc956ac --- M src/common/abis.c 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/src/common/abis.c b/src/common/abis.c index 3451b2e..93635c2 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -102,6 +102,13 @@ bts->oml_link = NULL; } memset(&bts->oml_conn_established_timestamp, 0, sizeof(bts->oml_conn_established_timestamp)); + + /* Same for IPAC_PROTO_OSMO on the same ipa connection: */ + if (bts->osmo_link) { + e1inp_sign_link_destroy(bts->osmo_link); + bts->osmo_link = NULL; + } + } static int pick_next_bsc(struct osmo_fsm_inst *fi) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id436116e5cd0bec024b2f9943fbff8d0bdc956ac Gerrit-Change-Number: 25544 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:27:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:27:21 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25547 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... abis: Fix line leaked & recreated upon every reconnect Previous code creating a new line was really a workaroudn to have it working while previous lines were being stacked internally inside libosmo-abis. Let's handle reference counts for the line properly and erase + re-create it every time. Recent patches to libosmo-abis fixed a crash happening when refcount being 0 and destroying the object (object was not removed from a global llist). Depends: libosmo-abis Change-Id I1314d6b917ecb622994507475eb894e649a1a2ad Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 12 insertions(+), 12 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index 40707cd..d5cf634 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -8,7 +8,7 @@ enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_OML_UP, - ABIS_LINK_EV_SIGN_LINK_DOWN, + ABIS_LINK_EV_SIGN_LINK_DOWN, /* data: struct e1inp_line* of link going down */ ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ }; diff --git a/src/common/abis.c b/src/common/abis.c index 93635c2..b734576 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,7 +81,6 @@ struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; - int line_ctr; }; static void reset_oml_link(struct gsm_bts *bts) @@ -156,15 +155,7 @@ bts_dev_info.unit_name = bts->description; bts_dev_info.location2 = priv->model_name; - line = e1inp_line_find(priv->line_ctr); - if (line) { - e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ - } else - line = e1inp_line_create(priv->line_ctr, "ipa"); /* already comes with a reference */ - - /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next - * attempt must happen on a different line. */ - priv->line_ctr++; + line = e1inp_line_create(0, "ipa"); /* already comes with a reference "ctor" */ if (!line) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); @@ -186,13 +177,17 @@ { struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; + struct e1inp_line *line; switch (event) { case ABIS_LINK_EV_SIGN_LINK_OML_UP: osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); break; case ABIS_LINK_EV_SIGN_LINK_DOWN: + line = (struct e1inp_line *)data; reset_oml_link(bts); + /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ + e1inp_line_put2(line, "ctor"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); break; default: @@ -210,6 +205,7 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; struct gsm_bts_trx *trx; + struct e1inp_line *line = (struct e1inp_line *)data; OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); /* First remove the OML signalling link */ @@ -232,6 +228,10 @@ * that TRX only. But libosmo-abis expects us to drop the entire * line when something goes wrong... */ } + + /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ + e1inp_line_put2(line, "ctor"); + bts_model_abis_close(bts); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); } @@ -395,7 +395,7 @@ static void sign_link_down(struct e1inp_line *line) { LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n"); - osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, NULL); + osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, line); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic37ae5bf657247e8cce99182c40d9adf890a5e41 Gerrit-Change-Number: 25547 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:27:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:27:23 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 12:27: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 Thu Sep 23 12:28:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 12:28:23 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 7: This patch is the one really activating osmo-bts-trx to keep running when Abis link falls down. I wonder whether we want to add some VTY command or command line argument to change the behavior here. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 12:28: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 Thu Sep 23 12:32:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:32:14 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:32: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 Sep 23 12:33:32 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:33:32 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:33:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:44:48 +0000 Subject: Change in pysim[master]: card_handler: make reader (sl) operations optional. In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25548 ) Change subject: card_handler: make reader (sl) operations optional. ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25548/1/pySim/card_handler.py File pySim/card_handler.py: https://gerrit.osmocom.org/c/pysim/+/25548/1/pySim/card_handler.py at 38 PS1, Line 38: print("Ready for Programming: Insert card now (or CTRL-C to cancel)") Does it make sense to print this message, when sl is not set? It looks like it makes more sense to move it into the "if self.sl". I'm not sure how this will be used without the sl, but maybe it also makes sense to add "else" and print a message that this got skipped? Same below for CardHandlerAuto. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Gerrit-Change-Number: 25548 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:44:48 +0000 Gerrit-HasComments: 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 Sep 23 12:47:09 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:47:09 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... Patch Set 6: (4 comments) https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 66 PS2, Line 66: print("No card detected!") > A more Python'ish way would be to raise exceptions from this function, so you always get nice backtr [?] (still unresolved) https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 71 PS2, Line 71: print("Could not detect card type!") > Same here, rather throw an exception. (still unresolved) https://gerrit.osmocom.org/c/pysim/+/25484/6/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/6/pySim-shell.py at 69 PS6, Line 69: readble readable https://gerrit.osmocom.org/c/pysim/+/25484/6/pySim-shell.py at 529 PS6, Line 529: == is -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:47:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:54:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:54:14 +0000 Subject: Change in pysim[master]: card_handler: make reader (sl) operations optional. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25548 ) Change subject: card_handler: make reader (sl) operations optional. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Gerrit-Change-Number: 25548 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:54:14 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:54:30 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:54:30 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 12: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 Thu Sep 23 12:54:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:54:45 +0000 Subject: Change in pysim[master]: transport/init: print exception type if the execption has no string In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25538 ) Change subject: transport/init: print exception type if the execption has no string ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e6b3acd17e40934050b9b088960a2f851120b26 Gerrit-Change-Number: 25538 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12: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 Sep 23 12:55:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:55:04 +0000 Subject: Change in pysim[master]: transport/pcsc: make sure reader is disconnected In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25539 ) Change subject: transport/pcsc: make sure reader is disconnected ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I266e56f2330da25c680a76f4c0ca630a38e1f61b Gerrit-Change-Number: 25539 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:55:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:55:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:55:07 +0000 Subject: Change in pysim[master]: pySim-shell: allow card insertion at runtime In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25549 ) Change subject: pySim-shell: allow card insertion at runtime ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/pysim/+/25549/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25549/2/pySim-shell.py at 96 PS2, Line 96: basic_commands = [] this variable can be removed https://gerrit.osmocom.org/c/pysim/+/25549/2/pySim-shell.py at 106 PS2, Line 106: self.add_settable(cmd2.Settable('numeric_path', bool, 'Print File IDs instead of names', looks like unrelated moving around of variables, -> extra commit? https://gerrit.osmocom.org/c/pysim/+/25549/2/pySim-shell.py at 587 PS2, Line 587: execption exception -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9cf532d9da8203065463c7201e7064de6c7ab1b5 Gerrit-Change-Number: 25549 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:55: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 Sep 23 12:55:14 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:55:14 +0000 Subject: Change in pysim[master]: pySim-prog: rename card_handler option to card_handler_config In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/25508 ) Change subject: pySim-prog: rename card_handler option to card_handler_config ...................................................................... pySim-prog: rename card_handler option to card_handler_config The option and also the dest variable in the code are currently named card_handler. This might be confusing since the variable actually refers to a config file and therefore should be called "card_handler_config" Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd --- M pySim-prog.py 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim-prog.py b/pySim-prog.py index 3b69bb3..a3235b4 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -200,7 +200,7 @@ parser.add_option("--dry-run", dest="dry_run", help="Perform a 'dry run', don't actually program the card", default=False, action="store_true") - parser.add_option("--card_handler", dest="card_handler", metavar="FILE", + parser.add_option("--card_handler", dest="card_handler_config", metavar="FILE", help="Use automatic card handling machine") (options, args) = parser.parse_args() @@ -740,8 +740,8 @@ # Batch mode init init_batch(opts) - if opts.card_handler: - ch = CardHandlerAuto(sl, opts.card_handler) + if opts.card_handler_config: + ch = CardHandlerAuto(sl, opts.card_handler_config) else: ch = CardHandler(sl) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: If93751e815cb46f9ff3f56b54e612d77fe1a6dfd Gerrit-Change-Number: 25508 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:55:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:55:15 +0000 Subject: Change in pysim[master]: transport/init: print exception type if the execption has no string In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/25538 ) Change subject: transport/init: print exception type if the execption has no string ...................................................................... transport/init: print exception type if the execption has no string There may be corner cases where an execption contains no error message. In this case it might still be helpful to display the type of the exeption calss to get at least an idea of what kind of error we are dealing with. Change-Id: I6e6b3acd17e40934050b9b088960a2f851120b26 --- M pySim/transport/__init__.py 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index dae2a78..72a80a9 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -234,5 +234,8 @@ sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate, **kwargs) return sl except Exception as e: - print("Card reader initialization failed with exception:\n" + str(e)) + if str(e): + print("Card reader initialization failed with exception:\n" + str(e)) + else: + print("Card reader initialization failed with an exception of type:\n" + str(type(e))) return None -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I6e6b3acd17e40934050b9b088960a2f851120b26 Gerrit-Change-Number: 25538 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:55:15 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:55:15 +0000 Subject: Change in pysim[master]: transport/pcsc: make sure reader is disconnected In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/pysim/+/25539 ) Change subject: transport/pcsc: make sure reader is disconnected ...................................................................... transport/pcsc: make sure reader is disconnected Make sure that a reader is disconnected before connecting it. This will efectively prevent resource leakage in the lower PCSC layers when the reader is connected multiple times during bulk provisioning Change-Id: I266e56f2330da25c680a76f4c0ca630a38e1f61b --- M pySim/transport/pcsc.py 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index c16abac..147a6b7 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -56,6 +56,10 @@ def connect(self): try: + # To avoid leakage of resources, make sure the reader + # is disconnected + self.disconnect() + # Explicitly select T=0 communication protocol self._con.connect(CardConnection.T0_protocol) except CardConnectionException: -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I266e56f2330da25c680a76f4c0ca630a38e1f61b Gerrit-Change-Number: 25539 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:56:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:56:42 +0000 Subject: Change in pysim[master]: pySim-shell: verify_adm: turn error messages into exceptions In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25550 ) Change subject: pySim-shell: verify_adm: turn error messages into exceptions ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25550/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25550/2/pySim-shell.py at 401 PS2, Line 401: error: maybe omit the "error: " here, since it's implied by raising ValueError? It would make it consistent with the above ValueError -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4162b43754efd061b6b9058b7ff8e1fc985e3538 Gerrit-Change-Number: 25550 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:56:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:56:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:56:49 +0000 Subject: Change in pysim[master]: pySim-shell: verify_adm: turn error messages into exceptions In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25550 ) Change subject: pySim-shell: verify_adm: turn error messages into exceptions ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4162b43754efd061b6b9058b7ff8e1fc985e3538 Gerrit-Change-Number: 25550 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12: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 Thu Sep 23 12:56:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:56:59 +0000 Subject: Change in pysim[master]: pySim-shell: add echo command In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25551 ) Change subject: pySim-shell: add echo command ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iaed1d24eeb7f887e46957971083cd30d8d1bea6c Gerrit-Change-Number: 25551 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 23 Sep 2021 12:56:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:57:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 12:57:17 +0000 Subject: Change in pysim[master]: pySim-shell: add echo command In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25551 ) Change subject: pySim-shell: add echo command ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Iaed1d24eeb7f887e46957971083cd30d8d1bea6c Gerrit-Change-Number: 25551 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 12:57: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 Sep 23 12:58:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:58:27 +0000 Subject: Change in osmo-ccid-firmware[master]: config: adjust dfll48m (usb) to match the docs In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25487 ) Change subject: config: adjust dfll48m (usb) to match the docs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I5d573859517eab6febda0bac836c4461c0f21bf0 Gerrit-Change-Number: 25487 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 23 Sep 2021 12:58:27 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 12:58:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 12:58:29 +0000 Subject: Change in osmo-ccid-firmware[master]: config: adjust dfll48m (usb) to match the docs In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25487 ) Change subject: config: adjust dfll48m (usb) to match the docs ...................................................................... config: adjust dfll48m (usb) to match the docs hal/documentation/usb_device_async.rst has a few things to say about the SOF clock recovery mode currently used for usb, so honor those settings. Additionally Footnote 1 in chapter 54.14 of the SAM D5x/E5x Family Data Sheet restricts the fine step value. Change-Id: I5d573859517eab6febda0bac836c4461c0f21bf0 --- M sysmoOCTSIM/config/hpl_oscctrl_config.h 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 17bcfc2..a7bc9b9 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -296,7 +296,7 @@ // Indicates whether Bypass Coarse Lock is enabled or not // dfll_arch_bplckc #ifndef CONF_DFLL_BPLCKC -#define CONF_DFLL_BPLCKC 0 +#define CONF_DFLL_BPLCKC 1 #endif // Quick Lock Disable @@ -324,7 +324,7 @@ // Indicates whether Stable DFLL Frequency is enabled or not // dfll_arch_stable #ifndef CONF_DFLL_STABLE -#define CONF_DFLL_STABLE 0 +#define CONF_DFLL_STABLE 1 #endif // Operating Mode Selection @@ -344,7 +344,7 @@ // Fine Maximum Step <0x0-0xFF> // dfll_arch_fstep #ifndef CONF_DFLL_FSTEP -#define CONF_DFLL_FSTEP 0x1 +#define CONF_DFLL_FSTEP 0xA #endif // DFLL Multiply Factor <0x0-0xFFFF> -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I5d573859517eab6febda0bac836c4461c0f21bf0 Gerrit-Change-Number: 25487 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:02:55 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:02:55 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 3: > Patch Set 3: > > > Patch Set 3: > > > > I think those fields are mostly aimed at internal use by stats reporter, and I don't think anyone should be using those directly out of libosmocore. > > well, "think" and "should" is the problem: it is public API and this patch breaks it. > > This is a case of deciding to break an axiomatic principle because we're pretty sure to get away with it. > It really seems ok to do it, but it's objectively wrong from the underlying libosmo* release principles. > I'd like to have Harald's opinion on that. I fully agree with neels' analysis - but indeed for pragmatic reasons I think we can get away with it. We are not aware of any other substantial libosmocore users out there, and even if there are, it is hightly unlikely that they are using stuff that even we did never really use the way it was intended (the fifo history for stat_items). So yes, it's against our general API comptibility rules, but without even knowing a single example of code that would break it's hard to justify the extra complexity that goes along with maintaining both and old and a new API. So I don't have a general problem with the approach the patch takes, obviously just as long as old osmo-* still builds against libosmocore master. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:02:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:03:12 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:03:12 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 13: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 Sep 23 13:03:46 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:03:46 +0000 Subject: Change in libosmocore[master]: ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLO... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25555 ) Change subject: ns2: ensure the NSVC is in the correct mode for NSVC UNKNOWN/NSVC BLOCKED cause codes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I560f1c8c2826befd03641bebffe156ac070061c2 Gerrit-Change-Number: 25555 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:03:46 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:04:56 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:04:56 +0000 Subject: Change in libosmocore[master]: ns2: fsm: add comment don't answer on a STATUS with a STATUS In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25556 ) Change subject: ns2: fsm: add comment don't answer on a STATUS with a STATUS ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25556/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25556/1/src/gb/gprs_ns2_vc_fsm.c at 864 PS1, Line 864: /* don't answer on a STATUS with a STATUS */ > what? can you add more words there? I would guess it's obvious: If receiving an error mesage (status) will generate that same error message (status), the peer will in turn generate another one and you will have an endless flood of packets ping-poinging between both implementations. That's why any protocol spec I've seen usually strictly forbids such behavior. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ib8f700f9193a96a7bada3b0293dcecf6a05d6efc Gerrit-Change-Number: 25556 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:04:56 +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 Sep 23 13:05:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:05:18 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25557 ) Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:05:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:06:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:06:24 +0000 Subject: Change in libosmocore[master]: vty: add vty_out_uptime() print the uptime to the vty In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25348 ) Change subject: vty: add vty_out_uptime() print the uptime to the vty ...................................................................... vty: add vty_out_uptime() print the uptime to the vty vty_out_uptime() calculates the time difference to a given timespec and print it in a human readable format (days, hours, minutes, seconds) to the vty. Related: OS#5028 Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 --- M include/osmocom/vty/vty.h M src/vty/command.c M src/vty/vty.c 3 files changed, 25 insertions(+), 12 deletions(-) Approvals: pespin: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index c13f435..ed9f439 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -219,6 +220,7 @@ int vty_out (struct vty *, const char *, ...) VTY_PRINTF_ATTRIBUTE(2, 3); int vty_out_va(struct vty *vty, const char *format, va_list ap); int vty_out_newline(struct vty *); +int vty_out_uptime(struct vty *vty, const struct timespec *starttime); int vty_read(struct vty *vty); //void vty_time_print (struct vty *, int); void vty_close (struct vty *); diff --git a/src/vty/command.c b/src/vty/command.c index bb6a665..e5e7d15 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -3066,18 +3066,9 @@ DEFUN(show_uptime, show_uptime_cmd, "show uptime", SHOW_STR "Displays how long the program has been running\n") { - struct timespec now; - struct timespec uptime; - - osmo_clock_gettime(CLOCK_MONOTONIC, &now); - timespecsub(&now, &starttime, &uptime); - - int d = uptime.tv_sec / (3600 * 24); - int h = uptime.tv_sec / 3600 % 24; - int m = uptime.tv_sec / 60 % 60; - int s = uptime.tv_sec % 60; - - vty_out(vty, "%s has been running for %dd %dh %dm %ds%s", host.app_info->name, d, h, m, s, VTY_NEWLINE); + vty_out(vty, "%s has been running for ", host.app_info->name); + vty_out_uptime(vty, &starttime); + vty_out_newline(vty); return CMD_SUCCESS; } diff --git a/src/vty/vty.c b/src/vty/vty.c index 1ad84f5..3a549b4 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -66,6 +66,7 @@ #include #include #include +#include #include #ifndef MAXPATHLEN @@ -338,6 +339,25 @@ return 0; } +/*! calculates the time difference of a give timespec to the current time + * and prints in a human readable format (days, hours, minutes, seconds). + */ +int vty_out_uptime(struct vty *vty, const struct timespec *starttime) +{ + struct timespec now; + struct timespec uptime; + + osmo_clock_gettime(CLOCK_MONOTONIC, &now); + timespecsub(&now, starttime, &uptime); + + int d = uptime.tv_sec / (3600 * 24); + int h = uptime.tv_sec / 3600 % 24; + int m = uptime.tv_sec / 60 % 60; + int s = uptime.tv_sec % 60; + + return vty_out(vty, "%dd %dh %dm %ds", d, h, m, s); +} + /*! return the current index of a given VTY */ void *vty_current_index(struct vty *vty) { -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25348 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I264a3f49096b96646e0a1f5366623ac20d860793 Gerrit-Change-Number: 25348 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:06:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:06:24 +0000 Subject: Change in libosmocore[master]: ns2: nse: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25349 ) Change subject: ns2: nse: add a uptime/downtime to track the last state change ...................................................................... ns2: nse: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nse add a timestamp and show it on the vty > show ns nse 1234 NSEI 01234: UDP, ALIVE since 0d 0h 0m 16s FSM Instance Name: 'GPRS-NS2-SNS-SGSN(NSE01234-SNS)[0x6120000012a0]', ID: 'NSE01234-SNS' Log-Level: 'DEBUG', State: 'CONFIGURED' Timer: 4 Maximum number of remote NS-VCs: 8, IPv4 Endpoints: 2, IPv6 Endpoints: 0 [...] Related: OS#5028 Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 4 files changed, 12 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 6c48ca6..c00537d 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -838,6 +838,7 @@ nse->mtu = 0; llist_add_tail(&nse->list, &nsi->nse); INIT_LLIST_HEAD(&nse->nsvc); + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); return nse; } @@ -1400,6 +1401,7 @@ /* wait until both data_weight and sig_weight are != 0 before declaring NSE as alive */ if (unblocked && nse->sum_data_weight && nse->sum_sig_weight) { nse->alive = true; + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_RECOVERY); nse->first = false; return; @@ -1408,6 +1410,7 @@ if (nse->alive && (nse->sum_data_weight == 0 || nse->sum_sig_weight == 0)) { /* nse became unavailable */ nse->alive = false; + osmo_clock_gettime(CLOCK_MONOTONIC, &nse->ts_alive_change); ns2_prim_status_ind(nse, NULL, 0, GPRS_NS2_AFF_CAUSE_FAILURE); } } diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index afe6b69..cd9969c 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -220,6 +220,9 @@ /*! recursive anchor */ bool freed; + + /*! when the NSE became alive or dead */ + struct timespec ts_alive_change; }; /*! Structure representing a single NS-VC */ diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 52ce207..86471b8 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1900,8 +1900,10 @@ if (persistent_only && !nse->persistent) return; - vty_out(vty, "NSEI %05u: %s, %s%s", nse->nsei, gprs_ns2_lltype_str(nse->ll), - nse->alive ? "ALIVE" : "DEAD", VTY_NEWLINE); + vty_out(vty, "NSEI %05u: %s, %s since ", nse->nsei, gprs_ns2_lltype_str(nse->ll), + nse->alive ? "ALIVE" : "DEAD"); + vty_out_uptime(vty, &nse->ts_alive_change); + vty_out_newline(vty); ns2_sns_dump_vty(vty, " ", nse, stats); llist_for_each_entry(nsvc, &nse->nsvc, list) { diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty index 62fff66..35bee1e 100644 --- a/tests/gb/gprs_ns2_vty.vty +++ b/tests/gb/gprs_ns2_vty.vty @@ -38,7 +38,7 @@ OsmoNSdummy(config-ns-nse)# nsvc udp abc 127.0.0.15 9496 OsmoNSdummy(config-ns-nse)# end OsmoNSdummy# show ns -NSEI 01234: UDP, DEAD +NSEI 01234: UDP, DEAD since 0d 0h 0m 0s 1 NS-VC: RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 UDP bind: 127.0.0.14:42999 DSCP: 0 Priority: 0 @@ -52,7 +52,7 @@ OsmoNSdummy(config-ns-nse)# nsvc udp abc 127.0.0.17 9496 signalling-weight 0 data-weight 0 OsmoNSdummy(config-ns-nse)# end OsmoNSdummy# show ns -NSEI 01234: UDP, DEAD +NSEI 01234: UDP, DEAD since 0d 0h 0m 0s 3 NS-VC: RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 RECOVERING PERSIST sig_weight=0 data_weight=9 udp)[127.0.0.14]:42999<>[127.0.0.16]:9496 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25349 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8143080a3c5c9a55d37dfad44ba2ac6561daa216 Gerrit-Change-Number: 25349 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:06:25 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:06:25 +0000 Subject: Change in libosmocore[master]: ns2: nsvc: add a uptime/downtime to track the last state change In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25350 ) Change subject: ns2: nsvc: add a uptime/downtime to track the last state change ...................................................................... ns2: nsvc: add a uptime/downtime to track the last state change To show adminstrator the last state change of a nsvc add a timestamp and show it on the vty > show ns nsei 1234 NSEI 01234: UDP, DEAD since 0d 0h 1m 42s [...] 4 NS-VC: UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22000<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22000<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=2 data_weight=2 udp)[127.0.0.1]:22001<>[127.0.0.1]:23000 ALIVE since 0d 0h 0m 1s UNBLOCKED DYNAMIC sig_weight=1 data_weight=1 udp)[127.0.0.1]:22001<>[127.0.0.1]:23001 ALIVE since 0d 0h 0m 1s Related: OS#5028 Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_vc_fsm.c M src/gb/gprs_ns2_vty.c M tests/gb/gprs_ns2_vty.vty 5 files changed, 24 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index c00537d..6bccf65 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -621,6 +621,7 @@ llist_add_tail(&nsvc->list, &nse->nsvc); llist_add_tail(&nsvc->blist, &bind->nsvc); + osmo_clock_gettime(CLOCK_MONOTONIC, &nsvc->ts_alive_change); ns2_nse_update_mtu(nse); return nsvc; diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index cd9969c..bfb12d9 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -270,6 +270,9 @@ /*! recursive anchor */ bool freed; + + /*! when the NSVC became alive or dead */ + struct timespec ts_alive_change; }; /*! Structure repesenting a bind instance. E.g. IPv4 listen port. */ diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index 03a355b..fa8cec2 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -414,8 +414,10 @@ struct gprs_ns2_vc *nsvc = priv->nsvc; struct gprs_ns2_nse *nse = nsvc->nse; - if (old_state != GPRS_NS2_ST_UNBLOCKED) + if (old_state != GPRS_NS2_ST_UNBLOCKED) { RATE_CTR_INC_NS(nsvc, NS_CTR_UNBLOCKED); + osmo_clock_gettime(CLOCK_MONOTONIC, &nsvc->ts_alive_change); + } priv->accept_unitdata = true; ns2_nse_notify_unblocked(nsvc, true); diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index 86471b8..41f581e 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -1875,16 +1875,21 @@ void ns2_vty_dump_nsvc(struct vty *vty, struct gprs_ns2_vc *nsvc, bool stats) { if (nsvc->nsvci_is_valid) - vty_out(vty, " NSVCI %05u: %s %s %s%s", nsvc->nsvci, + vty_out(vty, " NSVCI %05u: %s %s %s %s since ", nsvc->nsvci, osmo_fsm_inst_state_name(nsvc->fi), nsvc->persistent ? "PERSIST" : "DYNAMIC", - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + gprs_ns2_ll_str(nsvc), + ns2_vc_is_unblocked(nsvc) ? "ALIVE" : "DEAD"); else - vty_out(vty, " %s %s sig_weight=%u data_weight=%u %s%s", + vty_out(vty, " %s %s sig_weight=%u data_weight=%u %s %s since ", osmo_fsm_inst_state_name(nsvc->fi), nsvc->persistent ? "PERSIST" : "DYNAMIC", nsvc->sig_weight, nsvc->data_weight, - gprs_ns2_ll_str(nsvc), VTY_NEWLINE); + gprs_ns2_ll_str(nsvc), + ns2_vc_is_unblocked(nsvc) ? "ALIVE" : "DEAD"); + + vty_out_uptime(vty, &nsvc->ts_alive_change); + vty_out_newline(vty); if (stats) { vty_out_rate_ctr_group(vty, " ", nsvc->ctrg); diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty index 35bee1e..4be10d5 100644 --- a/tests/gb/gprs_ns2_vty.vty +++ b/tests/gb/gprs_ns2_vty.vty @@ -40,11 +40,11 @@ OsmoNSdummy# show ns NSEI 01234: UDP, DEAD since 0d 0h 0m 0s 1 NS-VC: - RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 + RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 DEAD since 0d 0h 0m 0s UDP bind: 127.0.0.14:42999 DSCP: 0 Priority: 0 IP-SNS signalling weight: 1 data weight: 1 1 NS-VC: - RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 + RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 DEAD since 0d 0h 0m 0s OsmoNSdummy# configure terminal OsmoNSdummy(config)# ns OsmoNSdummy(config-ns)# nse 1234 @@ -54,15 +54,15 @@ OsmoNSdummy# show ns NSEI 01234: UDP, DEAD since 0d 0h 0m 0s 3 NS-VC: - RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 - RECOVERING PERSIST sig_weight=0 data_weight=9 udp)[127.0.0.14]:42999<>[127.0.0.16]:9496 - RECOVERING PERSIST sig_weight=0 data_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.17]:9496 + RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 DEAD since 0d 0h 0m 0s + RECOVERING PERSIST sig_weight=0 data_weight=9 udp)[127.0.0.14]:42999<>[127.0.0.16]:9496 DEAD since 0d 0h 0m 0s + RECOVERING PERSIST sig_weight=0 data_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.17]:9496 DEAD since 0d 0h 0m 0s UDP bind: 127.0.0.14:42999 DSCP: 0 Priority: 0 IP-SNS signalling weight: 1 data weight: 1 3 NS-VC: - RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 - RECOVERING PERSIST sig_weight=0 data_weight=9 udp)[127.0.0.14]:42999<>[127.0.0.16]:9496 - RECOVERING PERSIST sig_weight=0 data_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.17]:9496 + RECOVERING PERSIST sig_weight=1 data_weight=1 udp)[127.0.0.14]:42999<>[127.0.0.15]:9496 DEAD since 0d 0h 0m 0s + RECOVERING PERSIST sig_weight=0 data_weight=9 udp)[127.0.0.14]:42999<>[127.0.0.16]:9496 DEAD since 0d 0h 0m 0s + RECOVERING PERSIST sig_weight=0 data_weight=0 udp)[127.0.0.14]:42999<>[127.0.0.17]:9496 DEAD since 0d 0h 0m 0s OsmoNSdummy# configure terminal OsmoNSdummy(config)# ns OsmoNSdummy(config-ns)# nse 1234 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25350 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ie3a039a209869295afa5feda39297cee81fedf22 Gerrit-Change-Number: 25350 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:06:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 23 Sep 2021 13:06:47 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 13: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 Sep 23 13:07:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 23 Sep 2021 13:07:42 +0000 Subject: Change in pysim[master]: pySim-shell: add bulk provisioning support In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25552 ) Change subject: pySim-shell: add bulk provisioning support ...................................................................... Patch Set 2: (7 comments) https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 241 PS2, Line 241: Eearly Early https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 247 PS2, Line 247: execption exception https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 275 PS2, Line 275: if "EXCEPTION of type" not in logged.stderr: Can't you use the usual try ... except logic instead? https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 282 PS2, Line 282: exeption exception https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 306 PS2, Line 306: TODO: this is implemented below, not a TODO anymore https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 352 PS2, Line 352: execption exception https://gerrit.osmocom.org/c/pysim/+/25552/2/pySim-shell.py at 360 PS2, Line 360: execption exception -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I9e4926675c5a497a22fc6a4fefdd388fe18a2b2d Gerrit-Change-Number: 25552 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 13:07:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:46:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 13:46:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case TC_tx_blocked_foreign_nsvc References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25560 ) Change subject: ns: add test case TC_tx_blocked_foreign_nsvc ...................................................................... ns: add test case TC_tx_blocked_foreign_nsvc Check if a BLOCK PDU over a different/foreign connection is parsed. * 2x initialize NSVC (RESET/UNBLOCK) * TTCN 0-> NS: block (nsvci 1) * TTCN <-0 NS: block ack (nsvci 1) * TTCN 1-> NS: unit data (nsvci 1) * TTCN <-1 NS: status (blocked) Change-Id: I2b37a712bd70037b35b9deb8dab4a72d1e1d29fb --- M ns/NS_Tests.ttcn M ns/NS_Tests.udp.cfg M ns/osmo-ns.udp.cfg 3 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/25560/1 diff --git a/ns/NS_Tests.ttcn b/ns/NS_Tests.ttcn index b57d686..722f8ec 100644 --- a/ns/NS_Tests.ttcn +++ b/ns/NS_Tests.ttcn @@ -992,6 +992,43 @@ f_clean_ns_codec(); } +/* 48.016 7.2 ensure tx status (blocked) is correctly parsed over a foreign NSVC + * + * 2x initialize NSVC (RESET/UNBLOCK) + * TTCN 0-> NS: block (nsvci 1) + * TTCN <-0 NS: block ack (nsvci 1) + * TTCN 1-> NS: unit data (nsvci 1) + * TTCN <-1 NS: status (blocked) + */ +testcase TC_tx_blocked_foreign_nsvc() runs on RAW_Test_CT { + f_init_vty(); + f_vty_config2(NSVTY, {}, "mirror-mode enable"); + f_init_ns_codec(mp_nsconfig, idx := 0); + f_init_ns_codec(mp_nsconfig, idx := 1); + + /* do a NS Reset procedure */ + f_outgoing_ns_reset(idx := 0); + f_outgoing_ns_reset(idx := 1); + + /* send alive acks */ + activate(as_rx_alive_tx_ack(idx := 0)); + activate(as_rx_alive_tx_ack(idx := 1)); + + f_outgoing_ns_unblock(idx := 0); + f_outgoing_ns_unblock(idx := 1); + + /* both NSVC are alive and unblocked */ + NSCP[0].send(ts_NS_BLOCK(NS_CAUSE_TRANSIT_NETWORK_FAILURE, g_nsconfig.nsvc[1].nsvci)); + f_ns_exp(tr_NS_BLOCK_ACK(g_nsconfig.nsvc[1].nsvci)); + + NSCP[1].send(ts_NS_UNITDATA(t_SduCtrlB, 42, '0011234242230101'O)); + f_ns_exp(tr_NS_STATUS(NS_CAUSE_NSVC_BLOCKED), idx := 1); + + setverdict(pass); + f_clean_ns_codec(); +} + + control { if (mp_dialect == NS2_DIALECT_STATIC_RESETBLOCK or mp_dialect == NS2_DIALECT_IPACCESS) { execute( TC_tx_reset() ); @@ -1003,6 +1040,7 @@ execute( TC_tx_block_unitdata_over_blocked() ); execute( TC_rx_block_unitdata_over_blocked() ); execute( TC_mirror_unitdata_tx_status_blocked() ); + execute( TC_tx_blocked_foreign_nsvc() ); // execute( TC_block_other_nsvc() ); // reset, unblock, sleep(1), block over another nsvci /* 48.016 7.2 Unblock procedure */ execute( TC_tx_unblock() ); diff --git a/ns/NS_Tests.udp.cfg b/ns/NS_Tests.udp.cfg index f040998..cdb071d 100644 --- a/ns/NS_Tests.udp.cfg +++ b/ns/NS_Tests.udp.cfg @@ -21,6 +21,18 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "127.0.0.1", + local_udp_port := 22001, + remote_ip := "127.0.0.1", + remote_udp_port := 23001 + } + }, + nsvci := 1235 } } } diff --git a/ns/osmo-ns.udp.cfg b/ns/osmo-ns.udp.cfg index 9591427..b327c32 100644 --- a/ns/osmo-ns.udp.cfg +++ b/ns/osmo-ns.udp.cfg @@ -91,5 +91,9 @@ bind udp local listen 127.0.0.1 23000 accept-ipaccess + bind udp local2 + listen 127.0.0.1 23001 + accept-ipaccess nse 1234 nsvc ipa local 127.0.0.1 22000 nsvci 1234 + nsvc ipa local2 127.0.0.1 22001 nsvci 1235 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2b37a712bd70037b35b9deb8dab4a72d1e1d29fb Gerrit-Change-Number: 25560 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 Sep 23 13:49:04 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 13:49:04 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test: add second NSVC to allow TC_tx_blocked_foreign_nsvc to... References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/25561 ) Change subject: ttcn3-ns-test: add second NSVC to allow TC_tx_blocked_foreign_nsvc to work ...................................................................... ttcn3-ns-test: add second NSVC to allow TC_tx_blocked_foreign_nsvc to work TC_tx_blocked_foreign_nsvc requires to ipa NSVCs Change-Id: I3a4baaacdbaab245ba10a1857f0183e56defcdf4 --- M ttcn3-ns-test/NS_Tests.cfg M ttcn3-ns-test/osmo-ns-dummy.cfg 2 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/61/25561/1 diff --git a/ttcn3-ns-test/NS_Tests.cfg b/ttcn3-ns-test/NS_Tests.cfg index 1bb202d..1ba93ab 100644 --- a/ttcn3-ns-test/NS_Tests.cfg +++ b/ttcn3-ns-test/NS_Tests.cfg @@ -22,6 +22,18 @@ } }, nsvci := 1234 + }, + { + provider := { + ip := { + address_family := AF_INET, + local_ip := "172.18.28.10", + local_udp_port := 22001, + remote_ip := "172.18.28.101", + remote_udp_port := 23001 + } + }, + nsvci := 1235 } } } diff --git a/ttcn3-ns-test/osmo-ns-dummy.cfg b/ttcn3-ns-test/osmo-ns-dummy.cfg index 1da041d..b839252 100644 --- a/ttcn3-ns-test/osmo-ns-dummy.cfg +++ b/ttcn3-ns-test/osmo-ns-dummy.cfg @@ -90,5 +90,9 @@ bind udp local listen 172.18.28.101 23000 accept-ipaccess + bind udp local2 + listen 172.18.28.101 23001 + accept-ipaccess nse 1234 nsvc ipa local 172.18.28.10 22000 nsvci 1234 + nsvc ipa local2 172.18.28.10 22001 nsvci 1235 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3a4baaacdbaab245ba10a1857f0183e56defcdf4 Gerrit-Change-Number: 25561 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 Sep 23 13:49:35 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 13:49:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case TC_tx_blocked_foreign_nsvc In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25560 to look at the new patch set (#2). Change subject: ns: add test case TC_tx_blocked_foreign_nsvc ...................................................................... ns: add test case TC_tx_blocked_foreign_nsvc Check if a BLOCK PDU over a different/foreign connection is parsed. * 2x initialize NSVC (RESET/UNBLOCK) * TTCN 0-> NS: block (nsvci 1) * TTCN <-0 NS: block ack (nsvci 1) * TTCN 1-> NS: unit data (nsvci 1) * TTCN <-1 NS: status (blocked) Change-Id: I2b37a712bd70037b35b9deb8dab4a72d1e1d29fb --- M ns/NS_Tests.ttcn M ns/NS_Tests.udp.cfg M ns/osmo-ns.udp.cfg 3 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/25560/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2b37a712bd70037b35b9deb8dab4a72d1e1d29fb Gerrit-Change-Number: 25560 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 Sep 23 13:53:43 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 13:53:43 +0000 Subject: Change in libosmocore[master]: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of u... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25554 ) Change subject: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25554/1/src/gb/gprs_ns2_message.c File src/gb/gprs_ns2_message.c: https://gerrit.osmocom.org/c/libosmocore/+/25554/1/src/gb/gprs_ns2_message.c at 208 PS1, Line 208: * \param[in] cause Numeric NS Cause value > missing update of doc. Done https://gerrit.osmocom.org/c/libosmocore/+/25554/1/src/gb/gprs_ns2_message.c at 245 PS1, Line 245: * \returns 0 in case of success */ > missing update of doc. Done -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 Gerrit-Change-Number: 25554 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:53:43 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:56:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 13:56:26 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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, 23 Sep 2021 13:56: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 Sep 23 13:56:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 13:56:28 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25533 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... bts-trx: Keep the process ongoing trying to reconnect on Abis link down Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: 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/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index f35c9ba..8263cab 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -195,10 +195,11 @@ osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } -/* on RSL failure, deactivate transceiver */ void bts_model_abis_close(struct gsm_bts *bts) { - bts_shutdown(bts, "Abis close"); + /* Go into shutdown state deactivating transceivers until Abis link + * becomes up again */ + bts_shutdown_ext(bts, "Abis close", false); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: If24c7d8d58875dd8baf4031a8fc2a8656702a2b5 Gerrit-Change-Number: 25533 Gerrit-PatchSet: 7 Gerrit-Owner: pespin Gerrit-Reviewer: Hoernchen 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 Thu Sep 23 13:57:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 13:57:16 +0000 Subject: Change in docker-playground[master]: ttcn3-ns-test: add second NSVC to allow TC_tx_blocked_foreign_nsvc to... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/docker-playground/+/25561 ) Change subject: ttcn3-ns-test: add second NSVC to allow TC_tx_blocked_foreign_nsvc to work ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/docker-playground/+/25561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-Change-Id: I3a4baaacdbaab245ba10a1857f0183e56defcdf4 Gerrit-Change-Number: 25561 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:57:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 13:57:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 13:57:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ns: add test case TC_tx_blocked_foreign_nsvc In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25560 ) Change subject: ns: add test case TC_tx_blocked_foreign_nsvc ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I2b37a712bd70037b35b9deb8dab4a72d1e1d29fb Gerrit-Change-Number: 25560 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 13:57:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:04:34 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:04:34 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25557 ) Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25557/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25557/1/src/gb/gprs_ns2_vc_fsm.c at 854 PS1, Line 854: struct gprs_ns2_vc *target_nsvc = NULL; > what about setting target_nsvc = nsvc; here... Ack https://gerrit.osmocom.org/c/libosmocore/+/25557/1/src/gb/gprs_ns2_vc_fsm.c at 942 PS1, Line 942: if (target_nsvc) > .... and always use target_nsvc here. Ack -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:04: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 Thu Sep 23 14:06:19 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:06:19 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25557 ) Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25557/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/libosmocore/+/25557/1//COMMIT_MSG at 9 PS1, Line 9: STATUS PDU can be send over a different NSVC than the NSVC. > "than the target NSVC"? unsure. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:06:19 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:30:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:30:38 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a BLOCK PDU which was received over a different NSVC In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25558 ) Change subject: ns2: correct parse a BLOCK PDU which was received over a different NSVC ...................................................................... Patch Set 1: (6 comments) This change is ready for review. https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 375 PS1, Line 375: /* the BLOCK ACK for foreign BLOCK PDUs (rx over another nsvc) will be send > You can probably move this above, immediatelly below "ase GPRS_NS2_EV_RX_BLOCK:" and fall through. I don't like the fallthrough here. IMHO it doesn't really help the readability. https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 390 PS1, Line 390: /* the block ack will be send by the rx NSVC */ > be sent Done https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 409 PS1, Line 409: /* the block ack will be send by the rx NSVC */ > be sent Done https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 457 PS1, Line 457: /* the BLOCK ACK for foreign BLOCK PDUs (rx over another nsvc) will be send > be sent Done https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 459 PS1, Line 459: if (event == GPRS_NS2_EV_RX_BLOCK) > same, move above and fall through? I don't like the fallthrough here. https://gerrit.osmocom.org/c/libosmocore/+/25558/1/src/gb/gprs_ns2_vc_fsm.c at 941 PS1, Line 941: if (target_nsvc) { > and from my previous post, you can also use always target_nsvc here. [?] I like to keep the fi as it is in the other messages. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf Gerrit-Change-Number: 25558 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:30:38 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:35:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:35:08 +0000 Subject: Change in libosmocore[master]: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of u... In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25554 to look at the new patch set (#2). Change subject: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci ...................................................................... ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci The BLOCK and BLOCK ACK PDUs can be send over a working NSVC to inform the NSE that a NSVC is blocked. Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 --- M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c M tests/gb/gprs_ns2_test.c 4 files changed, 27 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/54/25554/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 Gerrit-Change-Number: 25554 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:35:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:35:08 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25557 to look at the new patch set (#2). Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... ns2: correct parse a STATUS PDU which was received over a different NSVC STATUS PDU can be send over a different NSVC than the NSVC which generated the STATUS PDU. E.g. informing a NSVC got blocked in case of a lower-layer failure. Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 20 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/25557/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:35:08 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:35:08 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a BLOCK PDU which was received over a different NSVC In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25558 to look at the new patch set (#2). Change subject: ns2: correct parse a BLOCK PDU which was received over a different NSVC ...................................................................... ns2: correct parse a BLOCK PDU which was received over a different NSVC BLOCK PDU can be send over a different NSVC than the NSVC. E.g. informing a NSVC got blocked in case of a lower-layer failure. Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 38 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/25558/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf Gerrit-Change-Number: 25558 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:35:10 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:35:10 +0000 Subject: Change in libosmocore[master]: implement status with nsvci References: Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25562 ) Change subject: implement status with nsvci ...................................................................... implement status with nsvci Change-Id: I373eb48697097cdfa45748a091c11f7b3f0345fa --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c 4 files changed, 12 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/25562/1 diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 6bccf65..3bb04ae 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1356,7 +1356,7 @@ if (rc < 0) { LOGP(DLNS, LOGL_NOTICE, "Error during TLV Parse\n"); if (nsh->pdu_type != NS_PDUT_STATUS) - ns2_tx_status(nsvc, NS_CAUSE_PROTO_ERR_UNSPEC, 0, msg); + ns2_tx_status(nsvc, NS_CAUSE_PROTO_ERR_UNSPEC, 0, msg, NULL); return rc; } return ns2_vc_rx(nsvc, msg, &tp); diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index a5d78d4..0959d2b 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -439,7 +439,7 @@ struct msgb *msg); int ns2_tx_status(struct gprs_ns2_vc *nsvc, uint8_t cause, - uint16_t bvci, struct msgb *orig_msg); + uint16_t bvci, struct msgb *orig_msg, uint16_t *nsvci); /* driver */ struct gprs_ns2_vc *ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c index de30470..cc95334 100644 --- a/src/gb/gprs_ns2_message.c +++ b/src/gb/gprs_ns2_message.c @@ -432,13 +432,14 @@ * \param[in] cause Numeric NS cause value * \param[in] bvci BVCI to be reset within NSVC * \param[in] orig_msg message causing the STATUS + * \param[in] nsvci if given this NSVCI will be encoded. If NULL the nsvc->nsvci will be used. * \returns 0 in case of success */ int ns2_tx_status(struct gprs_ns2_vc *nsvc, uint8_t cause, - uint16_t bvci, struct msgb *orig_msg) + uint16_t bvci, struct msgb *orig_msg, uint16_t *nsvci) { struct msgb *msg = ns2_msgb_alloc(); struct gprs_ns_hdr *nsh; - uint16_t nsvci = osmo_htons(nsvc->nsvci); + uint16_t encoded_nsvci; unsigned int orig_len, max_orig_len; log_set_context(LOG_CTX_GB_NSE, nsvc->nse); @@ -459,7 +460,11 @@ case NS_CAUSE_NSVC_BLOCKED: case NS_CAUSE_NSVC_UNKNOWN: /* Section 9.2.7.1: Static conditions for NS-VCI */ - msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&nsvci); + if (nsvci) + encoded_nsvci = osmo_htons(*nsvci); + else + encoded_nsvci = osmo_htons(nsvc->nsvci); + msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *)&encoded_nsvci); break; case NS_CAUSE_SEM_INCORR_PDU: case NS_CAUSE_PDU_INCOMP_PSTATE: diff --git a/src/gb/gprs_ns2_vc_fsm.c b/src/gb/gprs_ns2_vc_fsm.c index d09c31a..1a632b1 100644 --- a/src/gb/gprs_ns2_vc_fsm.c +++ b/src/gb/gprs_ns2_vc_fsm.c @@ -679,7 +679,7 @@ ns2_tx_status(priv->nsvc, NS_CAUSE_NSVC_BLOCKED, - 0, msg); + 0, msg, NULL); break; /* ALIVE can receive UNITDATA if the ALIVE_ACK is lost */ case GPRS_NS2_ST_RECOVERING: @@ -863,7 +863,7 @@ if (ns2_validate(nsvc, nsh->pdu_type, msg, tp, &cause)) { /* don't answer on a STATUS with a STATUS */ if (nsh->pdu_type != NS_PDUT_STATUS) { - rc = ns2_tx_status(nsvc, cause, 0, msg); + rc = ns2_tx_status(nsvc, cause, 0, msg, NULL); goto out; } } -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I373eb48697097cdfa45748a091c11f7b3f0345fa Gerrit-Change-Number: 25562 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 Sep 23 14:36:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:36:38 +0000 Subject: Change in libosmocore[master]: ns2: message: allow to pass a foreign NSVCI to STATUS PDU In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/25562 ) Change subject: ns2: message: allow to pass a foreign NSVCI to STATUS PDU ...................................................................... ns2: message: allow to pass a foreign NSVCI to STATUS PDU To answer correct on a BLOCK PDU with a different NSVCI, the STATUS PDU needs also a NSVCI parameter. Change-Id: I373eb48697097cdfa45748a091c11f7b3f0345fa --- M src/gb/gprs_ns2.c M src/gb/gprs_ns2_internal.h M src/gb/gprs_ns2_message.c M src/gb/gprs_ns2_vc_fsm.c 4 files changed, 12 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/25562/2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I373eb48697097cdfa45748a091c11f7b3f0345fa Gerrit-Change-Number: 25562 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:36:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:36:38 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25557 to look at the new patch set (#3). Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... ns2: correct parse a STATUS PDU which was received over a different NSVC STATUS PDU can be send over a different NSVC than the NSVC which generated the STATUS PDU. E.g. informing a NSVC got blocked in case of a lower-layer failure. Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 20 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/25557/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:36:38 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 23 Sep 2021 14:36:38 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a BLOCK PDU which was received over a different NSVC In-Reply-To: References: Message-ID: Hello Jenkins Builder, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25558 to look at the new patch set (#3). Change subject: ns2: correct parse a BLOCK PDU which was received over a different NSVC ...................................................................... ns2: correct parse a BLOCK PDU which was received over a different NSVC BLOCK PDU can be send over a different NSVC than the NSVC. E.g. informing a NSVC got blocked in case of a lower-layer failure. Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf --- M src/gb/gprs_ns2_vc_fsm.c 1 file changed, 38 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/25558/3 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf Gerrit-Change-Number: 25558 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:43:03 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 14:43:03 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a STATUS PDU which was received over a different NSVC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25557 ) Change subject: ns2: correct parse a STATUS PDU which was received over a different NSVC ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I5c9e9de10c669c1226da67bb9e2663c5cfe828a8 Gerrit-Change-Number: 25557 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:43: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 Sep 23 14:45:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 14:45:15 +0000 Subject: Change in libosmocore[master]: ns2: correct parse a BLOCK PDU which was received over a different NSVC In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25558 ) Change subject: ns2: correct parse a BLOCK PDU which was received over a different NSVC ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25558/3/src/gb/gprs_ns2_vc_fsm.c File src/gb/gprs_ns2_vc_fsm.c: https://gerrit.osmocom.org/c/libosmocore/+/25558/3/src/gb/gprs_ns2_vc_fsm.c at a388 PS3, Line 388: ns2_tx_unblock_ack(priv->nsvc); So you are now doing the opposite of what I advised to existent code! damn you hate me so much! -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I483e3a1d3b8c43bbb0cc6185b7f7f772bcb264bf Gerrit-Change-Number: 25558 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:45:15 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 14:45:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 14:45:42 +0000 Subject: Change in libosmocore[master]: ns2: message: allow to pass a foreign NSVCI to STATUS PDU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25562 ) Change subject: ns2: message: allow to pass a foreign NSVCI to STATUS PDU ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I373eb48697097cdfa45748a091c11f7b3f0345fa Gerrit-Change-Number: 25562 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:45: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 Sep 23 14:46:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 14:46:24 +0000 Subject: Change in libosmocore[master]: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of u... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25554 ) Change subject: ns2: message: BLOCK/BLOCK ACK allow to use a given NSVCI instead of using the nsvc nsvci ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6189229fdc1f054e86811bc60cb7646e1f758a78 Gerrit-Change-Number: 25554 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 14:46: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 Sep 23 16:41:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 16:41:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: do not run TC_stat_num_msc_* for SCCPlite References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25563 ) Change subject: bsc: do not run TC_stat_num_msc_* for SCCPlite ...................................................................... bsc: do not run TC_stat_num_msc_* for SCCPlite Avoid test breakage in ttcn3-bsc-test-sccplite, due to different osmo-bsc configuration. Related: SYS#5542 Change-Id: Iaf976ac12dbb2ee1930a7acfcf3cb452db34beed --- M bsc/BSC_Tests.ttcn 1 file changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/63/25563/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7cffac9..49214cd 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -10159,9 +10159,13 @@ /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); execute( TC_ctrl_msc0_connection_status() ); - execute( TC_stat_num_msc_connected_1() ); - execute( TC_stat_num_msc_connected_2() ); - execute( TC_stat_num_msc_connected_3() ); + /* In SCCPlite tests, only one MSC is configured. These tests assume that three MSCs are configured, so only run + * these in the AoIP test suite. */ + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { + execute( TC_stat_num_msc_connected_1() ); + execute( TC_stat_num_msc_connected_2() ); + execute( TC_stat_num_msc_connected_3() ); + } execute( TC_stat_num_bts_connected_1() ); execute( TC_stat_num_bts_connected_2() ); execute( TC_stat_num_bts_connected_3() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf976ac12dbb2ee1930a7acfcf3cb452db34beed Gerrit-Change-Number: 25563 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 Sep 23 16:42:31 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 16:42:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: do not run TC_stat_num_msc_* for SCCPlite In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25563 ) Change subject: bsc: do not run TC_stat_num_msc_* for SCCPlite ...................................................................... Patch Set 1: Code-Review+2 trivial -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf976ac12dbb2ee1930a7acfcf3cb452db34beed Gerrit-Change-Number: 25563 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Comment-Date: Thu, 23 Sep 2021 16:42:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 16:42:46 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 16:42:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: do not run TC_stat_num_msc_* for SCCPlite In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25563 ) Change subject: bsc: do not run TC_stat_num_msc_* for SCCPlite ...................................................................... bsc: do not run TC_stat_num_msc_* for SCCPlite Avoid test breakage in ttcn3-bsc-test-sccplite, due to different osmo-bsc configuration. Related: SYS#5542 Change-Id: Iaf976ac12dbb2ee1930a7acfcf3cb452db34beed --- M bsc/BSC_Tests.ttcn 1 file changed, 7 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7cffac9..49214cd 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -10159,9 +10159,13 @@ /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); execute( TC_ctrl_msc0_connection_status() ); - execute( TC_stat_num_msc_connected_1() ); - execute( TC_stat_num_msc_connected_2() ); - execute( TC_stat_num_msc_connected_3() ); + /* In SCCPlite tests, only one MSC is configured. These tests assume that three MSCs are configured, so only run + * these in the AoIP test suite. */ + if (mp_bssap_cfg[0].transport == BSSAP_TRANSPORT_AoIP) { + execute( TC_stat_num_msc_connected_1() ); + execute( TC_stat_num_msc_connected_2() ); + execute( TC_stat_num_msc_connected_3() ); + } execute( TC_stat_num_bts_connected_1() ); execute( TC_stat_num_bts_connected_2() ); execute( TC_stat_num_bts_connected_3() ); -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iaf976ac12dbb2ee1930a7acfcf3cb452db34beed Gerrit-Change-Number: 25563 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 Thu Sep 23 16:54:41 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 16:54:41 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25464 to look at the new patch set (#4). Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... refactor stat_item: get rid of FIFO and "skipped" error Intead of attempting to store all distinct values of a reporting period, just store min, max, last as well as a sum and N of each reporting period. This gets rid of error messages like DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped while at the same time more accurately reporting the max value for each reporting period. (So far stats_item only reports the max value; keep that part unchanged, as shown in stats_test.c.) With the other so far unused values (min, sum), we are ready to also report the minimum value as well as an average value per reporting period in the future, if/when our stats reporter allows for it. Store the complete record of the previous reporting period. So far we only compare the 'max' value, but like this we are ready to also see changes in min, last and average value between reporting periods. This patch breaks API by removing: - struct members osmo_stats_item.stats_next_id, .last_offs and .values[] - struct definition osmo_stats_item_value In libosmocore, we do have a policy of never breaking API. But since the above should never be accessed by users of the osmo_stats_item API -- or if they are, would not yield useful results --, we decided to make an exception in this case. The alternative would be to introduce a new osmo_stats_item2 API and maintaining an unused legacy osmo_stats_item forever, but we decided that the effort is not worth it. There are no known users of the removed items. Related: SYS#5542 Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b --- M TODO-RELEASE M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 6 files changed, 312 insertions(+), 310 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/25464/4 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 17:00:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 17:00:14 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25464 to look at the new patch set (#5). Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... refactor stat_item: get rid of FIFO and "skipped" error Intead of attempting to store all distinct values of a reporting period, just store min, max, last as well as a sum and N of each reporting period. This gets rid of error messages like DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped while at the same time more accurately reporting the max value for each reporting period. (So far stats_item only reports the max value; keep that part unchanged, as shown in stats_test.c.) With the other so far unused values (min, sum), we are ready to also report the minimum value as well as an average value per reporting period in the future, if/when our stats reporter allows for it. Store the complete record of the previous reporting period. So far we only compare the 'max' value, but like this we are ready to also see changes in min, last and average value between reporting periods. This patch breaks API by removing: - struct members osmo_stats_item.stats_next_id, .last_offs and .values[] - struct osmo_stats_item_value - osmo_stat_item_get_next() - osmo_stat_item_discard() - osmo_stat_item_discard_all() In libosmocore, we do have a policy of never breaking API. But since the above should never be accessed by users of the osmo_stats_item API -- or if they are, would no longer yield useful results, we decided to make an exception in this case. The alternative would be to introduce a new osmo_stats_item2 API and maintaining an unused legacy osmo_stats_item forever, but we decided that the effort is not worth it. There are no known users of the removed items. Related: SYS#5542 Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b --- M TODO-RELEASE M include/osmocom/core/stat_item.h M src/stat_item.c M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 6 files changed, 312 insertions(+), 310 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/25464/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 17:00:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 17:00:14 +0000 Subject: Change in libosmocore[master]: refactor stat_item: report only changed values In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, pespin, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25465 to look at the new patch set (#5). Change subject: refactor stat_item: report only changed values ...................................................................... refactor stat_item: report only changed values Change the functionality of skipping unchanged values: instead of looking up whether new values have been set on a stat item, rather remember the last reported value and skip reporting identical values. stats_test.c shows that previously, a stat item reported a value of 10 again, even though the previous report had already sent a value of 10. That's just because the value 10 was explicitly set again, internally. >From a perspective of preserving all data points, it could make sense to send consecutive identical values. But since we already collapse all data points per reporting period into a max, that is pointless. Related: SYS#5542 Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b --- M TODO-RELEASE M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 4 files changed, 9 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/25465/5 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 18:30:12 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 18:30:12 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { Maybe it's a good opportunity to move these structs to an internal, non-public header :D https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 132 PS5, Line 132: /* DEPRECATION: up until libosmocore 1.5.1, this API also defined I'd really drop this. If someone has an issue and wants to dig on what's going on, I'm sure knows how to use git :D -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 18:30: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 Sep 23 19:51:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 19:51:16 +0000 Subject: Change in osmo-bts[master]: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" References: Message-ID: Hello Jenkins Builder, laforge, pespin, fixeria, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25582 to review the following change. Change subject: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" ...................................................................... Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" This reverts commit 4ddc37ce7140e5ce6ca6cce5aeeefedc0d395d22. Reason for revert: segfault in osmo-bts-omldummy upon connecting to BSC See OS#5237 Change-Id: Ic8d19dc85407a2cf877d6c2aec1a90574311ad83 --- M src/common/nm_bts_fsm.c 1 file changed, 0 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/25582/1 diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index bad533f..54737bf 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -65,23 +65,10 @@ static void st_op_disabled_notinstalled(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_bts *bts = (struct gsm_bts *)fi->priv; - struct gsm_bts_trx *trx; switch (event) { case NM_EV_SW_ACT: oml_mo_tx_sw_act_rep(&bts->mo); - - llist_for_each_entry(trx, &bts->trx_list, list) { - /* During startup, phy_links are already opened, but if we are - * re-connecting, phy_link was closed when disconnected from - * previous BSC, so let's re-open it. - */ - struct phy_instance *pinst = trx_phy_instance(trx); - struct phy_link *plink = pinst->phy_link; - if (phy_link_state_get(plink) == PHY_LINK_SHUTDOWN) - bts_model_phy_link_open(plink); - } - nm_bts_fsm_state_chg(fi, NM_BTS_ST_OP_DISABLED_OFFLINE); return; default: -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic8d19dc85407a2cf877d6c2aec1a90574311ad83 Gerrit-Change-Number: 25582 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria 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 Thu Sep 23 19:51:16 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 19:51:16 +0000 Subject: Change in osmo-bts[master]: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it In-Reply-To: References: Message-ID: neels has created a revert of this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25530 ) Change subject: nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it ...................................................................... -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia1df6f4a1e0e6daeffe7303d518776a04b023930 Gerrit-Change-Number: 25530 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: revert -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 19:51:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 19:51:44 +0000 Subject: Change in osmo-bts[master]: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25582 ) Change subject: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" ...................................................................... Patch Set 1: Code-Review+2 breaks all BSC_Tests.ttcn -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic8d19dc85407a2cf877d6c2aec1a90574311ad83 Gerrit-Change-Number: 25582 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 19:51:44 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 20:23:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:23:54 +0000 Subject: Change in osmo-bts[master]: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25564 ) Change subject: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" ...................................................................... Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" This reverts commit 0c44a9219762eef3d23a0d9f6ed8d4164ca5bccc. Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/64/25564/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 8263cab..f35c9ba 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -195,11 +195,10 @@ osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } +/* on RSL failure, deactivate transceiver */ void bts_model_abis_close(struct gsm_bts *bts) { - /* Go into shutdown state deactivating transceivers until Abis link - * becomes up again */ - bts_shutdown_ext(bts, "Abis close", false); + bts_shutdown(bts, "Abis close"); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 Gerrit-Change-Number: 25564 Gerrit-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 Sep 23 20:24:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:24:37 +0000 Subject: Change in osmo-bts[master]: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25564 ) Change subject: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" ...................................................................... Patch Set 1: Code-Review+2 I'm reverting this one since it's capable of provoking harm and I won't be available until Monday. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 Gerrit-Change-Number: 25564 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 20:24:37 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From noreply at opensuse.org Thu Sep 23 20:25:11 2021 From: noreply at opensuse.org (OBS Notification) Date: Thu, 23 Sep 2021 20:25:11 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sip-connector in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <614ce2b4bc444_59852b21331286102005ea@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: [ 59s] [358/503] installing libxaw7-2:1.0.13-1.1 [ 59s] Processing triggers for libc-bin (2.32-4) ... [ 59s] [359/503] installing libcryptsetup12-2:2.4.0-1 [ 59s] Processing triggers for libc-bin (2.32-4) ... [ 59s] [360/503] installing util-linux-2.37.2-3 [ 59s] Processing triggers for man-db (2.9.4-2) ... [ 60s] [361/503] installing libarchive-zip-perl-1.68-1 [ 60s] Processing triggers for man-db (2.9.4-2) ... [ 60s] [362/503] installing libdebhelper-perl-13.5.1 [ 60s] [363/503] installing libmime-charset-perl-1.012.2-1 [ 60s] Processing triggers for man-db (2.9.4-2) ... [ 60s] [364/503] installing libsgmls-perl-1.03ii-36 [ 60s] Processing triggers for man-db (2.9.4-2) ... [ 60s] [365/503] installing libsofia-sip-ua-dev-1.12.11+20110422.1-2.1+b1 [ 60s] [366/503] installing libsub-override-perl-0.09-2 [ 60s] Processing triggers for man-db (2.9.4-2) ... [ 60s] [367/503] installing preview-latex-style-12.2-1 [ 60s] Processing triggers for tex-common (6.17) ... [ 60s] [368/503] installing intltool-debian-0.35.0+20060710.5 [ 60s] [369/503] installing libdpkg-perl-1.20.9 [ 60s] Processing triggers for man-db (2.9.4-2) ... [ 61s] [370/503] installing libpaper-utils-1.1.28+b1 [28866s] qemu-kvm: terminating on signal 15 from pid 49967 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28866s] ### VM INTERACTION END ### [28866s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28866s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/my/subscriptions openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Sep 23 20:28:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:28:28 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: Fix crash accessing null phy References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25565 ) Change subject: osmo-bts-omldummy: Fix crash accessing null phy ...................................................................... osmo-bts-omldummy: Fix crash accessing null phy osmo-bts-omldummy is known to be specially in the sense that it has no phy. This should ideally be changed to have some dummy object, but so far that's how it is. A recent commit checking the phy's forgot about the fact that BTS model has no phy. Let's fix it. Fixes: 4ddc37ce7140e5ce6ca6cce5aeeefedc0d395d22 Change-Id: Iba7873530aac74b3bf799819890641196dacf170 --- M src/common/nm_bts_fsm.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/25565/1 diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index bad533f..0ad7655 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -72,6 +72,8 @@ oml_mo_tx_sw_act_rep(&bts->mo); llist_for_each_entry(trx, &bts->trx_list, list) { + if (trx->bts->variant == BTS_OSMO_OMLDUMMY) /* In OMLDUMMY, phy=NULL */ + continue; /* During startup, phy_links are already opened, but if we are * re-connecting, phy_link was closed when disconnected from * previous BSC, so let's re-open it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba7873530aac74b3bf799819890641196dacf170 Gerrit-Change-Number: 25565 Gerrit-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 Sep 23 20:28:39 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:28:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fixup for TC_cm_reestablishment: properly del MGCP ep References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 ) Change subject: bsc: fixup for TC_cm_reestablishment: properly del MGCP ep ...................................................................... bsc: fixup for TC_cm_reestablishment: properly del MGCP ep Fix SCCPlite run of TC_cm_reestablishment. I'm not sure why it works for AoIP before this patch, but now it works for both SCCPlite and AoIP. Related: SYS#5130 Change-Id: I1c87272c5bb1ac452927054a9eef104d795e02f8 --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/66/25566/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 49214cd..8eff58f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9665,6 +9665,7 @@ } f_perform_clear() f_expect_dlcx_conns(); + f_create_mgcp_delete_ep(g_media.mgcp_ep); COORD.send(REEST_CLEAR_DONE); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1c87272c5bb1ac452927054a9eef104d795e02f8 Gerrit-Change-Number: 25566 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 Sep 23 20:28:56 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:28:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fixup for TC_cm_reestablishment: properly del MGCP ep In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 ) Change subject: bsc: fixup for TC_cm_reestablishment: properly del MGCP ep ...................................................................... Patch Set 1: Code-Review+2 trivial -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1c87272c5bb1ac452927054a9eef104d795e02f8 Gerrit-Change-Number: 25566 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 20:28: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 Sep 23 20:29:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:29:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fixup for TC_cm_reestablishment: properly del MGCP ep In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 ) Change subject: bsc: fixup for TC_cm_reestablishment: properly del MGCP ep ...................................................................... bsc: fixup for TC_cm_reestablishment: properly del MGCP ep Fix SCCPlite run of TC_cm_reestablishment. I'm not sure why it works for AoIP before this patch, but now it works for both SCCPlite and AoIP. Related: SYS#5130 Change-Id: I1c87272c5bb1ac452927054a9eef104d795e02f8 --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 49214cd..8eff58f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9665,6 +9665,7 @@ } f_perform_clear() f_expect_dlcx_conns(); + f_create_mgcp_delete_ep(g_media.mgcp_ep); COORD.send(REEST_CLEAR_DONE); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I1c87272c5bb1ac452927054a9eef104d795e02f8 Gerrit-Change-Number: 25566 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 Thu Sep 23 20:29:53 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:29:53 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: Fix crash accessing null phy In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25565 ) Change subject: osmo-bts-omldummy: Fix crash accessing null phy ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba7873530aac74b3bf799819890641196dacf170 Gerrit-Change-Number: 25565 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 20:29: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 Sep 23 20:32:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:32:50 +0000 Subject: Change in osmo-bts[master]: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25582 ) Change subject: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" ...................................................................... Patch Set 1: Code-Review-2 Fixed by https://gerrit.osmocom.org/c/osmo-bts/+/25565 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic8d19dc85407a2cf877d6c2aec1a90574311ad83 Gerrit-Change-Number: 25582 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 20:32: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 Sep 23 20:40:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:40:14 +0000 Subject: Change in osmo-bts[master]: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" In-Reply-To: References: Message-ID: neels has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25582 ) Change subject: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" ...................................................................... Abandoned in favor of https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25566 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic8d19dc85407a2cf877d6c2aec1a90574311ad83 Gerrit-Change-Number: 25582 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 20:40:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:40:50 +0000 Subject: Change in osmo-bts[master]: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25582 ) Change subject: Revert "nm_bts_fsm: Make sure PHYs are opened when SW_ACTivating it" ...................................................................... Patch Set 1: arg wrong link, what pespin said. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic8d19dc85407a2cf877d6c2aec1a90574311ad83 Gerrit-Change-Number: 25582 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 20:40:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 20:41:53 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:41:53 +0000 Subject: Change in osmo-bts[master]: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis... In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25564 ) Change subject: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25564/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25564/1//COMMIT_MSG at 9 PS1, Line 9: This reverts commit 0c44a9219762eef3d23a0d9f6ed8d4164ca5bccc. how about a reason!? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 Gerrit-Change-Number: 25564 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 20:41: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 Sep 23 20:43:17 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 20:43:17 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: Fix crash accessing null phy In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25565 ) Change subject: osmo-bts-omldummy: Fix crash accessing null phy ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba7873530aac74b3bf799819890641196dacf170 Gerrit-Change-Number: 25565 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 20:43:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 20:48:46 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:48:46 +0000 Subject: Change in osmo-bts[master]: Revert "abis: Fix line leaked & recreated upon every reconnect" References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25567 ) Change subject: Revert "abis: Fix line leaked & recreated upon every reconnect" ...................................................................... Revert "abis: Fix line leaked & recreated upon every reconnect" This reverts commit bc6d35f52d4d3abd650afb05475ad5a818737fe2. Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 12 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/25567/1 diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index d5cf634..40707cd 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -8,7 +8,7 @@ enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_OML_UP, - ABIS_LINK_EV_SIGN_LINK_DOWN, /* data: struct e1inp_line* of link going down */ + ABIS_LINK_EV_SIGN_LINK_DOWN, ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ }; diff --git a/src/common/abis.c b/src/common/abis.c index b734576..93635c2 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,6 +81,7 @@ struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; + int line_ctr; }; static void reset_oml_link(struct gsm_bts *bts) @@ -155,7 +156,15 @@ bts_dev_info.unit_name = bts->description; bts_dev_info.location2 = priv->model_name; - line = e1inp_line_create(0, "ipa"); /* already comes with a reference "ctor" */ + line = e1inp_line_find(priv->line_ctr); + if (line) { + e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ + } else + line = e1inp_line_create(priv->line_ctr, "ipa"); /* already comes with a reference */ + + /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next + * attempt must happen on a different line. */ + priv->line_ctr++; if (!line) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); @@ -177,17 +186,13 @@ { struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; - struct e1inp_line *line; switch (event) { case ABIS_LINK_EV_SIGN_LINK_OML_UP: osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); break; case ABIS_LINK_EV_SIGN_LINK_DOWN: - line = (struct e1inp_line *)data; reset_oml_link(bts); - /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ - e1inp_line_put2(line, "ctor"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); break; default: @@ -205,7 +210,6 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; struct gsm_bts_trx *trx; - struct e1inp_line *line = (struct e1inp_line *)data; OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); /* First remove the OML signalling link */ @@ -228,10 +232,6 @@ * that TRX only. But libosmo-abis expects us to drop the entire * line when something goes wrong... */ } - - /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ - e1inp_line_put2(line, "ctor"); - bts_model_abis_close(bts); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); } @@ -395,7 +395,7 @@ static void sign_link_down(struct e1inp_line *line) { LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n"); - osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, line); + osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, NULL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 Gerrit-Change-Number: 25567 Gerrit-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 Sep 23 20:52:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:52:50 +0000 Subject: Change in osmo-bts[master]: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25564 ) Change subject: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25564/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-bts/+/25564/1//COMMIT_MSG at 9 PS1, Line 9: This reverts commit 0c44a9219762eef3d23a0d9f6ed8d4164ca5bccc. > how about a reason!? REASON IS I'M BACK ON MONDAY AND I DON'T WANT ANYBODY ELSE TO HAVE TO MESS WITH IT. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 Gerrit-Change-Number: 25564 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 20:52:50 +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 Sep 23 20:56:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 20:56:16 +0000 Subject: Change in osmo-bts[master]: Revert "abis: Fix line leaked & recreated upon every reconnect" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25567 ) Change subject: Revert "abis: Fix line leaked & recreated upon every reconnect" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 Gerrit-Change-Number: 25567 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: pespin Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 20:56:16 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 21:01:15 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 21:01:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_reassignment_fr for SCCPlite test suite References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25568 ) Change subject: bsc: fix TC_reassignment_fr for SCCPlite test suite ...................................................................... bsc: fix TC_reassignment_fr for SCCPlite test suite In SCCPlite, there is only one DLCX. Turns out the DLCX doesn't have to be part of the interlave, just call f_expect_dlcx_conns() which takes care of AoIP vs SCCPlite expectations. Related: SYS#4895 Change-Id: Id8931185dfa9f229ca7af033a97cabd040db0c2a --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/68/25568/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 8eff58f..7183f54 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9574,8 +9574,6 @@ var BssmapCause cause := 0; BSSAP.send(ts_BSSMAP_ClearCommand(cause)); interleave { - [] MGCP.receive(tr_DLCX) {} - [] MGCP.receive(tr_DLCX) {} [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) {} [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {} [] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { @@ -9586,6 +9584,7 @@ BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); } } + f_expect_dlcx_conns(); f_sleep(0.5); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id8931185dfa9f229ca7af033a97cabd040db0c2a Gerrit-Change-Number: 25568 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 Sep 23 21:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 21:01:35 +0000 Subject: Change in osmo-bts[master]: Revert "abis: Fix line leaked & recreated upon every reconnect" In-Reply-To: References: Message-ID: pespin has removed a vote from this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25567 ) Change subject: Revert "abis: Fix line leaked & recreated upon every reconnect" ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 Gerrit-Change-Number: 25567 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-MessageType: deleteVote -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 23 21:01:38 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 21:01:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_reassignment_fr for SCCPlite test suite In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25568 ) Change subject: bsc: fix TC_reassignment_fr for SCCPlite test suite ...................................................................... Patch Set 1: Code-Review+2 trivial -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id8931185dfa9f229ca7af033a97cabd040db0c2a Gerrit-Change-Number: 25568 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: neels Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 23 Sep 2021 21:01: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 Sep 23 21:02:01 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 21:02:01 +0000 Subject: Change in osmo-bts[master]: Revert "abis: Fix line leaked & recreated upon every reconnect" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25567 ) Change subject: Revert "abis: Fix line leaked & recreated upon every reconnect" ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 Gerrit-Change-Number: 25567 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 23 Sep 2021 21:02: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 Sep 23 21:02:02 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 23 Sep 2021 21:02:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_reassignment_fr for SCCPlite test suite In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25568 ) Change subject: bsc: fix TC_reassignment_fr for SCCPlite test suite ...................................................................... bsc: fix TC_reassignment_fr for SCCPlite test suite In SCCPlite, there is only one DLCX. Turns out the DLCX doesn't have to be part of the interlave, just call f_expect_dlcx_conns() which takes care of AoIP vs SCCPlite expectations. Related: SYS#4895 Change-Id: Id8931185dfa9f229ca7af033a97cabd040db0c2a --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 8eff58f..7183f54 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -9574,8 +9574,6 @@ var BssmapCause cause := 0; BSSAP.send(ts_BSSMAP_ClearCommand(cause)); interleave { - [] MGCP.receive(tr_DLCX) {} - [] MGCP.receive(tr_DLCX) {} [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) {} [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) {} [] RSL.receive(tr_RSL_RF_CHAN_REL(g_chan_nr)) { @@ -9586,6 +9584,7 @@ BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); } } + f_expect_dlcx_conns(); f_sleep(0.5); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Id8931185dfa9f229ca7af033a97cabd040db0c2a Gerrit-Change-Number: 25568 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 Thu Sep 23 21:02:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 21:02:07 +0000 Subject: Change in osmo-bts[master]: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25564 ) Change subject: Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" ...................................................................... Revert "bts-trx: Keep the process ongoing trying to reconnect on Abis link down" This reverts commit 0c44a9219762eef3d23a0d9f6ed8d4164ca5bccc. Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified Objections: neels: I would prefer this is not merged as is diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index 8263cab..f35c9ba 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -195,11 +195,10 @@ osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } +/* on RSL failure, deactivate transceiver */ void bts_model_abis_close(struct gsm_bts *bts) { - /* Go into shutdown state deactivating transceivers until Abis link - * becomes up again */ - bts_shutdown_ext(bts, "Abis close", false); + bts_shutdown(bts, "Abis close"); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ib367d5ddfaccfad3f1b6acc53abf25a0f1834255 Gerrit-Change-Number: 25564 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 Thu Sep 23 21:02:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 21:02:07 +0000 Subject: Change in osmo-bts[master]: Revert "abis: Fix line leaked & recreated upon every reconnect" In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25567 ) Change subject: Revert "abis: Fix line leaked & recreated upon every reconnect" ...................................................................... Revert "abis: Fix line leaked & recreated upon every reconnect" This reverts commit bc6d35f52d4d3abd650afb05475ad5a818737fe2. Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 --- M include/osmo-bts/abis.h M src/common/abis.c 2 files changed, 12 insertions(+), 12 deletions(-) Approvals: pespin: Looks good to me, approved; Verified diff --git a/include/osmo-bts/abis.h b/include/osmo-bts/abis.h index d5cf634..40707cd 100644 --- a/include/osmo-bts/abis.h +++ b/include/osmo-bts/abis.h @@ -8,7 +8,7 @@ enum abis_link_fsm_event { ABIS_LINK_EV_SIGN_LINK_OML_UP, - ABIS_LINK_EV_SIGN_LINK_DOWN, /* data: struct e1inp_line* of link going down */ + ABIS_LINK_EV_SIGN_LINK_DOWN, ABIS_LINK_EV_VTY_RM_ADDR, /* data: struct bsc_oml_host* being removed */ }; diff --git a/src/common/abis.c b/src/common/abis.c index b734576..93635c2 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,6 +81,7 @@ struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; + int line_ctr; }; static void reset_oml_link(struct gsm_bts *bts) @@ -155,7 +156,15 @@ bts_dev_info.unit_name = bts->description; bts_dev_info.location2 = priv->model_name; - line = e1inp_line_create(0, "ipa"); /* already comes with a reference "ctor" */ + line = e1inp_line_find(priv->line_ctr); + if (line) { + e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ + } else + line = e1inp_line_create(priv->line_ctr, "ipa"); /* already comes with a reference */ + + /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next + * attempt must happen on a different line. */ + priv->line_ctr++; if (!line) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); @@ -177,17 +186,13 @@ { struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; - struct e1inp_line *line; switch (event) { case ABIS_LINK_EV_SIGN_LINK_OML_UP: osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_CONNECTED, 0, 0); break; case ABIS_LINK_EV_SIGN_LINK_DOWN: - line = (struct e1inp_line *)data; reset_oml_link(bts); - /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ - e1inp_line_put2(line, "ctor"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); break; default: @@ -205,7 +210,6 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; struct gsm_bts_trx *trx; - struct e1inp_line *line = (struct e1inp_line *)data; OSMO_ASSERT(event == ABIS_LINK_EV_SIGN_LINK_DOWN); /* First remove the OML signalling link */ @@ -228,10 +232,6 @@ * that TRX only. But libosmo-abis expects us to drop the entire * line when something goes wrong... */ } - - /* Drop reference obtained through e1inp_line_create() to get rid of the line object: */ - e1inp_line_put2(line, "ctor"); - bts_model_abis_close(bts); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); } @@ -395,7 +395,7 @@ static void sign_link_down(struct e1inp_line *line) { LOGPIL(line, DABIS, LOGL_ERROR, "Signalling link down\n"); - osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, line); + osmo_fsm_inst_dispatch(g_bts->abis_link_fi, ABIS_LINK_EV_SIGN_LINK_DOWN, NULL); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I15063f0156ed8910795cd5ffe045e2d0cbca6276 Gerrit-Change-Number: 25567 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 Sep 23 21:02:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 21:02:08 +0000 Subject: Change in osmo-bts[master]: osmo-bts-omldummy: Fix crash accessing null phy In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25565 ) Change subject: osmo-bts-omldummy: Fix crash accessing null phy ...................................................................... osmo-bts-omldummy: Fix crash accessing null phy osmo-bts-omldummy is known to be specially in the sense that it has no phy. This should ideally be changed to have some dummy object, but so far that's how it is. A recent commit checking the phy's forgot about the fact that BTS model has no phy. Let's fix it. Fixes: 4ddc37ce7140e5ce6ca6cce5aeeefedc0d395d22 Change-Id: Iba7873530aac74b3bf799819890641196dacf170 --- M src/common/nm_bts_fsm.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, approved diff --git a/src/common/nm_bts_fsm.c b/src/common/nm_bts_fsm.c index bad533f..0ad7655 100644 --- a/src/common/nm_bts_fsm.c +++ b/src/common/nm_bts_fsm.c @@ -72,6 +72,8 @@ oml_mo_tx_sw_act_rep(&bts->mo); llist_for_each_entry(trx, &bts->trx_list, list) { + if (trx->bts->variant == BTS_OSMO_OMLDUMMY) /* In OMLDUMMY, phy=NULL */ + continue; /* During startup, phy_links are already opened, but if we are * re-connecting, phy_link was closed when disconnected from * previous BSC, so let's re-open it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Iba7873530aac74b3bf799819890641196dacf170 Gerrit-Change-Number: 25565 Gerrit-PatchSet: 2 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 Thu Sep 23 21:02:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 23 Sep 2021 21:02:29 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... Patch Set 1: Letting @fixeria take care of this one. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 23 Sep 2021 21:02: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 Fri Sep 24 10:05:55 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 10:05:55 +0000 Subject: Change in libosmocore[2021q1]: gsm0503_coding: use ahs tables when encoding ahs codec id References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25569 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... gsm0503_coding: use ahs tables when encoding ahs codec id The encoder function gsm0503_tch_ahs_encode uses gsm0503_afs_ic_ubit when encoding the CMR or FT (depends on the frame number). This is not correct. It should use gsm0503_ahs_ic_ubit instead. Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Related: SYS#5549 --- M src/coding/gsm0503_coding.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/25569/1 diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c index 1bec56e..9c189cd 100644 --- a/src/coding/gsm0503_coding.c +++ b/src/coding/gsm0503_coding.c @@ -3007,7 +3007,7 @@ return -1; } - memcpy(cB, gsm0503_afs_ic_ubit[id], 4); + memcpy(cB, gsm0503_ahs_ic_ubit[id], 4); gsm0503_tch_hr_interleave(cB, iB); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: 2021q1 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25569 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 10:06:01 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 10:06:01 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: do not use cmr as ft References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25570 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... sched_lchan_tch_x: do not use cmr as ft CMR and FT are updated each time an AMR voice frame is received from the radio interface. The transmission phase decides whether the voice frame contains CMR or FT. The code follows the transmission phase and keeps ul_cmr and ul_ft up to date. In contrast to the AMR frames on the radio interface, an AMR RTP packet always contains the CMR and the FT value. When generating the RTP payloed, The present implementation uses the CMR in the position where the FT should be and the FT is ignored. This is not correct. Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/25570/1 diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index b1453dc..b3649cd 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -191,7 +191,7 @@ /* 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]; + ft = chan_state->codec[chan_state->ul_ft]; } else { /* SID frames will always get Frame Type Index 8 (AMR_SID) */ ft = AMR_SID; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 378d47a..0692f9d 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -215,7 +215,7 @@ /* 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]; + ft = chan_state->codec[chan_state->ul_ft]; } else { /* SID frames will always get Frame Type Index 8 (AMR_SID) */ ft = AMR_SID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25570 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 10:06:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 10:06:02 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25571 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... sched_lchan_tch_x: use functions to determine AMR tranmssion phase The AMR transmission phase directly depends on the frame number. The transmission phase is used to tell if a received AMR frame contains a CMI (frame type that is currently used) or CMR (frame type that the receiver should use) codec identifier. The formulas in the present implementation seem to be correct but they do not reflect the numbers in the spec very well, nor do they have unit-tests. Lets replace them with more readble functions and test those functions with unit-tests. Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Related: SYS#5549 --- M configure.ac M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c M src/osmo-bts-trx/sched_utils.h M tests/Makefile.am A tests/amr/Makefile.am A tests/amr/amr_test.c A tests/amr/amr_test.ok M tests/testsuite.at 9 files changed, 416 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/25571/1 diff --git a/configure.ac b/configure.ac index 2b5a316..7677ab1 100644 --- a/configure.ac +++ b/configure.ac @@ -393,6 +393,7 @@ tests/tx_power/Makefile tests/power/Makefile tests/meas/Makefile + tests/amr/Makefile doc/Makefile doc/examples/Makefile doc/manuals/Makefile diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index b3649cd..2202b48 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -66,6 +66,7 @@ uint16_t ber10k; uint8_t is_sub = 0; uint8_t ft; + bool amr_is_cmr; /* 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. */ @@ -131,6 +132,8 @@ * the first FN 4,13,21 defines that CMR is included in frame. * NOTE: A frame ends 7 FN after start. */ + fn_begin = gsm0502_fn_remap(bi->fn, FN_REMAP_TCH_F); + amr_is_cmr = !ul_amr_fn_is_cmi(fn_begin); /* The AFS_ONSET frame itself does not result into an RTP frame * since it only contains a recognition pattern that marks the @@ -146,8 +149,7 @@ * 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, + amr_is_cmr, 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 @@ -429,6 +431,7 @@ enum osmo_amr_type ft_codec; enum osmo_amr_quality bfi; int8_t sti, cmi; + bool amr_is_cmr = !dl_amr_fn_is_cmi(br->fn); if (rsl_cmode != RSL_CMOD_SPD_SPEECH) { LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, "Dropping speech frame, " @@ -473,7 +476,7 @@ "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) { + if (amr_is_cmr && 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; @@ -559,7 +562,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(br->fn), + msgb_l2len(msg_tch) - 2, !dl_amr_fn_is_cmi(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 0692f9d..b0a9082 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -73,6 +73,7 @@ uint8_t is_sub = 0; uint8_t ft; bool mask_stolen_tch_block = false; + bool fn_is_cmi; /* 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. */ @@ -166,10 +167,21 @@ break; } + /* Calculate the frame number where the block begins */ + if (bi->fn % 13 < 4) + fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 5); + else + fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 4); + if (lchan->nr == 0) + fn_begin = gsm0502_fn_remap(fn_tch_end, FN_REMAP_TCH_H0); + else + fn_begin = gsm0502_fn_remap(fn_tch_end, FN_REMAP_TCH_H1); + fn_is_cmi = ul_amr_fn_is_cmi(fn_begin); + /* 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, + fn_is_odd, !fn_is_cmi, chan_state->codec, chan_state->codecs, &chan_state->ul_ft, &chan_state->ul_cmr, &n_errors, &n_bits_total, &chan_state->amr_last_dtx); @@ -349,7 +361,6 @@ fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 5); else fn_tch_end = GSM_TDMA_FN_SUB(bi->fn, 4); - if (lchan->nr == 0) fn_begin = gsm0502_fn_remap(fn_tch_end, FN_REMAP_TCH_H0); else @@ -443,7 +454,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(br->fn), + msgb_l2len(msg_tch) - 2, !dl_amr_fn_is_cmi(br->fn), chan_state->codec, chan_state->codecs, chan_state->dl_ft, chan_state->dl_cmr); diff --git a/src/osmo-bts-trx/sched_utils.h b/src/osmo-bts-trx/sched_utils.h index 4a1aaf5..f76e49b 100644 --- a/src/osmo-bts-trx/sched_utils.h +++ b/src/osmo-bts-trx/sched_utils.h @@ -23,6 +23,8 @@ #include #include +#include +#include extern void *tall_bts_ctx; @@ -35,8 +37,76 @@ 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) +/*! determine whether an uplink AMR block is CMI according to 3GPP TS 45.009. + * \param[in] fn_begin frame number of the beginning of the block. + * \returns true in case of CMI; false otherwise. */ +static inline bool ul_amr_fn_is_cmi(uint32_t fn_begin) { - return (((fn + 4) % 26) >> 2) & 1; + switch (fn_begin % 26) { + /*! See also: 3GPP TS 45.009, section 3.2.1.3 Transmitter/Receiver Synchronisation */ + /* valid for AHS subslot 0 and AFS: */ + case 0: + case 8: + case 17: + /* valid for AHS subslot 1: */ + case 1: + case 9: + case 18: + return true; + break; + /* Complementary values for sanity check */ + /* valid for AHS subslot 0 and AFS: */ + case 4: + case 13: + case 21: + /* valid for AHS subslot 1: */ + case 5: + case 14: + case 22: + return false; + break; + default: + LOGP(DL1P, LOGL_DEBUG, + "uplink frame number fn_begin=%u does not mark the beginning of a voice block!\n", fn_begin); + OSMO_ASSERT(false); + return false; + break; + } +} + +/*! determine the whether a downlink AMR block is CMI according to 3GPP TS 45.009. + * \param[in] fn_begin frame number of the beginning of the block. + * \returns true in case of CMI; false otherwise. */ +static inline bool dl_amr_fn_is_cmi(uint32_t fn_begin) +{ + switch (fn_begin % 26) { + /*! See also: 3GPP TS 45.009, section 3.2.1.3 Transmitter/Receiver Synchronisation */ + /* valid for AHS subslot 0 and AFS: */ + case 4: + case 13: + case 21: + /* valid for AHS subslot 1: */ + case 5: + case 14: + case 22: + return true; + break; + /* Complementary values for sanity check */ + /* valid for AHS subslot 0 and AFS: */ + case 0: + case 8: + case 17: + /* valid for AHS subslot 1: */ + case 1: + case 9: + case 18: + return false; + break; + default: + LOGP(DL1P, LOGL_DEBUG, + "downlink frame number fn_begin=%u does not mark the beginning of a voice block!\n", fn_begin); + OSMO_ASSERT(false); + return false; + break; + } } diff --git a/tests/Makefile.am b/tests/Makefile.am index 57687ee..60d7101 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = paging cipher agch misc handover tx_power power meas ta_control +SUBDIRS = paging cipher agch misc handover tx_power power meas ta_control amr if ENABLE_SYSMOBTS SUBDIRS += sysmobts diff --git a/tests/amr/Makefile.am b/tests/amr/Makefile.am new file mode 100644 index 0000000..dc0f1b8 --- /dev/null +++ b/tests/amr/Makefile.am @@ -0,0 +1,11 @@ +AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include +AM_CFLAGS = -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOCODEC_CFLAGS) \ + $(LIBOSMOABIS_CFLAGS) $(LIBOSMOTRAU_CFLAGS) +LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMOCODEC_LIBS) \ + $(LIBOSMOABIS_LIBS) $(LIBOSMOTRAU_LIBS) +noinst_PROGRAMS = amr_test +EXTRA_DIST = amr_test.ok + +misc_test_SOURCES = amr_test.c +misc_test_LDADD = $(top_builddir)/src/common/libbts.a \ + $(LDADD) diff --git a/tests/amr/amr_test.c b/tests/amr/amr_test.c new file mode 100644 index 0000000..4efbf40 --- /dev/null +++ b/tests/amr/amr_test.c @@ -0,0 +1,151 @@ +/* (C) 2021 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU 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 "../../src/osmo-bts-trx/sched_utils.h" + +struct amr_cmi_test_data { + /* Frame number that marks the beginning of the voice block */ + uint32_t gsm_fn; + /* In uplink: True, when the voice block is a CMI block, false otherwise. */ + /* In downlink: False, when the voice block is a CMI block, true otherwise. */ + bool is_cmi; +}; + +/* The behavior of AHS in subslot 0 and AFS is the same */ +static const struct amr_cmi_test_data testvec_ahs_h0_and_afs[] = { + { 0, true }, + { 4, false }, + { 8, true }, + { 13, false }, + { 17, true }, + { 21, false }, + { 26, true }, + { 30, false }, + { 34, true }, + { 39, false }, + { 43, true }, + { 47, false }, + { 52, true }, + { 56, false }, + { 60, true }, + { 65, false }, + { 69, true }, + { 73, false }, + { 78, true }, + { 82, false }, + { 86, true }, + { 91, false }, + { 95, true }, + { 99, false }, +}; + +static const struct amr_cmi_test_data testvec_ahs_h1[] = { + { 1, true }, + { 5, false }, + { 9, true }, + { 14, false }, + { 18, true }, + { 22, false }, + { 27, true }, + { 31, false }, + { 35, true }, + { 40, false }, + { 44, true }, + { 48, false }, + { 53, true }, + { 57, false }, + { 61, true }, + { 66, false }, + { 70, true }, + { 74, false }, + { 79, true }, + { 83, false }, + { 87, true }, + { 92, false }, + { 96, true }, + { 100, false }, +}; + +static void test_amr_cmi_sched(void) +{ + unsigned int i; + bool res; + + printf("AMR transmission phase (CMI) in relation to GSM FN:\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = ul_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Uplink, AMR AHS on HR subslot 0: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == testvec_ahs_h0_and_afs[i].is_cmi); + } + + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = dl_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Downlink, AMR AHS on HR subslot 0: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == !testvec_ahs_h0_and_afs[i].is_cmi); + } + + printf("\n"); + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h1); i++) { + res = ul_amr_fn_is_cmi(testvec_ahs_h1[i].gsm_fn); + printf("Uplink, AMR AHS on HR subslot 1: fn_begin=%u, CMI=%u\n", testvec_ahs_h1[i].gsm_fn, res); + OSMO_ASSERT(res == testvec_ahs_h1[i].is_cmi); + } + + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h1); i++) { + res = dl_amr_fn_is_cmi(testvec_ahs_h1[i].gsm_fn); + printf("Downlink, AMR AHS on HR subslot 1: fn_begin=%u, CMI=%u\n", testvec_ahs_h1[i].gsm_fn, res); + OSMO_ASSERT(res == !testvec_ahs_h1[i].is_cmi); + } + + printf("\n"); + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = ul_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Uplink, AMR AFS: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == testvec_ahs_h0_and_afs[i].is_cmi); + } + + printf("\n"); + + for (i = 0; i < ARRAY_SIZE(testvec_ahs_h0_and_afs); i++) { + res = dl_amr_fn_is_cmi(testvec_ahs_h0_and_afs[i].gsm_fn); + printf("Downlink, AMR AFS: fn_begin=%u, CMI=%u\n", testvec_ahs_h0_and_afs[i].gsm_fn, res); + OSMO_ASSERT(res == !testvec_ahs_h0_and_afs[i].is_cmi); + } +} + +int main(int argc, char **argv) +{ + + test_amr_cmi_sched(); + return EXIT_SUCCESS; +} diff --git a/tests/amr/amr_test.ok b/tests/amr/amr_test.ok new file mode 100644 index 0000000..ec1d1a0 --- /dev/null +++ b/tests/amr/amr_test.ok @@ -0,0 +1,152 @@ +AMR transmission phase (CMI) in relation to GSM FN: +Uplink, AMR AHS on HR subslot 0: fn_begin=0, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=4, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=8, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=13, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=17, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=21, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=26, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=30, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=34, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=39, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=43, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=47, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=52, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=56, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=60, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=65, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=69, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=73, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=78, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=82, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=86, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=91, CMI=0 +Uplink, AMR AHS on HR subslot 0: fn_begin=95, CMI=1 +Uplink, AMR AHS on HR subslot 0: fn_begin=99, CMI=0 + +Downlink, AMR AHS on HR subslot 0: fn_begin=0, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=4, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=8, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=13, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=17, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=21, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=26, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=30, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=34, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=39, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=43, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=47, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=52, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=56, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=60, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=65, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=69, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=73, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=78, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=82, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=86, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=91, CMI=1 +Downlink, AMR AHS on HR subslot 0: fn_begin=95, CMI=0 +Downlink, AMR AHS on HR subslot 0: fn_begin=99, CMI=1 + + +Uplink, AMR AHS on HR subslot 1: fn_begin=1, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=5, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=9, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=14, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=18, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=22, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=27, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=31, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=35, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=40, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=44, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=48, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=53, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=57, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=61, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=66, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=70, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=74, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=79, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=83, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=87, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=92, CMI=0 +Uplink, AMR AHS on HR subslot 1: fn_begin=96, CMI=1 +Uplink, AMR AHS on HR subslot 1: fn_begin=100, CMI=0 + +Downlink, AMR AHS on HR subslot 1: fn_begin=1, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=5, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=9, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=14, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=18, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=22, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=27, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=31, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=35, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=40, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=44, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=48, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=53, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=57, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=61, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=66, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=70, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=74, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=79, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=83, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=87, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=92, CMI=1 +Downlink, AMR AHS on HR subslot 1: fn_begin=96, CMI=0 +Downlink, AMR AHS on HR subslot 1: fn_begin=100, CMI=1 + + +Uplink, AMR AFS: fn_begin=0, CMI=1 +Uplink, AMR AFS: fn_begin=4, CMI=0 +Uplink, AMR AFS: fn_begin=8, CMI=1 +Uplink, AMR AFS: fn_begin=13, CMI=0 +Uplink, AMR AFS: fn_begin=17, CMI=1 +Uplink, AMR AFS: fn_begin=21, CMI=0 +Uplink, AMR AFS: fn_begin=26, CMI=1 +Uplink, AMR AFS: fn_begin=30, CMI=0 +Uplink, AMR AFS: fn_begin=34, CMI=1 +Uplink, AMR AFS: fn_begin=39, CMI=0 +Uplink, AMR AFS: fn_begin=43, CMI=1 +Uplink, AMR AFS: fn_begin=47, CMI=0 +Uplink, AMR AFS: fn_begin=52, CMI=1 +Uplink, AMR AFS: fn_begin=56, CMI=0 +Uplink, AMR AFS: fn_begin=60, CMI=1 +Uplink, AMR AFS: fn_begin=65, CMI=0 +Uplink, AMR AFS: fn_begin=69, CMI=1 +Uplink, AMR AFS: fn_begin=73, CMI=0 +Uplink, AMR AFS: fn_begin=78, CMI=1 +Uplink, AMR AFS: fn_begin=82, CMI=0 +Uplink, AMR AFS: fn_begin=86, CMI=1 +Uplink, AMR AFS: fn_begin=91, CMI=0 +Uplink, AMR AFS: fn_begin=95, CMI=1 +Uplink, AMR AFS: fn_begin=99, CMI=0 + +Downlink, AMR AFS: fn_begin=0, CMI=0 +Downlink, AMR AFS: fn_begin=4, CMI=1 +Downlink, AMR AFS: fn_begin=8, CMI=0 +Downlink, AMR AFS: fn_begin=13, CMI=1 +Downlink, AMR AFS: fn_begin=17, CMI=0 +Downlink, AMR AFS: fn_begin=21, CMI=1 +Downlink, AMR AFS: fn_begin=26, CMI=0 +Downlink, AMR AFS: fn_begin=30, CMI=1 +Downlink, AMR AFS: fn_begin=34, CMI=0 +Downlink, AMR AFS: fn_begin=39, CMI=1 +Downlink, AMR AFS: fn_begin=43, CMI=0 +Downlink, AMR AFS: fn_begin=47, CMI=1 +Downlink, AMR AFS: fn_begin=52, CMI=0 +Downlink, AMR AFS: fn_begin=56, CMI=1 +Downlink, AMR AFS: fn_begin=60, CMI=0 +Downlink, AMR AFS: fn_begin=65, CMI=1 +Downlink, AMR AFS: fn_begin=69, CMI=0 +Downlink, AMR AFS: fn_begin=73, CMI=1 +Downlink, AMR AFS: fn_begin=78, CMI=0 +Downlink, AMR AFS: fn_begin=82, CMI=1 +Downlink, AMR AFS: fn_begin=86, CMI=0 +Downlink, AMR AFS: fn_begin=91, CMI=1 +Downlink, AMR AFS: fn_begin=95, CMI=0 +Downlink, AMR AFS: fn_begin=99, CMI=1 diff --git a/tests/testsuite.at b/tests/testsuite.at index ba5a409..f2d17fb 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -63,3 +63,9 @@ cat $abs_srcdir/ta_control/ta_control_test.ok > expout AT_CHECK([$abs_top_builddir/tests/ta_control/ta_control_test], [], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([amr]) +AT_KEYWORDS([amr]) +cat $abs_srcdir/amr/amr_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/amr/amr_test], [], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25571 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 10:06:02 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 10:06:02 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25572 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame All generated RTP that originates from the BTS relates to uplink. When generating AMR BAD frame RTP packets, we must use ul_cmr/ul_ft and not dl_cmr/dl_ft. Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/25572/1 diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 2202b48..698e4a6 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -282,8 +282,8 @@ 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], + chan_state->codec[chan_state->ul_cmr], + chan_state->codec[chan_state->ul_ft], AMR_BAD); if (rc < 2) { LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index b0a9082..125d346 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -323,8 +323,8 @@ 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], + chan_state->codec[chan_state->ul_cmr], + chan_state->codec[chan_state->ul_ft], AMR_BAD); if (rc < 2) { LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25572 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 10:09:20 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 24 Sep 2021 10:09:20 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25572 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25572 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: dexter Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 24 Sep 2021 10:09: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 Sep 24 10:09:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 24 Sep 2021 10:09:54 +0000 Subject: Change in libosmocore[2021q1]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25569 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: 2021q1 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25569 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 24 Sep 2021 10:09: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 Sep 24 10:12:34 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 24 Sep 2021 10:12:34 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25570 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25570 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 24 Sep 2021 10:12:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 11:59:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 24 Sep 2021 11:59:29 +0000 Subject: Change in libosmocore[2021q1]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25569 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... Patch Set 1: Code-Review+2 Can we also back-port this patch to -latest? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: 2021q1 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25569 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 24 Sep 2021 11:59:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:10:48 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 12:10:48 +0000 Subject: Change in libosmocore[osmith/1.5.2]: gsm0503_coding: use ahs tables when encoding ahs codec id References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25573 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... gsm0503_coding: use ahs tables when encoding ahs codec id The encoder function gsm0503_tch_ahs_encode uses gsm0503_afs_ic_ubit when encoding the CMR or FT (depends on the frame number). This is not correct. It should use gsm0503_ahs_ic_ubit instead. Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Related: SYS#5549 --- M src/coding/gsm0503_coding.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/25573/1 diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c index 1bec56e..9c189cd 100644 --- a/src/coding/gsm0503_coding.c +++ b/src/coding/gsm0503_coding.c @@ -3007,7 +3007,7 @@ return -1; } - memcpy(cB, gsm0503_afs_ic_ubit[id], 4); + memcpy(cB, gsm0503_ahs_ic_ubit[id], 4); gsm0503_tch_hr_interleave(cB, iB); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25573 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:10:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 12:10:49 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bosmith/1=2E5=2E2=5D=3A_Bump_version=3A_1=2E5=2E1=2E1-6be7_=E2=86=92_1=2E5=2E2?= References: Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25574 ) Change subject: Bump version: 1.5.1.1-6be7 ? 1.5.2 ...................................................................... Bump version: 1.5.1.1-6be7 ? 1.5.2 Change-Id: I18dee970409b16a9a30eb0c2206c4ef3a7b00cd3 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/25574/1 diff --git a/debian/changelog b/debian/changelog index 8fffac5..9e01de8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libosmocore (1.5.2) unstable; urgency=medium + + [ Philipp Maier ] + * gsm0503_coding: use ahs tables when encoding ahs codec id + + -- Oliver Smith Fri, 24 Sep 2021 14:09:53 +0200 + libosmocore (1.5.1) unstable; urgency=medium [ Pau Espin Pedrol ] -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: I18dee970409b16a9a30eb0c2206c4ef3a7b00cd3 Gerrit-Change-Number: 25574 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:11:15 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 12:11:15 +0000 Subject: Change in libosmocore[2021q1]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25569 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... Patch Set 1: > Patch Set 1: Code-Review+2 > > Can we also back-port this patch to -latest? Yep: * https://gerrit.osmocom.org/c/libosmocore/+/25573 * https://gerrit.osmocom.org/c/libosmocore/+/25574 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: 2021q1 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25569 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 24 Sep 2021 12:11: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 Fri Sep 24 12:18:33 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 12:18:33 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase In-Reply-To: References: Message-ID: osmith has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25571 ) Change subject: sched_lchan_tch_x: use functions to determine AMR tranmssion phase ...................................................................... Abandoned the backport is incomplete, it doesn't build. as discussed with Philipp, this is just refactoring and doesn't fix bugs, we don't need to backport it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I94a934a6b3b397b4cd0e9da3577325de58814335 Gerrit-Change-Number: 25571 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:25:53 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 12:25:53 +0000 Subject: Change in libosmocore[osmith/1.5.2]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25573 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25573 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 24 Sep 2021 12:25:53 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:27:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 12:27:10 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25572 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25572 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 24 Sep 2021 12:27:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:27:38 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 12:27:38 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bosmith/1=2E5=2E2=5D=3A_Bump_version=3A_1=2E5=2E1=2E1-6be7_=E2=86=92_1=2E5=2E2?= In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25574 ) Change subject: Bump version: 1.5.1.1-6be7 ? 1.5.2 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: I18dee970409b16a9a30eb0c2206c4ef3a7b00cd3 Gerrit-Change-Number: 25574 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 24 Sep 2021 12:27:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 12:28:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 12:28:30 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25570 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25570 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Comment-Date: Fri, 24 Sep 2021 12:28:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 13:08:28 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 13:08:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone IF the BSS-BVC is gone gbproxy blocks the BVC towards the SGSN (this is the only thing it can do since there is no BVC-REMOVE). If the SGSN ever decides to reset that BVC the gbproxy should not ACK it, but instead consider the BVCI unknown. Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Related: SYS#5628, OS#5236 --- M gbproxy/GBProxy_Tests.ttcn M library/BSSGP_Emulation.ttcnpp 2 files changed, 40 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/25575/1 diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 035a47d..fa1e956 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1158,6 +1158,21 @@ setverdict(pass); } +private function f_disable_ns_pcu(integer pcu_idx) runs on test_CT +{ + var integer i; + + connect(self:NS_CTRL, g_pcu[pcu_idx].vc_NS:NS_CTRL); + for (i := 0; i < lengthof(mp_nsconfig_pcu[pcu_idx].nsvc); i := i + 1) { + var uint16_t nsvci := mp_nsconfig_pcu[pcu_idx].nsvc[i].nsvci; + var NsDisableVcRequest tx_disar; + tx_disar.nsvci := nsvci; + log(tx_disar); + NS_CTRL.send(tx_disar); + } + disconnect(self:NS_CTRL, g_pcu[pcu_idx].vc_NS:NS_CTRL); +} + testcase TC_ul_unitdata_pool_failure() runs on test_CT { var integer i; @@ -2708,11 +2723,32 @@ setverdict(pass); } /* Send a BVC-RESET for a PTP BVC from the SGSN side: expect it to propagate */ -testcase TC_bvc_reset_ptp_from_sgsn() runs on test_CT +testcase TC_bvc_reset_ptp_from_sgsn() runs on GlobalTest_CT { f_init(); + f_global_init(); f_sleep(3.0); f_reset_ptp_bvc_from_sgsn(0, 0); + /* Make sure NS for BVC is down and try again */ + log("Disabling BSS NSE"); + f_disable_ns_pcu(0); + f_sleep(10.0); + var BssgpBvcConfig bvc_cfg := g_pcu[0].cfg.bvc[0]; + SGSN_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to f_get_sgsn_bvc_ct(0, bvc_cfg.bvci); + + /* Check for NS-STATUS with BVCI unknown, ignore other messages */ + var template (present) PDU_BSSGP exp_rx := + tr_BSSGP_STATUS(bvc_cfg.bvci, BSSGP_CAUSE_BVCI_UNKNOWN, ?); + + alt { + [] G_SGSN[0].receive(exp_rx) { + setverdict(pass); + } + [] G_SGSN[0].receive { + repeat; + } + } + f_cleanup(); } diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 593abd8..8d27fd1 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -323,7 +323,9 @@ /* Messages with BVCI = 0 (Signaling) in BVCI field of NS */ [] BSCP.receive(f_BnsUdInd(tr_GLOBAL_SIG, 0)) -> value udi { - GLOBAL.send(udi.bssgp); + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } } [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { if (RIM.checkstate("Connected")) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 13:39:30 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 24 Sep 2021 13:39:30 +0000 Subject: Change in libosmocore[osmith/1.5.2]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25573 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25573 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 24 Sep 2021 13:39:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 13:40:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 24 Sep 2021 13:40:36 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bosmith/1=2E5=2E2=5D=3A_Bump_version=3A_1=2E5=2E1=2E1-6be7_=E2=86=92_1=2E5=2E2?= In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25574 ) Change subject: Bump version: 1.5.1.1-6be7 ? 1.5.2 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: I18dee970409b16a9a30eb0c2206c4ef3a7b00cd3 Gerrit-Change-Number: 25574 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Fri, 24 Sep 2021 13:40: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 Sep 24 13:55:52 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 13:55:52 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 ) Change subject: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK ...................................................................... gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK If we keep the bvc around the SGSN could send a BVC-RESET which the gbproxy would ACK. This will reestablish the BVC only between the gbproxy and SGSN which can lead to all sorts of issues. With this patch the gbproxy will respond with a BVC-STATUS cause BVCI unknown. Related: SYS#5628 Fixes: OS#5236 Change-Id: Ib14be6425a81b43353708b2708f79e035e501079 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/76/25576/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 94ac4a3..be075d6 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1627,6 +1627,7 @@ /* Block BVC, indicate BSS equipment failure */ uint8_t cause = BSSGP_CAUSE_EQUIP_FAIL; osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); + gbproxy_bvc_free(sgsn_bvc); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ib14be6425a81b43353708b2708f79e035e501079 Gerrit-Change-Number: 25576 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 14:18:12 2021 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Fri, 24 Sep 2021 14:18:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 1: would be great to add a 2nd test case for this. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 24 Sep 2021 14: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 Fri Sep 24 14:35:05 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 14:35:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 to look at the new patch set (#2). Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone IF the BSS-BVC is gone gbproxy blocks the BVC towards the SGSN (this is the only thing it can do since there is no BVC-REMOVE). If the SGSN ever decides to reset that BVC the gbproxy should not ACK it, but instead consider the BVCI unknown. Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Related: SYS#5628, OS#5236 --- M gbproxy/GBProxy_Tests.ttcn M library/BSSGP_Emulation.ttcnpp 2 files changed, 49 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/25575/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 14:39:49 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 14:39:49 +0000 Subject: Change in libosmocore[osmith/1.5.2]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25573 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... gsm0503_coding: use ahs tables when encoding ahs codec id The encoder function gsm0503_tch_ahs_encode uses gsm0503_afs_ic_ubit when encoding the CMR or FT (depends on the frame number). This is not correct. It should use gsm0503_ahs_ic_ubit instead. Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Related: SYS#5549 --- M src/coding/gsm0503_coding.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c index 1bec56e..9c189cd 100644 --- a/src/coding/gsm0503_coding.c +++ b/src/coding/gsm0503_coding.c @@ -3007,7 +3007,7 @@ return -1; } - memcpy(cB, gsm0503_afs_ic_ubit[id], 4); + memcpy(cB, gsm0503_ahs_ic_ubit[id], 4); gsm0503_tch_hr_interleave(cB, iB); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25573 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 14:39:50 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 14:39:50 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bosmith/1=2E5=2E2=5D=3A_Bump_version=3A_1=2E5=2E1=2E1-6be7_=E2=86=92_1=2E5=2E2?= In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25574 ) Change subject: Bump version: 1.5.1.1-6be7 ? 1.5.2 ...................................................................... Bump version: 1.5.1.1-6be7 ? 1.5.2 Change-Id: I18dee970409b16a9a30eb0c2206c4ef3a7b00cd3 --- M debian/changelog 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog index 8fffac5..9e01de8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libosmocore (1.5.2) unstable; urgency=medium + + [ Philipp Maier ] + * gsm0503_coding: use ahs tables when encoding ahs codec id + + -- Oliver Smith Fri, 24 Sep 2021 14:09:53 +0200 + libosmocore (1.5.1) unstable; urgency=medium [ Pau Espin Pedrol ] -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: osmith/1.5.2 Gerrit-Change-Id: I18dee970409b16a9a30eb0c2206c4ef3a7b00cd3 Gerrit-Change-Number: 25574 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 14:48:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 14:48:22 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: do not use cmr as ft In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25570 ) Change subject: sched_lchan_tch_x: do not use cmr as ft ...................................................................... sched_lchan_tch_x: do not use cmr as ft CMR and FT are updated each time an AMR voice frame is received from the radio interface. The transmission phase decides whether the voice frame contains CMR or FT. The code follows the transmission phase and keeps ul_cmr and ul_ft up to date. In contrast to the AMR frames on the radio interface, an AMR RTP packet always contains the CMR and the FT value. When generating the RTP payloed, The present implementation uses the CMR in the position where the FT should be and the FT is ignored. This is not correct. Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index b1453dc..b3649cd 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -191,7 +191,7 @@ /* 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]; + ft = chan_state->codec[chan_state->ul_ft]; } else { /* SID frames will always get Frame Type Index 8 (AMR_SID) */ ft = AMR_SID; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 378d47a..0692f9d 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -215,7 +215,7 @@ /* 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]; + ft = chan_state->codec[chan_state->ul_ft]; } else { /* SID frames will always get Frame Type Index 8 (AMR_SID) */ ft = AMR_SID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: I6bb10ff3c76f67b9830787497653b546cf27fe8e Gerrit-Change-Number: 25570 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 14:48:22 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 14:48:22 +0000 Subject: Change in osmo-bts[2021q1]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25572 ) Change subject: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame ...................................................................... sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame All generated RTP that originates from the BTS relates to uplink. When generating AMR BAD frame RTP packets, we must use ul_cmr/ul_ft and not dl_cmr/dl_ft. Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Related: SYS#5549 --- M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved dexter: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index b3649cd..267ca08 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -280,8 +280,8 @@ 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], + chan_state->codec[chan_state->ul_cmr], + chan_state->codec[chan_state->ul_ft], AMR_BAD); if (rc < 2) { LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index 0692f9d..8bde7d4 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -311,8 +311,8 @@ 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], + chan_state->codec[chan_state->ul_cmr], + chan_state->codec[chan_state->ul_ft], AMR_BAD); if (rc < 2) { LOGL1S(DL1P, LOGL_ERROR, l1t, bi->tn, chan, bi->fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: 2021q1 Gerrit-Change-Id: Ifa009819791cf7df2dd8201f442b0dae06f622a4 Gerrit-Change-Number: 25572 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 14:48:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 14:48:40 +0000 Subject: Change in libosmocore[2021q1]: gsm0503_coding: use ahs tables when encoding ahs codec id In-Reply-To: References: Message-ID: osmith has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25569 ) Change subject: gsm0503_coding: use ahs tables when encoding ahs codec id ...................................................................... gsm0503_coding: use ahs tables when encoding ahs codec id The encoder function gsm0503_tch_ahs_encode uses gsm0503_afs_ic_ubit when encoding the CMR or FT (depends on the frame number). This is not correct. It should use gsm0503_ahs_ic_ubit instead. Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Related: SYS#5549 --- M src/coding/gsm0503_coding.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved fixeria: Looks good to me, approved diff --git a/src/coding/gsm0503_coding.c b/src/coding/gsm0503_coding.c index 1bec56e..9c189cd 100644 --- a/src/coding/gsm0503_coding.c +++ b/src/coding/gsm0503_coding.c @@ -3007,7 +3007,7 @@ return -1; } - memcpy(cB, gsm0503_afs_ic_ubit[id], 4); + memcpy(cB, gsm0503_ahs_ic_ubit[id], 4); gsm0503_tch_hr_interleave(cB, iB); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: 2021q1 Gerrit-Change-Id: Id250b2102ac79ff222bd3ad9d1abc4b60abdd12b Gerrit-Change-Number: 25569 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 15:02:40 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 24 Sep 2021 15:02:40 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK Don't answer with STATUS if the BVC referred to by the BLOCK_ACK is unknown. This can happen when the BSS BVC disappears and the gbproxy blocks and then removes the corresponding BVC at the SGSN. Related: SYS#5628. OS#5236 Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/77/25577/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index be075d6..37ccc11 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1375,7 +1375,7 @@ bvci = ntohs(tlvp_val16_unal(&tp[0], BSSGP_IE_BVCI)); sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); if (!sgsn_bvc) - goto err_no_bvc; + break; rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_BLOCK_ACK, msg); break; case BSSGP_PDUT_BVC_UNBLOCK_ACK: -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 16:01:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 16:01:35 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 ) Change subject: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ib14be6425a81b43353708b2708f79e035e501079 Gerrit-Change-Number: 25576 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 24 Sep 2021 16:01: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 Sep 24 16:13:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 16:13:37 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG at 12 PS1, Line 12: why should it not "goto err_no_bvc" instead? and why still use that for other code paths? https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c at 1378 PS1, Line 1378: break; should it log an error here and/or increase the rate counter? -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Fri, 24 Sep 2021 16:13:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 16:20:35 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 24 Sep 2021 16:20:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575/2/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575/2/gbproxy/GBProxy_Tests.ttcn at 2743 PS2, Line 2743: f_sleep(10.0); maybe we can avoid the long sleep by configuring a timer to be short at the start of the test? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575/2/gbproxy/GBProxy_Tests.ttcn at 2752 PS2, Line 2752: alt { Without timeout, the test may hang here forever IIRC -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Fri, 24 Sep 2021 16:20:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 18:39:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Fri, 24 Sep 2021 18:39:20 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25578 ) Change subject: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL ...................................................................... osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL In functions responsible for Downlink burst scheduling, it may happen that the buffer, containing a complete set of to be transmitted bursts, a) is not yet allocated or b) was de-allocated intentionally. In this case, we return early to avoid NULL pointer dereference. The returned value is then checked against 0 in _sched_dl_burst(). Returning 0 makes _sched_dl_burst() apply per-burst attenuation, as well as the A5/x encryption (if enabled). And this makes no sense in either of the cases mentioned above. Moreover, in the BCCH power reduction mode, this causes some bursts (bid > 0) of idle PDTCH/PTCCH blocks to be transmitted at full power, breaking the energy saving feature. Change-Id: I18aa73cc950fdfac030b63f7a434a71b4596095d Related: SYS#4919 --- 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 4 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/78/25578/1 diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 335ba6f..17523e1 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -155,7 +155,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 4bd0756..85fe207 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -514,7 +514,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index a582f92..a1ed996 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -395,7 +395,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index 4bfc101..e2baefd 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -176,7 +176,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18aa73cc950fdfac030b63f7a434a71b4596095d Gerrit-Change-Number: 25578 Gerrit-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 Sep 24 19:20:31 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Fri, 24 Sep 2021 19:20:31 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL In-Reply-To: References: Message-ID: Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25578 ) Change subject: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18aa73cc950fdfac030b63f7a434a71b4596095d Gerrit-Change-Number: 25578 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Fri, 24 Sep 2021 19:20:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 19:49:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 24 Sep 2021 19:49:26 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 ) Change subject: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ib14be6425a81b43353708b2708f79e035e501079 Gerrit-Change-Number: 25576 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 24 Sep 2021 19:49:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Sep 24 19:51:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Fri, 24 Sep 2021 19:51:42 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG at 12 PS1, Line 12: > why should it not "goto err_no_bvc" instead? [?] I think unsolicited ACKs are typically ignored by many protocols. After all, they are notifying us about somethign we are not (or no longer) interested in. Not sure what the BSSGP spec says about it, but I could imagine that unsoliciated ACKs are to be ignored. https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c at 1378 PS1, Line 1378: break; > should it log an error here and/or increase the rate counter? it is indeed a bit inconsistent that an UNBLOCK_ACK or RESET_ACK are now handled significantly different than a BLOCK_ACK... -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Fri, 24 Sep 2021 19:51:42 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 06:24:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 06:24:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25578 ) Change subject: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18aa73cc950fdfac030b63f7a434a71b4596095d Gerrit-Change-Number: 25578 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 06:24:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 06:24:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 06:24:31 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25578 ) Change subject: osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL ...................................................................... osmo-bts-trx: return -ENODEV if 'bursts_p' is NULL In functions responsible for Downlink burst scheduling, it may happen that the buffer, containing a complete set of to be transmitted bursts, a) is not yet allocated or b) was de-allocated intentionally. In this case, we return early to avoid NULL pointer dereference. The returned value is then checked against 0 in _sched_dl_burst(). Returning 0 makes _sched_dl_burst() apply per-burst attenuation, as well as the A5/x encryption (if enabled). And this makes no sense in either of the cases mentioned above. Moreover, in the BCCH power reduction mode, this causes some bursts (bid > 0) of idle PDTCH/PTCCH blocks to be transmitted at full power, breaking the energy saving feature. Change-Id: I18aa73cc950fdfac030b63f7a434a71b4596095d Related: SYS#4919 --- 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 4 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Hoernchen: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c index 335ba6f..17523e1 100644 --- a/src/osmo-bts-trx/sched_lchan_pdtch.c +++ b/src/osmo-bts-trx/sched_lchan_pdtch.c @@ -155,7 +155,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 4bd0756..85fe207 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -514,7 +514,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index a582f92..a1ed996 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -395,7 +395,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } diff --git a/src/osmo-bts-trx/sched_lchan_xcch.c b/src/osmo-bts-trx/sched_lchan_xcch.c index 4bfc101..e2baefd 100644 --- a/src/osmo-bts-trx/sched_lchan_xcch.c +++ b/src/osmo-bts-trx/sched_lchan_xcch.c @@ -176,7 +176,7 @@ /* send burst, if we already got a frame */ if (br->bid > 0) { if (!*bursts_p) - return 0; + return -ENODEV; goto send_burst; } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I18aa73cc950fdfac030b63f7a434a71b4596095d Gerrit-Change-Number: 25578 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 06:25:06 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 06:25:06 +0000 Subject: =?UTF-8?Q?Change_in_libosmocore=5Bfor-1=2E6=5D=3A_Bump_version=3A_1=2E5=2E1=2E132-d7948_=E2=86=92_1=2E6=2E0?= In-Reply-To: References: Message-ID: laforge has abandoned this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25468 ) Change subject: Bump version: 1.5.1.132-d7948 ? 1.6.0 ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: for-1.6 Gerrit-Change-Id: If6692b83da904499882fefc612e3196ac4d6cbe7 Gerrit-Change-Number: 25468 Gerrit-PatchSet: 1 Gerrit-Owner: laforge 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 Sep 25 06:57:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 25 Sep 2021 06:57:06 +0000 Subject: Change in osmo-bts[master]: l1sap: unify channel (de)activation/modification messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25579 ) Change subject: l1sap: unify channel (de)activation/modification messages ...................................................................... l1sap: unify channel (de)activation/modification messages LOGPLCHAN() prepends the contextual information for us, there is no need to print trx->nr again. Take a chance to apply some additional cosmetic changes, like fixing capital letter. Change-Id: Ia199d584c937eef4118c99af4523fd91b2e46107 --- M src/common/l1sap.c 1 file changed, 9 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/79/25579/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b9bc675..2ebd39a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -2040,7 +2040,7 @@ struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); int rc; - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "activating channel %s\n", rsl_chan_nr_str(chan_nr)); + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Activating channel %s\n", rsl_chan_nr_str(chan_nr)); lchan->s = trx->bts->radio_link_timeout.current; @@ -2073,8 +2073,8 @@ int l1sap_chan_rel(struct gsm_bts_trx *trx, uint8_t chan_nr) { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "deactivating channel chan_nr=%s trx=%d\n", - rsl_chan_nr_str(chan_nr), trx->nr); + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Deactivating channel %s\n", + rsl_chan_nr_str(chan_nr)); if (lchan->tch.dtx.dl_amr_fsm) { osmo_fsm_inst_free(lchan->tch.dtx.dl_amr_fsm); @@ -2089,8 +2089,8 @@ { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "deactivating sacch chan_nr=%s trx=%d\n", - rsl_chan_nr_str(chan_nr), trx->nr); + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Deactivating SACCH on channel %s\n", + rsl_chan_nr_str(chan_nr)); return l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_DEACTIVATE, 1); @@ -2098,8 +2098,10 @@ int l1sap_chan_modify(struct gsm_bts_trx *trx, uint8_t chan_nr) { - LOGP(DL1C, LOGL_INFO, "modifying channel chan_nr=%s trx=%d\n", - rsl_chan_nr_str(chan_nr), trx->nr); + struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); + + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Modifying channel %s\n", + rsl_chan_nr_str(chan_nr)); return l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_MODIFY, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia199d584c937eef4118c99af4523fd91b2e46107 Gerrit-Change-Number: 25579 Gerrit-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 Sep 25 06:57:06 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 25 Sep 2021 06:57:06 +0000 Subject: Change in osmo-bts[master]: gsm_lchan2chan_nr(): separate RSL specific variant of this API References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25580 ) Change subject: gsm_lchan2chan_nr(): separate RSL specific variant of this API ...................................................................... gsm_lchan2chan_nr(): separate RSL specific variant of this API The ip.access style dynamic timeslots are a bit special in a way that on the A-bis/RSL we always use the Channel Number value of TCH/F, even in PDCH mode. This is why gsm_lchan2chan_nr() would always return values corresponding to TCH/F for TCH/F_PDCH. This behavior is only acceptable in the context of RSL messages, while other parts of the code base may not work properly due to this trick. A good example is the scheduler in osmo-bts-trx, where we have to patch Channel Number value to make channel activation work. DPCU INFO pcu_sock.c:853 Activate request received: TRX=0 TS=5 DL1C INFO l1sap.c:2043 (bts=0,trx=0,ts=5,ss=0) Activating channel TCH/F on TS5 DL1C NOTICE scheduler.c:1097 (bts=0,trx=0,ts=5,ss=0) Activating PDTCH DL1C NOTICE scheduler.c:1097 (bts=0,trx=0,ts=5,ss=0) Activating PTCCH In the code branch responsible for channel deactivation, we somehow forgot to add the same workaround, so deactivation does not work: DL1C INFO l1sap.c:2076 (bts=0,trx=0,ts=5,ss=0) Deactivating channel TCH/F on TS5 DTRX INFO trx_if.c:255 phy0.0: Enqueuing TRX control command 'CMD NOHANDOVER 5 0' DRSL NOTICE rsl.c:1286 (bts=0,trx=0,ts=5,ss=0) (bts=0,trx=0,ts=5,ss=0) not sending REL ACK Because of that, TCH/F_PDCH timeslots actually remain active after deactivation, so the scheduler keeps producing L1SAP DATA.ind. DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DL1P ERROR l1sap.c:732 1583426/1194/00/29/14 No lchan for DATA MEAS IND (chan_nr=PDCH on TS5) DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DL1P ERROR l1sap.c:732 1583430/1194/04/33/18 No lchan for DATA MEAS IND (chan_nr=PDCH on TS5) DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message Instead of patching Channel Number in various places, let's rather make the RSL specific behavior configurable by having two variants of gsm_lchan2chan_nr(). Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Fixes: OS#5238 --- M include/osmo-bts/gsm_data.h M src/common/gsm_data.c M src/common/rsl.c 3 files changed, 37 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/80/25580/1 diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 9fe68d6..19689e5 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -568,6 +568,7 @@ } uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan); +uint8_t gsm_lchan2chan_nr_rsl(const struct gsm_lchan *lchan); uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, enum gsm_phys_chan_config as_pchan); diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index ee6e693..1525328 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -243,7 +243,7 @@ return chan_nr; } -uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan) +static uint8_t _gsm_lchan2chan_nr(const struct gsm_lchan *lchan, bool rsl) { uint8_t chan_nr; @@ -254,9 +254,14 @@ chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, lchan->ts->dyn.pchan_is); break; case GSM_PCHAN_TCH_F_PDCH: - /* For ip.access style dyn TS, we always want to use the chan_nr as if it was TCH/F. + /* For ip.access style dyn TS, on RSL we want to use the chan_nr as if it was TCH/F. * We're using custom PDCH ACT and DEACT messages that use the usual chan_nr values. */ - chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); + if (rsl) + chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); + else if (~lchan->ts->flags & TS_F_PDCH_ACTIVE) + chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); + else + chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_PDCH); break; default: chan_nr = gsm_pchan2chan_nr(lchan->ts->pchan, lchan->ts->nr, lchan->nr); @@ -271,6 +276,16 @@ return chan_nr; } +uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan) +{ + return _gsm_lchan2chan_nr(lchan, false); +} + +uint8_t gsm_lchan2chan_nr_rsl(const struct gsm_lchan *lchan) +{ + return _gsm_lchan2chan_nr(lchan, true); +} + uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, enum gsm_phys_chan_config as_pchan) { diff --git a/src/common/rsl.c b/src/common/rsl.c index 368590c..742270d 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -461,7 +461,7 @@ if (band < 0) continue; - msgb_v_put(nmsg, gsm_lchan2chan_nr(lchan)); + msgb_v_put(nmsg, gsm_lchan2chan_nr_rsl(lchan)); msgb_v_put(nmsg, (band & 0x07) << 5); } } @@ -1225,7 +1225,7 @@ /* 8.4.19 sending RF CHANnel RELease ACKnowledge */ int rsl_tx_rf_rel_ack(struct gsm_lchan *lchan) { - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); bool send_rel_ack; switch (lchan->rel_act_kind) { @@ -1314,7 +1314,7 @@ { struct gsm_time *gtime = get_time(lchan->ts->trx->bts); struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); uint8_t ie[2]; LOGP(DRSL, LOGL_NOTICE, "%s (ss=%d) %s Tx CHAN ACT ACK\n", @@ -1340,7 +1340,7 @@ int rsl_tx_hando_det(struct gsm_lchan *lchan, uint8_t *ho_delay) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "Sending HANDOver DETect\n"); @@ -1382,7 +1382,7 @@ return abis_bts_rsl_sendmsg(msg); } static int rsl_tx_chan_act_nack(struct gsm_lchan *lchan, uint8_t cause) { - return _rsl_tx_chan_act_nack(lchan->ts->trx, gsm_lchan2chan_nr(lchan), cause, lchan); + return _rsl_tx_chan_act_nack(lchan->ts->trx, gsm_lchan2chan_nr_rsl(lchan), cause, lchan); } /* Send an RSL Channel Activation Ack if cause is zero, a Nack otherwise. */ @@ -1403,7 +1403,7 @@ int rsl_tx_conn_fail(const struct gsm_lchan *lchan, uint8_t cause) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Sending Connection Failure: cause = 0x%02x\n", cause); @@ -2011,7 +2011,7 @@ } } - rsl_rll_push_l3(fake_msg, RSL_MT_DATA_IND, gsm_lchan2chan_nr(lchan), + rsl_rll_push_l3(fake_msg, RSL_MT_DATA_IND, gsm_lchan2chan_nr_rsl(lchan), link_id, 1); fake_msg->lchan = lchan; @@ -2146,7 +2146,7 @@ } static int rsl_tx_mode_modif_nack(struct gsm_lchan *lchan, uint8_t cause) { - return _rsl_tx_mode_modif_nack(lchan->ts->trx, gsm_lchan2chan_nr(lchan), cause, lchan); + return _rsl_tx_mode_modif_nack(lchan->ts->trx, gsm_lchan2chan_nr_rsl(lchan), cause, lchan); } @@ -2154,7 +2154,7 @@ static int rsl_tx_mode_modif_ack(struct gsm_lchan *lchan) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "Tx MODE MODIF ACK\n"); @@ -2432,7 +2432,7 @@ return -ENOMEM; /* 9.3.1 Channel Number */ - rsl_cch_push_hdr(msg, RSL_MT_CBCH_LOAD_IND, gsm_lchan2chan_nr(lchan)); + rsl_cch_push_hdr(msg, RSL_MT_CBCH_LOAD_IND, gsm_lchan2chan_nr_rsl(lchan)); /* 9.3.43 CBCH Load Information */ load_info = ((overflow & 1) << 7) | (amount & 0x0F); @@ -2494,7 +2494,7 @@ msgb_tv16_put(nmsg, RSL_IE_IPAC_CONN_ID, htons(lchan->abis_ip.conn_id)); rsl_add_rtp_stats(lchan, nmsg); msgb_tlv_put(nmsg, RSL_IE_CAUSE, 1, &cause); - rsl_ipa_push_hdr(nmsg, RSL_MT_IPAC_DLCX_IND, gsm_lchan2chan_nr(lchan)); + rsl_ipa_push_hdr(nmsg, RSL_MT_IPAC_DLCX_IND, gsm_lchan2chan_nr_rsl(lchan)); nmsg->trx = lchan->ts->trx; @@ -2506,7 +2506,7 @@ uint8_t orig_msgt) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); const char *name; struct in_addr ia; @@ -2554,7 +2554,7 @@ static int rsl_tx_ipac_dlcx_ack(struct gsm_lchan *lchan, int inc_conn_id) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "RSL Tx IPAC_DLCX_ACK\n"); @@ -2577,7 +2577,7 @@ uint8_t cause) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "RSL Tx IPAC_DLCX_NACK\n"); @@ -2603,7 +2603,7 @@ int inc_ipport, uint8_t orig_msgtype) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); /* FIXME: allocate new msgb and copy old over */ LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "RSL Tx IPAC_BIND_NACK\n"); @@ -2918,7 +2918,7 @@ static int rsl_tx_dyn_pdch_ack(struct gsm_lchan *lchan, bool pdch_act) { struct gsm_time *gtime = get_time(lchan->ts->trx->bts); - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); struct msgb *msg; uint8_t ie[2]; @@ -2947,7 +2947,7 @@ uint8_t cause) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Tx PDCH %s NACK (cause = 0x%02x)\n", pdch_act ? "ACT" : "DEACT", cause); @@ -3512,7 +3512,7 @@ { struct msgb *msg; uint8_t meas_res[16]; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); int res_valid = lchan->meas.flags & LC_UL_M_F_RES_VALID; struct gsm_bts *bts = lchan->ts->trx->bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Gerrit-Change-Number: 25580 Gerrit-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 Sep 25 06:57:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 25 Sep 2021 06:57:07 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25581 ) Change subject: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching ...................................................................... osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching Thanks to [1], there is no need to patch chan_nr for PDCH anymore. The upper layers are now expected to use the correct values. [1] I01680140c7201bf5284b278bceaea8ae01c122b2 Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Related: OS#5238 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 0 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/25581/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index f35c9ba..f3d8743 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -423,19 +423,6 @@ /* attempt to allocate an Error Concealment Unit instance, if available */ lchan->ecu_state = osmo_ecu_init(trx, lchan2ecu_codec(lchan)); - /* trx_chan_desc[] in scheduler.c uses the RSL_CHAN_OSMO_PDCH cbits - * (0xc0) to indicate the need for PDTCH and PTCCH SAPI activation. - * However, 0xc0 is a cbits pattern exclusively used for Osmocom style - * dyn TS (a non-standard RSL Chan Activ mod); hence, for IPA style dyn - * TS, the chan_nr will never reflect 0xc0 and we would omit the - * PDTCH,PTTCH SAPIs. To properly de-/activate the PDTCH SAPIs in - * scheduler.c, make sure the 0xc0 cbits are set for de-/activating PDTCH - * lchans, i.e. both Osmocom and IPA style dyn TS. (For Osmocom style dyn - * TS, the chan_nr typically already reflects 0xc0, while it doesn't for - * IPA style.) */ - if (lchan->type == GSM_LCHAN_PDTCH) - chan_nr = RSL_CHAN_OSMO_PDCH | (chan_nr & ~RSL_CHAN_NR_MASK); - /* activate dedicated channel */ trx_sched_set_lchan(lchan, chan_nr, LID_DEDIC, true); /* activate associated channel */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Gerrit-Change-Number: 25581 Gerrit-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 Sep 25 08:31:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 25 Sep 2021 08:31:57 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#3) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-bts/+/25284 ) Change subject: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH ...................................................................... osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH GSM/EDGE Evolution and Performance, Section 12.3 suggests Temporary Overpower as another solution to improve SACCH/FACCH performance in case of bad C/I. The idea here is that you increment the DL transmit power by 2..4dB only for FACCH/SACCH bursts, while keeping all voice bursts at the lower (normal) level as determined by BS power control. SACCH blocks can be recognized by the channel type, since they're always transmitted in specific frames of a multiframe. FACCH blocks, however, are not predictable and can substitute voice blocks at (almost) any time. Thus we need to mark FACCH bursts as such in the logical channel handlers (using TRX_BR_F_FACCH). Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Related: SYS#5319 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/main.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 6 files changed, 43 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/84/25284/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Gerrit-Change-Number: 25284 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 08:31:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 25 Sep 2021 08:31:57 +0000 Subject: Change in osmo-bts[master]: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY In-Reply-To: References: Message-ID: fixeria has uploaded a new patch set (#3) to the change originally created by dexter. ( https://gerrit.osmocom.org/c/osmo-bts/+/25285 ) Change subject: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY ...................................................................... rsl: parse temporary overpower value RSL CHAN ACT / MODIFY The temporary overpower value that is to be used with FACCH and SACCH is transferred using a proprietary RSL IE (RSL_IE_OSMO_TOP_ACCH_CAP). The parsed value is then stored in lchan->bs_acch_overpower_db so that it can be used. Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Related: SYS#5319 --- M src/common/rsl.c 1 file changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/85/25285/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Gerrit-Change-Number: 25285 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 08:31:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sat, 25 Sep 2021 08:31:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25602 ) Change subject: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() ...................................................................... osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() When I introduced this branch in change [1], I was under assumption that PDCHs never have an associated 'struct gsm_lchan'. This is incorrect: the association actually happens during PDCH activation, i.e. when osmo-pcu establishes connection over the PCUIF. Enforcing attenuation of 0 dB for other channel types makes no sense. [1] I3dcee6e910ccc61c5c63c728db9ea04327e2fc98 Change-Id: I77a839725f22be1be4a025f579c4c9ccdfb53460 --- M src/common/scheduler.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/02/25602/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 0826eda..0feb00e 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1327,8 +1327,6 @@ /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) br->att = l1cs->lchan->bs_power_ctrl.current; - else /* Ensure no attenuation in the absence of lchan (e.g. on PDCH) */ - br->att = 0; /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I77a839725f22be1be4a025f579c4c9ccdfb53460 Gerrit-Change-Number: 25602 Gerrit-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 Sep 25 12:57:09 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 25 Sep 2021 12:57:09 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { > Maybe it's a good opportunity to move these structs to an internal, non-public header :D not possible, because osmo_stat_item is not opaque, and needed to set stat item values https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 132 PS5, Line 132: /* DEPRECATION: up until libosmocore 1.5.1, this API also defined > I'd really drop this. [?] disagree. if we break our own principles, rather be upfront about it. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 12:57:09 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 12:57:17 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Sat, 25 Sep 2021 12:57:17 +0000 Subject: Change in libosmocore[master]: refactor stat_item: report only changed values In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25465 ) Change subject: refactor stat_item: report only changed values ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 12:57:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 13:11:37 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:11:37 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25602 ) Change subject: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I77a839725f22be1be4a025f579c4c9ccdfb53460 Gerrit-Change-Number: 25602 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 25 Sep 2021 13: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 Sat Sep 25 13:12:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:12:28 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25284 ) Change subject: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Gerrit-Change-Number: 25284 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 13:12: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 Sat Sep 25 13:12:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:12:48 +0000 Subject: Change in osmo-bts[master]: l1sap: unify channel (de)activation/modification messages In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25579 ) Change subject: l1sap: unify channel (de)activation/modification messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia199d584c937eef4118c99af4523fd91b2e46107 Gerrit-Change-Number: 25579 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 13:12:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 13:13:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:13:38 +0000 Subject: Change in osmo-bts[master]: gsm_lchan2chan_nr(): separate RSL specific variant of this API In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25580 ) Change subject: gsm_lchan2chan_nr(): separate RSL specific variant of this API ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Gerrit-Change-Number: 25580 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 13:13:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 13:13:59 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:13:59 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25581 ) Change subject: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Gerrit-Change-Number: 25581 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Sat, 25 Sep 2021 13:13:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 13:14:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:14:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Sat, 25 Sep 2021 13:14:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Sep 25 13:15:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 13:15:09 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Sat, 25 Sep 2021 13: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 Sat Sep 25 16:43:24 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 16:43:24 +0000 Subject: Change in osmo-msc[master]: smpp: Fix help string in vty for "alert-notifications" References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/25603 ) Change subject: smpp: Fix help string in vty for "alert-notifications" ...................................................................... smpp: Fix help string in vty for "alert-notifications" Without the 'no' prefix, this command is about enabling, not disabling Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 --- M src/libmsc/smpp_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/03/25603/1 diff --git a/src/libmsc/smpp_vty.c b/src/libmsc/smpp_vty.c index 9026f6c..31e2090 100644 --- a/src/libmsc/smpp_vty.c +++ b/src/libmsc/smpp_vty.c @@ -501,7 +501,7 @@ DEFUN(cfg_esme_alert_notif, cfg_esme_alert_notif_cmd, "alert-notifications", - "Disable sending of SMPP Alert Notifications for this ESME") + "Enable sending of SMPP Alert Notifications for this ESME") { struct osmo_smpp_acl *acl = vty->index; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 Gerrit-Change-Number: 25603 Gerrit-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 Sep 25 16:57:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Sat, 25 Sep 2021 16:57:23 +0000 Subject: Change in simtrace2[master]: jenkins.sh: Build 'trace' firmware for ngff_cardem References: Message-ID: laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/25604 ) Change subject: jenkins.sh: Build 'trace' firmware for ngff_cardem ...................................................................... jenkins.sh: Build 'trace' firmware for ngff_cardem Let's create and publish binary builds for 'trace' on BOARD=ngff_carde. According to SYS#5525 this is verified working since two months ago, so there's no reason to withhold the binary builds for it. Change-Id: I8a98002ef5aa58e5a3d49627323fe11505508bc8 Related: SYS#5525 --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/04/25604/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5f68cf1..4959d11 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -32,7 +32,7 @@ BUILDS+="qmod/dfu qmod/cardem " BUILDS+="owhw/dfu owhw/cardem " BUILDS+="octsimtest/cardem " -BUILDS+="ngff_cardem/dfu ngff_cardem/cardem " +BUILDS+="ngff_cardem/dfu ngff_cardem/cardem ngff_cardem/trace " cd $TOPDIR/firmware for build in $BUILDS; do -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I8a98002ef5aa58e5a3d49627323fe11505508bc8 Gerrit-Change-Number: 25604 Gerrit-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 Sep 26 06:26:11 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 26 Sep 2021 06:26:11 +0000 Subject: Change in osmo-msc[master]: smpp: Fix help string in vty for "alert-notifications" In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25603 ) Change subject: smpp: Fix help string in vty for "alert-notifications" ...................................................................... Patch Set 1: Hmm, looks like you need to rebase. Older osmo-msc still compiles against the recent libosmo-mgcp-client, however the unit tests fail... See also Id197e4ab9ba12e284299ef520edee9c362513bf1. -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 Gerrit-Change-Number: 25603 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Sun, 26 Sep 2021 06:26: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 Sun Sep 26 06:26:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 26 Sep 2021 06:26:41 +0000 Subject: Change in osmo-msc[master]: smpp: Fix help string in vty for "alert-notifications" In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25603 ) Change subject: smpp: Fix help string in vty for "alert-notifications" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 Gerrit-Change-Number: 25603 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Sun, 26 Sep 2021 06:26: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 Sep 26 06:41:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 26 Sep 2021 06:41:41 +0000 Subject: Change in pysim[master]: pySim-shell: verify_adm: turn error messages into exceptions In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25550 ) Change subject: pySim-shell: verify_adm: turn error messages into exceptions ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/pysim/+/25550/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25550/2/pySim-shell.py at 401 PS2, Line 401: error: > maybe omit the "error: " here, since it's implied by raising ValueError? It would make it consistent [?] Ack -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I4162b43754efd061b6b9058b7ff8e1fc985e3538 Gerrit-Change-Number: 25550 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: osmith Gerrit-Comment-Date: Sun, 26 Sep 2021 06:41:41 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 26 07:43:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 26 Sep 2021 07:43:58 +0000 Subject: Change in osmo-bts[master]: trx_sched_set_lchan(): use LOGL_INFO for logging messages References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25605 ) Change subject: trx_sched_set_lchan(): use LOGL_INFO for logging messages ...................................................................... trx_sched_set_lchan(): use LOGL_INFO for logging messages There is no need to log channel activation / deactivation messages as LOGL_NOTICE - this is a normal event requiring no attention. Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d --- M src/common/scheduler.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/05/25605/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 0826eda..36eaa68 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1094,7 +1094,7 @@ continue; found = true; - LOGPLCHAN(lchan, DL1C, LOGL_NOTICE, "%s %s\n", + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "%s %s\n", (active) ? "Activating" : "Deactivating", trx_chan_desc[i].name); /* free burst memory, to cleanly start with burst 0 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d Gerrit-Change-Number: 25605 Gerrit-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 Sep 26 08:04:10 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Sun, 26 Sep 2021 08:04:10 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... Patch Set 1: (2 comments) Just to be sure... https://gerrit.osmocom.org/c/osmo-pcu/+/25535/1/src/gprs_rlcmac_sched.cpp File src/gprs_rlcmac_sched.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25535/1/src/gprs_rlcmac_sched.cpp at 520 PS1, Line 520: if (tx_is_egprs && pdch->has_gprs_only_tbf_attached()) { Is it safe to skip this block? https://gerrit.osmocom.org/c/osmo-pcu/+/25535/1/src/gprs_rlcmac_sched.cpp at 535 PS1, Line 535: gprs_bssgp_update_frames_sent Is it safe to skip this call? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sun, 26 Sep 2021 08:04:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Sep 26 15:24:59 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Sun, 26 Sep 2021 15:24:59 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: lower trace to make bl fit References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/simtrace2/+/25606 ) Change subject: contrib/jenkins.sh: lower trace to make bl fit ...................................................................... contrib/jenkins.sh: lower trace to make bl fit We keep running out of rom space, so reduce tracing to nothing for alle dfu targets, and let's hope newer gcc versions stop producing more code... Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e --- M contrib/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/06/25606/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5f68cf1..2254947 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -41,8 +41,8 @@ echo echo "=============== $board / $app START ==============" # reduce the trace level so the bl fits - if [ $board = "ngff_cardem" ] && [ $app = "dfu" ]; then - make BOARD="$board" APP="$app" TRACE_LEVEL=2 + if [ $app = "dfu" ]; then + make BOARD="$board" APP="$app" TRACE_LEVEL=0 else make BOARD="$board" APP="$app" fi -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e Gerrit-Change-Number: 25606 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 Sun Sep 26 20:20:44 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Sun, 26 Sep 2021 20:20:44 +0000 Subject: Change in osmo-bsc[master]: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25607 ) Change subject: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. ...................................................................... Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. This fixes call setup issues when more than ~1km from the tower. NOTE: We use the last reported TA from the UE in the CHANnel ACTIVation. When the UE is more than 1km from the tower, (unshifted) TA in the measurement report can be 8 or greater. Once we send TA of 8 in the CHAN ACTIV message, the lchan is unrecoverable. Change-Id: I1c9bd5bf2fd126e62bcbec419f3499d2e0465559 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/25607/1 diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index c7399eb..fb8e386 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1319,9 +1319,10 @@ if (val[0] & 0x04) mr->flags |= MEAS_REP_F_FPC; mr->ms_l1.ta = val[1]; - /* BS11 and Nokia reports TA shifted by 2 bits */ + /* BS11, Nokia and RBS report TA shifted by 2 bits */ if (msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_BS11 - || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) + || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE + || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_RBS2000) mr->ms_l1.ta >>= 2; /* store TA for handover decision, and for intra-cell re-assignment */ mr->lchan->last_ta = mr->ms_l1.ta; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1c9bd5bf2fd126e62bcbec419f3499d2e0465559 Gerrit-Change-Number: 25607 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 06:20:23 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:20:23 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: lower trace to make bl fit In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/25606 ) Change subject: contrib/jenkins.sh: lower trace to make bl fit ...................................................................... Patch Set 1: Verified-1 This only changes the TRACE_LEVEL for the jenkins build verification. So it may fail for everybody else who does not manually set TRACE_LEVEL to the same value. Most importantly, the binary packages in OBS will be built with the default TRACE_LEVEL value (4 in firmware/Makefile apparently). I suggest to remove TRACE_LEVEL in jenkins.sh instead and to adjust TRACE_LEVEL in firmware/Makefile. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e Gerrit-Change-Number: 25606 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 06:20:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 06:20:52 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:20:52 +0000 Subject: Change in osmo-bts[master]: trx_sched_set_lchan(): use LOGL_INFO for logging messages In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25605 ) Change subject: trx_sched_set_lchan(): use LOGL_INFO for logging messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d Gerrit-Change-Number: 25605 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 06:20:52 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 06:22:42 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:22:42 +0000 Subject: Change in osmo-bts[master]: l1sap: unify channel (de)activation/modification messages In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25579 ) Change subject: l1sap: unify channel (de)activation/modification messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia199d584c937eef4118c99af4523fd91b2e46107 Gerrit-Change-Number: 25579 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 06:22: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 Sep 27 06:34:54 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:34:54 +0000 Subject: Change in osmo-bts[master]: gsm_lchan2chan_nr(): separate RSL specific variant of this API In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25580 ) Change subject: gsm_lchan2chan_nr(): separate RSL specific variant of this API ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Gerrit-Change-Number: 25580 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 06:34:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 06:35:43 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:35:43 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25581 ) Change subject: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Gerrit-Change-Number: 25581 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 06:35:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 06:36:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:36:34 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: lower trace to make bl fit In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/25606 ) Change subject: contrib/jenkins.sh: lower trace to make bl fit ...................................................................... Patch Set 1: -Verified Code-Review-1 (CR -1 instead of verified -1) -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e Gerrit-Change-Number: 25606 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 06:36:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 06:42:18 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 06:42:18 +0000 Subject: Change in simtrace2[master]: jenkins.sh: Build 'trace' firmware for ngff_cardem In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/25604 ) Change subject: jenkins.sh: Build 'trace' firmware for ngff_cardem ...................................................................... Patch Set 1: Code-Review+1 Add to "fw:" in Makefile too? (Why is there a different list in the first place?) -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I8a98002ef5aa58e5a3d49627323fe11505508bc8 Gerrit-Change-Number: 25604 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 06:42:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 08:22:27 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 27 Sep 2021 08:22:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575/2/gbproxy/GBProxy_Tests.ttcn File gbproxy/GBProxy_Tests.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575/2/gbproxy/GBProxy_Tests.ttcn at 2743 PS2, Line 2743: f_sleep(10.0); > maybe we can avoid the long sleep by configuring a timer to be short at the start of the test? We would need to change the alive timer in the osmo-gbproxy config which I'd like to avoid if possible. It's already reduced from the default (60-90s to detection). TC_ul_unitdata_pool_failure() works the same way. https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575/2/gbproxy/GBProxy_Tests.ttcn at 2752 PS2, Line 2752: alt { > Without timeout, the test may hang here forever IIRC The global timeout (which is set to 30s) will catch this. I confirmed this while testing with the old osmo-gbproxy. I guess I could speed up the failure if we receive a RESET_ACK, though. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 08:22:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 08:33:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:33:36 +0000 Subject: Change in osmo-bts[master]: gsm_lchan2chan_nr(): separate RSL specific variant of this API In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25580 ) Change subject: gsm_lchan2chan_nr(): separate RSL specific variant of this API ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25580/2/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/25580/2/src/common/gsm_data.c at 259 PS2, Line 259: if (rsl) This can be further simplified: if (rsl || (~lchan->ts->flags & TS_F_PDCH_ACTIVE)) chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); else chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_PDCH); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Gerrit-Change-Number: 25580 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 08:33: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 Mon Sep 27 08:36:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:36:23 +0000 Subject: Change in osmo-bts[master]: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25285 ) Change subject: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY ...................................................................... Patch Set 3: Code-Review+1 So right now if BTS doesn't support the IE but it finds it, it will fail. Shouldn't it simply ignore it IMHO? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Gerrit-Change-Number: 25285 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 08:36:23 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 08:37:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:37:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25602 ) Change subject: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I77a839725f22be1be4a025f579c4c9ccdfb53460 Gerrit-Change-Number: 25602 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 08:37: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 Sep 27 08:40:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:40:00 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25284 ) Change subject: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Gerrit-Change-Number: 25284 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 08:40:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 08:42:20 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:42:20 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { > not possible, because osmo_stat_item is not opaque, and needed to set stat item values I though we were using APIs for that? void osmo_stat_item_inc(struct osmo_stat_item *item, int32_t value); void osmo_stat_item_dec(struct osmo_stat_item *item, int32_t value); void osmo_stat_item_set(struct osmo_stat_item *item, int32_t value); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 08:42:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 08:42:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:42:59 +0000 Subject: Change in osmo-msc[master]: smpp: Fix help string in vty for "alert-notifications" In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25603 ) Change subject: smpp: Fix help string in vty for "alert-notifications" ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 Gerrit-Change-Number: 25603 Gerrit-PatchSet: 1 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 08: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 Mon Sep 27 08:58:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 08:58:06 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-pcu/+/25535/1/src/gprs_rlcmac_sched.cpp File src/gprs_rlcmac_sched.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25535/1/src/gprs_rlcmac_sched.cpp at 520 PS1, Line 520: if (tx_is_egprs && pdch->has_gprs_only_tbf_attached()) { > Is it safe to skip this block? It is safe in practice I'd say. Ideally indeed one would set fn_without_cs14 to 0 as soon as there's no TBF to transmit, since anyway that means there's no GPRS TBF which needs receiving synchronization. With this patch, we leave the value set to last value since we don't pass over here. However that's not a big issue, since for this counter to be incremented there's need for 2 TBFs to be active: 1 EGPRS and 1 GPRS. Hence, at some point before that scenario we'll go through here with 1 EGPRS TBF *OR* 1 GPRS TBF, which will end in "tx_is_egprs && pdch->has_gprs_only_tbf_attached()" being false, hence the counter is properly initialized beofre really being of need. I agree though that it's more clear to set it always, so I'll move it after the "tx_pdtch" goto tag. https://gerrit.osmocom.org/c/osmo-pcu/+/25535/1/src/gprs_rlcmac_sched.cpp at 535 PS1, Line 535: gprs_bssgp_update_frames_sent > Is it safe to skip this call? I would say it's not really an issue since there's no TBFs anyway. In any case the leak rate counting is quite broken afaict. I'll move it after the tag too anyway. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 08:58:06 +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 Sep 27 09:04:59 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 09:04:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 09:04: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 Sep 27 09:11:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 09:11:31 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 to look at the new patch set (#2). Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... pcuif: Submit data_req with len=0 as idle frames This way PCU always answers DATA.ind and the BTS can still clearly identify idle frames. It also simplifies testing and verification of correct behavior. Related: SYS#4919 Change-Id: Ife718eeed2af011479c03099ea109518f04567bc --- M src/gprs_rlcmac_sched.cpp M src/pcu_l1_if.cpp 2 files changed, 40 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/35/25535/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 09:15:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 09:15:29 +0000 Subject: Change in osmo-bsc[master]: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25607 ) Change subject: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1c9bd5bf2fd126e62bcbec419f3499d2e0465559 Gerrit-Change-Number: 25607 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 09:15:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 09:16:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 09:16:00 +0000 Subject: Change in osmo-bts[master]: trx_sched_set_lchan(): use LOGL_INFO for logging messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25605 ) Change subject: trx_sched_set_lchan(): use LOGL_INFO for logging messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d Gerrit-Change-Number: 25605 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 09:16:00 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 09:16:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 09:16:06 +0000 Subject: Change in osmo-bts[master]: trx_sched_set_lchan(): use LOGL_INFO for logging messages In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25605 ) Change subject: trx_sched_set_lchan(): use LOGL_INFO for logging messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d Gerrit-Change-Number: 25605 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 09: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 Sep 27 09:17:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 09:17:30 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25581 ) Change subject: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Gerrit-Change-Number: 25581 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 09:17:30 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 09:22:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 09:22:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: pcu: Adapt tests to pass with new idle blocks from PCU In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 ) Change subject: pcu: Adapt tests to pass with new idle blocks from PCU ...................................................................... Patch Set 1: IIRC from discussion with fixeria there's another test verifying PTCCH/D content when TBFs are attached. Hence it is fine to change this test as I did i nthis patch and hence it can be merged. @fixeria agree? -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I6e96a7569640695ccfaa94b471384fa301bccd62 Gerrit-Change-Number: 25537 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 09:22:56 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 10:47:22 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 27 Sep 2021 10:47:22 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: make assignment_fsm_timer_cb static References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25608 ) Change subject: assignment_fsm: make assignment_fsm_timer_cb static ...................................................................... assignment_fsm: make assignment_fsm_timer_cb static assignment_fsm_timer_cb is only used in module assignment_fsm.c, so lets decalare it as static Change-Id: Ibb3aa01d21b0a83600dc22382a5c8001debbe054 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/08/25608/1 diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 3c1f13b..30927e9 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -945,7 +945,7 @@ } } -int assignment_fsm_timer_cb(struct osmo_fsm_inst *fi) +static int assignment_fsm_timer_cb(struct osmo_fsm_inst *fi) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); assignment_count_result(CTR_ASSIGNMENT_TIMEOUT); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibb3aa01d21b0a83600dc22382a5c8001debbe054 Gerrit-Change-Number: 25608 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 Sep 27 10:47:30 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 27 Sep 2021 10:47:30 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: make assignment_fsm_allstate_action static References: Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25609 ) Change subject: assignment_fsm: make assignment_fsm_allstate_action static ...................................................................... assignment_fsm: make assignment_fsm_allstate_action static assignment_fsm_allstate_action is only used in module assignment_fsm.c, so lets decalare it as static Change-Id: I90d6c11bd485e3be80efc7f146e0129d93e18458 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/09/25609/1 diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 30927e9..97eb335 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -916,7 +916,7 @@ {} }; -void assignment_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void assignment_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I90d6c11bd485e3be80efc7f146e0129d93e18458 Gerrit-Change-Number: 25609 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 Sep 27 11:54:32 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 27 Sep 2021 11:54:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 to look at the new patch set (#3). Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone IF the BSS-BVC is gone gbproxy blocks the BVC towards the SGSN (this is the only thing it can do since there is no BVC-REMOVE). If the SGSN ever decides to reset that BVC the gbproxy should not ACK it, but instead consider the BVCI unknown. Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Related: SYS#5628, OS#5236 --- M gbproxy/GBProxy_Tests.ttcn M library/BSSGP_Emulation.ttcnpp 2 files changed, 55 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/25575/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 11:56:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 27 Sep 2021 11:56:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 11:56: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 Sep 27 11:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 27 Sep 2021 11:56:31 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 ) Change subject: gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK ...................................................................... gbproxy: Remove SGSN-side BVC after sending BVC-BLOCK If we keep the bvc around the SGSN could send a BVC-RESET which the gbproxy would ACK. This will reestablish the BVC only between the gbproxy and SGSN which can lead to all sorts of issues. With this patch the gbproxy will respond with a BVC-STATUS cause BVCI unknown. Related: SYS#5628 Fixes: OS#5236 Change-Id: Ib14be6425a81b43353708b2708f79e035e501079 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 94ac4a3..be075d6 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1627,6 +1627,7 @@ /* Block BVC, indicate BSS equipment failure */ uint8_t cause = BSSGP_CAUSE_EQUIP_FAIL; osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); + gbproxy_bvc_free(sgsn_bvc); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ib14be6425a81b43353708b2708f79e035e501079 Gerrit-Change-Number: 25576 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 12:09:39 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 27 Sep 2021 12:09:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... Patch Set 3: Code-Review+2 Readding +1 from Harald (before minor change) -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 12:09:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 12:10:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 27 Sep 2021 12:10:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 ) Change subject: gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone ...................................................................... gbproxy: Check SGSN-orignated BVC RESET if BSS BVC is gone IF the BSS-BVC is gone gbproxy blocks the BVC towards the SGSN (this is the only thing it can do since there is no BVC-REMOVE). If the SGSN ever decides to reset that BVC the gbproxy should not ACK it, but instead consider the BVCI unknown. Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Related: SYS#5628, OS#5236 --- M gbproxy/GBProxy_Tests.ttcn M library/BSSGP_Emulation.ttcnpp 2 files changed, 55 insertions(+), 1 deletion(-) Approvals: daniel: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 035a47d..f569eaf 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1158,6 +1158,21 @@ setverdict(pass); } +private function f_disable_ns_pcu(integer pcu_idx) runs on test_CT +{ + var integer i; + + connect(self:NS_CTRL, g_pcu[pcu_idx].vc_NS:NS_CTRL); + for (i := 0; i < lengthof(mp_nsconfig_pcu[pcu_idx].nsvc); i := i + 1) { + var uint16_t nsvci := mp_nsconfig_pcu[pcu_idx].nsvc[i].nsvci; + var NsDisableVcRequest tx_disar; + tx_disar.nsvci := nsvci; + log(tx_disar); + NS_CTRL.send(tx_disar); + } + disconnect(self:NS_CTRL, g_pcu[pcu_idx].vc_NS:NS_CTRL); +} + testcase TC_ul_unitdata_pool_failure() runs on test_CT { var integer i; @@ -2707,6 +2722,7 @@ deactivate(d); setverdict(pass); } + /* Send a BVC-RESET for a PTP BVC from the SGSN side: expect it to propagate */ testcase TC_bvc_reset_ptp_from_sgsn() runs on test_CT { @@ -2716,6 +2732,41 @@ f_cleanup(); } +/* Send a BVC-RESET for a blocked PTP BVC from the SGSN side: expect NS-STATUS with cause BVCI unknown */ +testcase TC_bvc_reset_blocked_ptp_from_sgsn() runs on GlobalTest_CT +{ + f_init(); + f_global_init(); + f_sleep(3.0); + /* Make sure NS for BVC is down and try again */ + f_disable_ns_pcu(0); + f_sleep(10.0); + + var BssgpBvcConfig bvc_cfg := g_pcu[0].cfg.bvc[0]; + SGSN_MGMT.send(BssgpResetRequest:{cause:=BSSGP_CAUSE_OM_INTERVENTION}) to f_get_sgsn_bvc_ct(0, bvc_cfg.bvci); + + /* Check for NS-STATUS with BVCI unknown, ignore other messages */ + var template (present) PDU_BSSGP exp_rx := + tr_BSSGP_STATUS(bvc_cfg.bvci, BSSGP_CAUSE_BVCI_UNKNOWN, ?); + + alt { + [] G_SGSN[0].receive(exp_rx) { + setverdict(pass); + } + [] SGSN_MGMT.receive(BssgpStatusIndication:{*, bvc_cfg.bvci, BVC_S_UNBLOCKED}) { + setverdict(fail, "BVC unblocked that should be gone on BSS side"); + } + [] SGSN_MGMT.receive { + repeat; + } + [] G_SGSN[0].receive { + repeat; + } + } + + f_cleanup(); +} + private altstep as_ignore_mgmt(BSSGP_BVC_MGMT_PT pt) { [] pt.receive {repeat; } } @@ -3531,6 +3582,7 @@ execute( TC_bvc_reset_ptp_from_bss() ); execute( TC_bvc_reset_sig_from_bss() ); execute( TC_bvc_reset_ptp_from_sgsn() ); + execute( TC_bvc_reset_blocked_ptp_from_sgsn() ); execute( TC_bvc_reset_sig_from_sgsn() ); if (mp_enable_bss_load_sharing) { /* don't enable this by default, as we don't yet have any automatic test setup for FR with 4 NS-VC */ diff --git a/library/BSSGP_Emulation.ttcnpp b/library/BSSGP_Emulation.ttcnpp index 593abd8..8d27fd1 100644 --- a/library/BSSGP_Emulation.ttcnpp +++ b/library/BSSGP_Emulation.ttcnpp @@ -323,7 +323,9 @@ /* Messages with BVCI = 0 (Signaling) in BVCI field of NS */ [] BSCP.receive(f_BnsUdInd(tr_GLOBAL_SIG, 0)) -> value udi { - GLOBAL.send(udi.bssgp); + if (GLOBAL.checkstate("Connected")) { + GLOBAL.send(udi.bssgp); + } } [] BSCP.receive(f_BnsUdInd(tr_RIM, 0)) -> value udi { if (RIM.checkstate("Connected")) { -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Ic57b39a77adf71abda99ef8af7da1592e2225a0d Gerrit-Change-Number: 25575 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 12:48:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 27 Sep 2021 12:48:18 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG at 12 PS1, Line 12: > I think unsolicited ACKs are typically ignored by many protocols. [?] The spec only mentions ACKs for existing BVCs, it says nothing about ACKs for BVCs that we know nothing about. https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c at 1378 PS1, Line 1378: break; > it is indeed a bit inconsistent that an UNBLOCK_ACK or RESET_ACK are now handled significantly diffe [?] Agreed, I'll think about this more. Also the rate counter that is increased is completely wrong (invalid RAI, see comment below). I could keep a list of BVCIs that are gone (but were blocked towards the SGSN). Then we can ignore/accept only the BLOCK_ACKs that we care about and properly reject all others. https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c at 1497 PS1, Line 1497: rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_RAI)); see here -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 27 Sep 2021 12:48:18 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 13:59:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 13:59:30 +0000 Subject: Change in osmo-bts[master]: bts-trx: Fix rxgain & maxdly VTY values being reset References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25610 ) Change subject: bts-trx: Fix rxgain & maxdly VTY values being reset ...................................................................... bts-trx: Fix rxgain & maxdly VTY values being reset Recent commit added code to reset trx_provision_fsm state fields in orer to support re-using the FSM once BTS is reconnected to a BSC. However, some values being reset there are not set up when reconnecting to the BSC, but rather configured through VTY at startup. Hence those values should be kept. Fixes: 32b51eca7d2a5215814db7843b1a0f8c74ea7527 Change-Id: I5c31241327b98386c313cd9377cf76c009456105 --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 0 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/10/25610/1 diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 7f42b47..36be76f 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -122,17 +122,13 @@ l1h->config.bsic_sent = false; l1h->config.bsic_acked = false; - l1h->config.rxgain_valid = false; - l1h->config.rxgain = 0; l1h->config.rxgain_sent = false; l1h->config.nomtxpower_sent = false; l1h->config.nomtxpower_acked = false; - l1h->config.maxdly_valid = false; l1h->config.maxdly_sent = false; - l1h->config.maxdlynb_valid = false; l1h->config.maxdlynb_sent = false; for (tn = 0; tn < TRX_NR_TS; tn++) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c31241327b98386c313cd9377cf76c009456105 Gerrit-Change-Number: 25610 Gerrit-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 Sep 27 14:23:36 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 14:23:36 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... MS Power Control Loop: Allow Turn off/on C/I independent from value setting Improve the current VTY support to allow enabling/disabling C/I logic independent from value setting. This way C/I support can be quickly disabled & enabled. Reminder: changing power parameters still require VTY Command "bts NR resend-power-control-defaults" to be excuted prior to new parameters being applied on the BTS. Related: SYS#4917 Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 --- M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 6 files changed, 126 insertions(+), 65 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/25611/1 diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index bc112aa..51a38cb 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -33,6 +33,7 @@ other hand, OsmoBTS may support some extra parameters coming in Osmocom specific IEs not supported by nanoBTS, such as those configuring C/I measurement thresholds. +[[apply_pwr_ctrl]] ==== When the parameters come into effect? It depends on how the power control parameters are signaled to the BTS. If a given @@ -337,21 +338,24 @@ bts 0 ms-power-control mode dyn-bts <1> - ci-thresh amr-fr lower 7 upper 11 <2> - ci-thresh-comp amr-fr lower 2 10 <3> upper 3 4 <4> + ci-thresh amr-fr enable <2> + ci-thresh amr-fr lower 7 upper 11 <3> + ci-thresh-comp amr-fr lower 2 10 <4> upper 3 4 <5> ---- <1> MS power control is to be performed by the BTS autonomously. -<2> L_CI_AMR_FR_XX_P=7, U_CI_AMR_FR_XX_P=11. -<3> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power. -<4> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power. +<2> MS power control loop should take C/I into account. +<3> L_CI_AMR_FR_XX_P=7, U_CI_AMR_FR_XX_P=11. +<4> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power. +<5> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power. NOTE: The BSC can instruct a BTS to disable C/I related logic in its autonomous MS Power Control Loop for a given channel type (hence not taking C/I measurements into account) by means of setting both related LOWER_CMP_N and UPPER_CMP_N parameters to zero (see _ci-thresh-comp_ VTY command). For the sake of easing configuration, a placeholder VTY command to disable C/I for all -channel types is available under VTY node _ms-power-control_ as *_ci-thresh-comp -disable all_*. +channel types is available under VTY node _ms-power-control_ as *_ci-thresh +all disable_*. Afterwards, the new configuration must be deployed to the target +BTS (see <>). ==== Measurement averaging process diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index b166146..1fd7015 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1289,6 +1289,9 @@ /* MS/BS Power related measurement parameters */ struct gsm_power_ctrl_meas_params { + /* Are this measurement paremeters to be taken into account by loop? */ + bool enabled; + /* Thresholds (see 3GPP TS 45.008, section A.3.2.1) */ uint8_t lower_thresh; /* lower (decreasing) direction */ uint8_t upper_thresh; /* upper (increasing) direction */ diff --git a/src/osmo-bsc/bts_osmobts.c b/src/osmo-bsc/bts_osmobts.c index 5007d2b..5c535be 100644 --- a/src/osmo-bsc/bts_osmobts.c +++ b/src/osmo-bsc/bts_osmobts.c @@ -112,8 +112,15 @@ ie_len = msgb_tl_put(msg, RSL_IPAC_EIE_OSMO_MS_PWR_CTL); osmo_thresh = (struct osmo_preproc_pc_thresh *) msgb_put(msg, sizeof(*osmo_thresh)); #define ENC_THRESH_CI(TYPE) \ - osmo_thresh->l_##TYPE = cp->TYPE##_meas.lower_thresh; \ - osmo_thresh->u_##TYPE = cp->TYPE##_meas.upper_thresh + do { \ + if (cp->TYPE##_meas.enabled) { \ + osmo_thresh->l_##TYPE = cp->TYPE##_meas.lower_thresh; \ + osmo_thresh->u_##TYPE = cp->TYPE##_meas.upper_thresh; \ + } else { \ + osmo_thresh->l_##TYPE = 0; \ + osmo_thresh->u_##TYPE = 0; \ + } \ + } while (0) ENC_THRESH_CI(ci_fr); ENC_THRESH_CI(ci_hr); ENC_THRESH_CI(ci_amr_fr); @@ -128,10 +135,19 @@ ie_len = msgb_tl_put(msg, RSL_IPAC_EIE_OSMO_PC_THRESH_COMP); osmo_thresh_comp = (struct osmo_preproc_pc_comp *) msgb_put(msg, sizeof(*osmo_thresh_comp)); #define ENC_THRESH_CI(TYPE) \ - osmo_thresh_comp->TYPE.lower_p = cp->TYPE##_meas.lower_cmp_p & 0x1f; \ - osmo_thresh_comp->TYPE.lower_n = cp->TYPE##_meas.lower_cmp_n & 0x1f; \ - osmo_thresh_comp->TYPE.upper_p = cp->TYPE##_meas.upper_cmp_p & 0x1f; \ - osmo_thresh_comp->TYPE.upper_n = cp->TYPE##_meas.upper_cmp_n & 0x1f + do { \ + if (cp->TYPE##_meas.enabled) { \ + osmo_thresh_comp->TYPE.lower_p = cp->TYPE##_meas.lower_cmp_p & 0x1f; \ + osmo_thresh_comp->TYPE.lower_n = cp->TYPE##_meas.lower_cmp_n & 0x1f; \ + osmo_thresh_comp->TYPE.upper_p = cp->TYPE##_meas.upper_cmp_p & 0x1f; \ + osmo_thresh_comp->TYPE.upper_n = cp->TYPE##_meas.upper_cmp_n & 0x1f; \ + } else { \ + osmo_thresh_comp->TYPE.lower_p = 0; \ + osmo_thresh_comp->TYPE.lower_n = 0; \ + osmo_thresh_comp->TYPE.upper_p = 0; \ + osmo_thresh_comp->TYPE.upper_n = 0; \ + } \ + } while (0) ENC_THRESH_CI(ci_fr); ENC_THRESH_CI(ci_hr); ENC_THRESH_CI(ci_amr_fr); diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 7a502d7..fb11520 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3093,6 +3093,7 @@ } #define VTY_CMD_CI_TYPE "(fr-efr|hr|amr-fr|amr-hr|sdcch|gprs)" +#define VTY_CMD_CI_OR_ALL_TYPE "(fr-efr|hr|amr-fr|amr-hr|sdcch|gprs|all)" #define VTY_DESC_CI_TYPE \ "Channel Type FR/EFR\n" \ "Channel Type HR\n" \ @@ -3100,6 +3101,8 @@ "Channel Type AMR HR\n" \ "Channel Type SDCCH\n" \ "Channel Type (E)GPRS\n" +#define VTY_DESC_CI_OR_ALL_TYPE VTY_DESC_CI_TYPE "All Channel Types\n" + static struct gsm_power_ctrl_meas_params *ci_thresh_by_conn_type(struct gsm_power_ctrl_params *params, const char *type) { if (!strcmp(type, "fr-efr")) @@ -3155,6 +3158,35 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_disable, + cfg_power_ctrl_ci_thresh_disable_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "ci-thresh " VTY_CMD_CI_OR_ALL_TYPE " (enable|disable)", + "Set target C/I thresholds (for dynamic mode), only available in ms-power-control\n" + VTY_DESC_CI_OR_ALL_TYPE + "Enable C/I comparison in control loop\n" + "Disable C/I comparison in control loop\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + + bool enable = strcmp(argv[1], "enable") == 0; + + if (strcmp(argv[0], "all") == 0) { + params->ci_fr_meas.enabled = enable; + params->ci_hr_meas.enabled = enable; + params->ci_amr_fr_meas.enabled = enable; + params->ci_amr_hr_meas.enabled = enable; + params->ci_sdcch_meas.enabled = enable; + params->ci_gprs_meas.enabled = enable; + } else { + struct gsm_power_ctrl_meas_params *meas_params = ci_thresh_by_conn_type(params, argv[0]); + meas_params->enabled = enable; + } + + return CMD_SUCCESS; +} + #define POWER_CONTROL_MEAS_THRESH_COMP_CMD(meas) \ meas " lower <0-31> <0-31> upper <0-31> <0-31>" #define POWER_CONTROL_MEAS_THRESH_COMP_DESC(meas, opt_param, lp, ln, up, un) \ @@ -3272,35 +3304,6 @@ return CMD_SUCCESS; } -DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp_disable, - cfg_power_ctrl_ci_thresh_comp_disable_cmd, - X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | - X(BSC_VTY_ATTR_NEW_LCHAN), - "ci-thresh-comp disable all", - "Set Carrier-to_interference (C/I) threshold comparators (for dynamic mode)\n" - "Disable C/I comparison in control loop (sets LOWER_CMP_N and UPPER_CMP_N to zero)\n" - "Disable C/I comparison for all channel types\n") -{ - struct gsm_power_ctrl_params *params = vty->index; - -#define DISABLE_MEAS_PC(PARAMS, TYPE) \ - (PARAMS)->TYPE##_meas.lower_cmp_p = 0; \ - (PARAMS)->TYPE##_meas.lower_cmp_n = 0; \ - (PARAMS)->TYPE##_meas.upper_cmp_p = 0; \ - (PARAMS)->TYPE##_meas.upper_cmp_n = 0 - - DISABLE_MEAS_PC(params, ci_fr); - DISABLE_MEAS_PC(params, ci_hr); - DISABLE_MEAS_PC(params, ci_amr_fr); - DISABLE_MEAS_PC(params, ci_amr_hr); - DISABLE_MEAS_PC(params, ci_sdcch); - DISABLE_MEAS_PC(params, ci_gprs); - -#undef DISABLE_MEAS_PC - - return CMD_SUCCESS; -} - #define POWER_CONTROL_MEAS_AVG_CMD \ "(rxlev-avg|rxqual-avg)" #define POWER_CONTROL_MEAS_AVG_DESC \ @@ -3898,6 +3901,12 @@ const struct gsm_power_ctrl_meas_params *mp, const char *param, const char *param2) { + if (strcmp(param, "ci") == 0) { + cfg_out("%s-thresh%s %s%s", + param, param2, mp->enabled ? "enable" : "disable", + VTY_NEWLINE); + } + cfg_out("%s-thresh%s lower %u upper %u%s", param, param2, mp->lower_thresh, mp->upper_thresh, VTY_NEWLINE); @@ -3932,6 +3941,7 @@ } static void config_write_power_ctrl(struct vty *vty, unsigned int indent, + const struct gsm_bts *bts, const struct gsm_power_ctrl_params *cp) { const char *node_name; @@ -3965,7 +3975,7 @@ /* Measurement processing / averaging parameters */ config_write_power_ctrl_meas(vty, indent + 1, &cp->rxlev_meas, "rxlev", ""); config_write_power_ctrl_meas(vty, indent + 1, &cp->rxqual_meas, "rxqual", ""); - if (cp->dir == GSM_PWR_CTRL_DIR_UL) { + if (cp->dir == GSM_PWR_CTRL_DIR_UL && is_osmobts(bts)) { config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_fr_meas, "ci", " fr-efr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_hr_meas, "ci", " hr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_amr_fr_meas, "ci", " amr-fr"); @@ -4285,8 +4295,8 @@ } /* BS/MS Power Control parameters */ - config_write_power_ctrl(vty, 2, &bts->bs_power_ctrl); - config_write_power_ctrl(vty, 2, &bts->ms_power_ctrl); + config_write_power_ctrl(vty, 2, bts, &bts->bs_power_ctrl); + config_write_power_ctrl(vty, 2, bts, &bts->ms_power_ctrl); config_write_bts_model(vty, bts); } @@ -4470,11 +4480,11 @@ install_element(POWER_CTRL_NODE, &cfg_power_ctrl_step_size_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_disable_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_cmd); - install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_disable_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index a6c54d8..c8108e8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1146,6 +1146,7 @@ /* RxLev measurement parameters */ .rxlev_meas = { + .enabled = true, /* Thresholds for RxLev (see 3GPP TS 45.008, A.3.2.1) */ .lower_thresh = 32, /* L_RXLEV_XX_P (-78 dBm) */ .upper_thresh = 38, /* U_RXLEV_XX_P (-72 dBm) */ @@ -1170,6 +1171,7 @@ /* RxQual measurement parameters */ .rxqual_meas = { + .enabled = true, /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ .lower_thresh = 3, /* L_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ @@ -1198,6 +1200,7 @@ * above the target. */ .ci_fr_meas = { /* FR: Target C/I = 15 dB, Soft blocking threshold = 10 dB */ + .enabled = true, .lower_thresh = 13, .upper_thresh = 17, @@ -1219,6 +1222,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_hr_meas = { /* HR: Target C/I = 18 dB, Soft blocking threshold = 13 dB */ + .enabled = true, .lower_thresh = 16, .upper_thresh = 21, @@ -1240,6 +1244,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_amr_fr_meas = { /* AMR-FR: Target C/I = 9 dB, Soft blocking threshold = 4 dB */ + .enabled = true, .lower_thresh = 7, .upper_thresh = 11, @@ -1261,6 +1266,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_amr_hr_meas = { /* AMR-HR: Target C/I = 15 dB, Soft blocking threshold = 10 dB */ + .enabled = true, .lower_thresh = 13, .upper_thresh = 17, @@ -1282,6 +1288,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_sdcch_meas = { /* SDCCH: Target C/I = 14 dB, Soft blocking threshold = 9 dB */ + .enabled = true, .lower_thresh = 12, .upper_thresh = 16, @@ -1303,6 +1310,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_gprs_meas = { /* GPRS: Target C/I = 20 dB, Soft blocking threshold = 15 dB */ + .enabled = true, .lower_thresh = 18, .upper_thresh = 24, diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index b14a905..491adca 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -34,11 +34,11 @@ . lv step-size inc <2-6> red <2-4> . lv rxlev-thresh lower <0-63> upper <0-63> . lv rxqual-thresh lower <0-7> upper <0-7> + . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs|all) (enable|disable) . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-30> upper <0-30> . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> - . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -115,11 +115,11 @@ . lv step-size inc <2-6> red <2-4> . lv rxlev-thresh lower <0-63> upper <0-63> . lv rxqual-thresh lower <0-7> upper <0-7> + . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs|all) (enable|disable) . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-30> upper <0-30> . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> - . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -143,16 +143,22 @@ rxlev-thresh-comp lower 10 12 upper 19 20 rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 + ci-thresh fr-efr enable ci-thresh fr-efr lower 13 upper 17 ci-thresh-comp fr-efr lower 5 7 upper 15 18 + ci-thresh hr enable ci-thresh hr lower 16 upper 21 ci-thresh-comp hr lower 5 7 upper 15 18 + ci-thresh amr-fr enable ci-thresh amr-fr lower 7 upper 11 ci-thresh-comp amr-fr lower 5 7 upper 15 18 + ci-thresh amr-hr enable ci-thresh amr-hr lower 13 upper 17 ci-thresh-comp amr-hr lower 5 7 upper 15 18 + ci-thresh sdcch enable ci-thresh sdcch lower 12 upper 16 ci-thresh-comp sdcch lower 5 7 upper 15 18 + ci-thresh gprs enable ci-thresh gprs lower 18 upper 24 ci-thresh-comp gprs lower 5 7 upper 15 18 ... @@ -304,33 +310,47 @@ ... ms-power-control ... + ci-thresh fr-efr enable + ci-thresh fr-efr lower 13 upper 17 ci-thresh-comp fr-efr lower 5 7 upper 15 18 -... + ci-thresh hr enable + ci-thresh hr lower 16 upper 21 ci-thresh-comp hr lower 5 7 upper 15 18 -... + ci-thresh amr-fr enable + ci-thresh amr-fr lower 7 upper 11 ci-thresh-comp amr-fr lower 5 7 upper 15 18 -... + ci-thresh amr-hr enable + ci-thresh amr-hr lower 13 upper 17 ci-thresh-comp amr-hr lower 5 7 upper 15 18 -... + ci-thresh sdcch enable + ci-thresh sdcch lower 12 upper 16 ci-thresh-comp sdcch lower 5 7 upper 15 18 -... + ci-thresh gprs enable + ci-thresh gprs lower 18 upper 24 ci-thresh-comp gprs lower 5 7 upper 15 18 ... -OsmoBSC(config-ms-power-ctrl)# ci-thresh-comp disable all +OsmoBSC(config-ms-power-ctrl)# ci-thresh all disable OsmoBSC(config-ms-power-ctrl)# show running-config ... ms-power-control ... - ci-thresh-comp fr-efr lower 0 0 upper 0 0 -... - ci-thresh-comp hr lower 0 0 upper 0 0 -... - ci-thresh-comp amr-fr lower 0 0 upper 0 0 -... - ci-thresh-comp amr-hr lower 0 0 upper 0 0 -... - ci-thresh-comp sdcch lower 0 0 upper 0 0 -... - ci-thresh-comp gprs lower 0 0 upper 0 0 + ci-thresh fr-efr disable + ci-thresh fr-efr lower 13 upper 17 + ci-thresh-comp fr-efr lower 5 7 upper 15 18 + ci-thresh hr disable + ci-thresh hr lower 16 upper 21 + ci-thresh-comp hr lower 5 7 upper 15 18 + ci-thresh amr-fr disable + ci-thresh amr-fr lower 7 upper 11 + ci-thresh-comp amr-fr lower 5 7 upper 15 18 + ci-thresh amr-hr disable + ci-thresh amr-hr lower 13 upper 17 + ci-thresh-comp amr-hr lower 5 7 upper 15 18 + ci-thresh sdcch disable + ci-thresh sdcch lower 12 upper 16 + ci-thresh-comp sdcch lower 5 7 upper 15 18 + ci-thresh gprs disable + ci-thresh gprs lower 18 upper 24 + ci-thresh-comp gprs lower 5 7 upper 15 18 ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-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 Sep 27 14:26:33 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 14:26:33 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: make assignment_fsm_timer_cb static In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25608 ) Change subject: assignment_fsm: make assignment_fsm_timer_cb static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibb3aa01d21b0a83600dc22382a5c8001debbe054 Gerrit-Change-Number: 25608 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 14:26: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 Sep 27 14:26:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 14:26:43 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: make assignment_fsm_allstate_action static In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25609 ) Change subject: assignment_fsm: make assignment_fsm_allstate_action static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I90d6c11bd485e3be80efc7f146e0129d93e18458 Gerrit-Change-Number: 25609 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 14:26:43 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 15:23:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:23:58 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/bts_vty.c at 3904 PS1, Line 3904: if (strcmp(param, "ci") == 0) { Would it make sense to return early if !mp->enabled? https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/bts_vty.c at 3978 PS1, Line 3978: is_osmobts Looks like an unrelated change to me. https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/gsm_data.c at 1203 PS1, Line 1203: .enabled = true, BTW, there was a discussion recently about disabling C/I based logic by default, given that osmo-trx currently reports relatively low C/I values, which do not work well with the default thresholds. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 27 Sep 2021 15:23: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 Mon Sep 27 15:47:18 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 15:47:18 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: lower trace to make bl fit In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/simtrace2/+/25606 to look at the new patch set (#2). Change subject: contrib/jenkins.sh: lower trace to make bl fit ...................................................................... contrib/jenkins.sh: lower trace to make bl fit We keep running out of rom space, so reduce tracing to nothing for alle dfu targets, and let's hope newer gcc versions stop producing more code... Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e --- M contrib/jenkins.sh M firmware/Makefile 2 files changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/06/25606/2 -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e Gerrit-Change-Number: 25606 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 15:52:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:52:08 +0000 Subject: Change in osmo-bts[master]: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25285 ) Change subject: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY ...................................................................... Patch Set 3: > Patch Set 3: Code-Review+1 > > So right now if BTS doesn't support the IE but it finds it, it will fail. This is why osmo-bsc needs to make sure that a BTS reports BTS_FEAT_ACCH_TEMP_OVP as supported before including this optional and vendor specific IE in the RSL messages. And this is what it actually does. > Shouldn't it simply ignore it IMHO? I don't think it's a good idea to ignore something that the BSC requires us to do, at least because it's harder to figure out why something does not work as expected, despite being ACKed. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Gerrit-Change-Number: 25285 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 15:52: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 Mon Sep 27 15:53:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:53:23 +0000 Subject: Change in osmo-bts[master]: gsm_lchan2chan_nr(): separate RSL specific variant of this API In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25580 ) Change subject: gsm_lchan2chan_nr(): separate RSL specific variant of this API ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25580/2/src/common/gsm_data.c File src/common/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bts/+/25580/2/src/common/gsm_data.c at 259 PS2, Line 259: if (rsl) > This can be further simplified: [?] Yep, maybe in a separate patch then... Not really critical. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Gerrit-Change-Number: 25580 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 15:53: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 Sep 27 15:53:23 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 15:53:23 +0000 Subject: Change in osmo-ccid-firmware[master]: sychronize atmel start config with the headers References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25612 ) Change subject: sychronize atmel start config with the headers ...................................................................... sychronize atmel start config with the headers Change-Id: Ib21847f6726920e3f97600a347f2a16f957a5e8e --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_oscctrl_config.h M sysmoOCTSIM/config/hpl_rtc_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/hpl/core/hpl_init.c 5 files changed, 108 insertions(+), 59 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/12/25612/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 73ad9bd..92ef0bb 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -2,12 +2,17 @@ name: sysmoOCTSIM versions: api: '1.0' - backend: 1.5.122 - commit: 820baecf7dd115d94b0d42ee3b0b9d6ba2da7113 - content: 1.0.1507 - content_pack_name: acme-packs-all + backend: 1.8.580 + commit: f3d8d96e294de8dee688333bbbe8d8458a4f6b4c + content: unknown + content_pack_name: unknown format: '2' - frontend: 1.5.1877 + frontend: 1.8.580 + packs_version_avr8: 1.0.1463 + packs_version_qtouch: unknown + packs_version_sam: 1.0.1726 + version_backend: 1.8.580 + version_frontend: '' board: identifier: CustomBoard device: SAME54N19A-AF @@ -658,18 +663,46 @@ functionality: System api: HAL:HPL:GCLK configuration: + $input: 100000000 + $input_id: Digital Phase Locked Loop (DPLL1) + RESERVED_InputFreq: 100000000 + RESERVED_InputFreq_id: Digital Phase Locked Loop (DPLL1) + _$freq_output_Generic clock generator 0: 120000000 + _$freq_output_Generic clock generator 1: 48000000 + _$freq_output_Generic clock generator 10: 12000000 + _$freq_output_Generic clock generator 11: 2000000 + _$freq_output_Generic clock generator 2: 12500000 + _$freq_output_Generic clock generator 3: 32768 + _$freq_output_Generic clock generator 4: 50000000 + _$freq_output_Generic clock generator 5: 20000000 + _$freq_output_Generic clock generator 6: 7058823.529411765 + _$freq_output_Generic clock generator 7: 12000000 + _$freq_output_Generic clock generator 8: 12000000 + _$freq_output_Generic clock generator 9: 12000000 enable_gclk_gen_0: true + enable_gclk_gen_0__externalclock: 1000000 enable_gclk_gen_1: true enable_gclk_gen_10: false - enable_gclk_gen_11: true + enable_gclk_gen_10__externalclock: 1000000 + enable_gclk_gen_11: false + enable_gclk_gen_11__externalclock: 1000000 + enable_gclk_gen_1__externalclock: 1000000 enable_gclk_gen_2: true + enable_gclk_gen_2__externalclock: 1000000 enable_gclk_gen_3: true + enable_gclk_gen_3__externalclock: 1000000 enable_gclk_gen_4: true + enable_gclk_gen_4__externalclock: 1000000 enable_gclk_gen_5: true + enable_gclk_gen_5__externalclock: 1000000 enable_gclk_gen_6: true + enable_gclk_gen_6__externalclock: 1000000 enable_gclk_gen_7: false + enable_gclk_gen_7__externalclock: 1000000 enable_gclk_gen_8: false + enable_gclk_gen_8__externalclock: 1000000 enable_gclk_gen_9: false + enable_gclk_gen_9__externalclock: 1000000 gclk_arch_gen_0_enable: true gclk_arch_gen_0_idc: false gclk_arch_gen_0_oe: false @@ -680,7 +713,7 @@ gclk_arch_gen_10_oe: false gclk_arch_gen_10_oov: false gclk_arch_gen_10_runstdby: false - gclk_arch_gen_11_enable: true + gclk_arch_gen_11_enable: false gclk_arch_gen_11_idc: false gclk_arch_gen_11_oe: false gclk_arch_gen_11_oov: false @@ -776,6 +809,11 @@ functionality: System api: HAL:HPL:MCLK configuration: + $input: 120000000 + $input_id: Generic clock generator 0 + RESERVED_InputFreq: 120000000 + RESERVED_InputFreq_id: Generic clock generator 0 + _$freq_output_CPU: 120000000 cpu_clock_source: Generic clock generator 0 cpu_div: '1' enable_cpu_clock: true @@ -799,6 +837,11 @@ functionality: System api: HAL:HPL:OSC32KCTRL configuration: + $input: 32768 + $input_id: 32kHz External Crystal Oscillator (XOSC32K) + RESERVED_InputFreq: 32768 + RESERVED_InputFreq_id: 32kHz External Crystal Oscillator (XOSC32K) + _$freq_output_RTC source: 32768 enable_osculp32k: true enable_rtc_source: false enable_xosc32k: true @@ -809,11 +852,11 @@ xosc32k_arch_cfden: false xosc32k_arch_cfdeo: false xosc32k_arch_cgm: Standard mode - xosc32k_arch_en1k: false + xosc32k_arch_en1k: true xosc32k_arch_en32k: true xosc32k_arch_enable: true - xosc32k_arch_ondemand: true - xosc32k_arch_runstdby: false + xosc32k_arch_ondemand: false + xosc32k_arch_runstdby: true xosc32k_arch_startup: 62592us xosc32k_arch_swben: false xosc32k_arch_xtalen: true @@ -827,19 +870,28 @@ functionality: System api: HAL:HPL:OSCCTRL configuration: - dfll_arch_bplckc: false + $input: 32768 + $input_id: Generic clock generator 3 + RESERVED_InputFreq: 32768 + RESERVED_InputFreq_id: Generic clock generator 3 + _$freq_output_Digital Frequency Locked Loop (DFLL48M): 48000000 + _$freq_output_Digital Phase Locked Loop (DPLL0): 120000000 + _$freq_output_Digital Phase Locked Loop (DPLL1): 100000000 + _$freq_output_External Crystal Oscillator 8-48MHz (XOSC0): 12000000 + _$freq_output_External Crystal Oscillator 8-48MHz (XOSC1): 12000000 + dfll_arch_bplckc: true dfll_arch_calibration: false dfll_arch_ccdis: true dfll_arch_coarse: 31 dfll_arch_cstep: 1 dfll_arch_enable: true dfll_arch_fine: 128 - dfll_arch_fstep: 1 + dfll_arch_fstep: 10 dfll_arch_llaw: false dfll_arch_ondemand: false dfll_arch_qldis: false dfll_arch_runstdby: false - dfll_arch_stable: false + dfll_arch_stable: true dfll_arch_usbcrm: true dfll_arch_waitlock: false dfll_mode: Closed Loop Mode @@ -863,7 +915,7 @@ fdpll0_clock_div: 2 fdpll0_ldr: 59 fdpll0_ldrfrac: 0 - fdpll0_ref_clock: Generic clock generator 11 + fdpll0_ref_clock: External Crystal Oscillator 8-48MHz (XOSC1) fdpll1_arch_dcoen: false fdpll1_arch_enable: true fdpll1_arch_filter: 0 @@ -877,7 +929,7 @@ fdpll1_clock_div: 2 fdpll1_ldr: 49 fdpll1_ldrfrac: 0 - fdpll1_ref_clock: Generic clock generator 11 + fdpll1_ref_clock: External Crystal Oscillator 8-48MHz (XOSC1) xosc0_arch_cfden: false xosc0_arch_enable: false xosc0_arch_enalc: false @@ -969,7 +1021,7 @@ api: HAL:Driver:Calendar configuration: rtc_arch_init_reset: true - rtc_arch_prescaler: Peripheral clock divided by 1 + rtc_arch_prescaler: Peripheral clock divided by 1024 rtc_cmpeo0: false rtc_cmpeo1: false rtc_event_control: false @@ -1037,11 +1089,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1084,11 +1136,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1131,11 +1183,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1178,11 +1230,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1225,11 +1277,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1272,11 +1324,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1319,11 +1371,11 @@ usart_gtime: 2-bit times usart_inack: NACK is transmitted when a parity error is received. usart_inverse_enabled: false - usart_iso7816_type: T=0 + usart_iso7816_type: T=1 usart_maxiter: 7 usart_parity: Even parity usart_rx_enable: true - usart_stop_bit: One stop bit + usart_stop_bit: Two stop bits usart_tx_enable: true optional_signals: [] variant: @@ -1416,9 +1468,9 @@ usb_ep5_I_CACHE: No cache usb_ep6_I_CACHE: No cache usb_ep7_I_CACHE: No cache - usbd_arch_max_ep_n: 2 (EP 0x82 or 0x02) + usbd_arch_max_ep_n: 4 (EP 0x84 or 0x04) usbd_arch_speed: Full speed - usbd_num_ep_sp: 4 (EP0 + 3 endpoints) + usbd_num_ep_sp: 7 (EP0 + 6 endpoints) optional_signals: [] variant: specification: default @@ -1664,3 +1716,4 @@ user_label: SDA2 configuration: null toolchain_options: [] +static_files: [] diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 17bcfc2..0921c6d 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -296,7 +296,7 @@ // Indicates whether Bypass Coarse Lock is enabled or not // dfll_arch_bplckc #ifndef CONF_DFLL_BPLCKC -#define CONF_DFLL_BPLCKC 0 +#define CONF_DFLL_BPLCKC 1 #endif // Quick Lock Disable @@ -324,7 +324,7 @@ // Indicates whether Stable DFLL Frequency is enabled or not // dfll_arch_stable #ifndef CONF_DFLL_STABLE -#define CONF_DFLL_STABLE 0 +#define CONF_DFLL_STABLE 1 #endif // Operating Mode Selection @@ -344,7 +344,7 @@ // Fine Maximum Step <0x0-0xFF> // dfll_arch_fstep #ifndef CONF_DFLL_FSTEP -#define CONF_DFLL_FSTEP 0x1 +#define CONF_DFLL_FSTEP 0xa #endif // DFLL Multiply Factor <0x0-0xFFFF> @@ -404,7 +404,6 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK -// directly use XOSC1 as clock input (no need to use an additional GCLK) #define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif @@ -431,23 +430,24 @@ #endif // Loop Divider Ratio Fractional Part <0x0-0x1F> +// Value of LDRFRAC is calculated using Fclk_dpll=Fckr*(LDR+1+LDRFRAC/32) formula as given in datasheet. This value is directly written in to DPLLRATIO register // fdpll0_ldrfrac #ifndef CONF_FDPLL0_LDRFRAC #define CONF_FDPLL0_LDRFRAC 0x0 #endif // Loop Divider Ratio Integer Part <0x0-0x1FFF> +// Value of LDR is calculated using Fclk_dpll=Fckr*(LDR+1+LDRFRAC/32) formula as given in datasheet. This value is directly written in to DPLLRATIO register // fdpll0_ldr #ifndef CONF_FDPLL0_LDR -// 2 MHz input clock * ( <59> + 1 = 60 ) = 120 MHz output clock -#define CONF_FDPLL0_LDR 59 +#define CONF_FDPLL0_LDR 0x3b #endif // Clock Divider <0x0-0x7FF> +// This Clock divider is only for XOSC clock input to DPLL // fdpll0_clock_div #ifndef CONF_FDPLL0_DIV -// XOSC1 = 12 MHz, divide by 2 * ( <2> + 1 ) = 6 to have a 2 MHz clock input (maximum is 3.4 MHz) -#define CONF_FDPLL0_DIV 2 +#define CONF_FDPLL0_DIV 0x2 #endif // DCO Filter Enable @@ -488,7 +488,6 @@ // <0x3=>XOSC1 clock reference // fdpll0_arch_refclk #ifndef CONF_FDPLL0_REFCLK -// XOSC1 is used as input signal, thus also use it as reference #define CONF_FDPLL0_REFCLK 0x3 #endif @@ -533,7 +532,6 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK -// directly use XOSC1 as clock input (no need to use an additional GCLK) #define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif @@ -560,23 +558,24 @@ #endif // Loop Divider Ratio Fractional Part <0x0-0x1F> +// Value of LDRFRAC is calculated using Fclk_dpll=Fckr*(LDR+1+LDRFRAC/32) formula as given in datasheet. This value is directly written in to DPLLRATIO register // fdpll1_ldrfrac #ifndef CONF_FDPLL1_LDRFRAC #define CONF_FDPLL1_LDRFRAC 0x0 #endif // Loop Divider Ratio Integer Part <0x0-0x1FFF> +// Value of LDR is calculated using Fclk_dpll=Fckr*(LDR+1+LDRFRAC/32) formula as given in datasheet. This value is directly written in to DPLLRATIO register // fdpll1_ldr #ifndef CONF_FDPLL1_LDR -// 2 MHz input clock * ( <49> + 1 = 50 ) = 100 MHz output clock -#define CONF_FDPLL1_LDR 49 +#define CONF_FDPLL1_LDR 0x31 #endif // Clock Divider <0x0-0x7FF> +// This Clock divider is only for XOSC clock input to DPLL // fdpll1_clock_div #ifndef CONF_FDPLL1_DIV -// XOSC1 = 12 MHz, divide by 2 * ( <2> + 1 ) = 6 to have a 2 MHz clock input (maximum is 3.4 MHz) -#define CONF_FDPLL1_DIV 2 +#define CONF_FDPLL1_DIV 0x2 #endif // DCO Filter Enable @@ -617,7 +616,6 @@ // <0x3=>XOSC1 clock reference // fdpll1_arch_refclk #ifndef CONF_FDPLL1_REFCLK -// XOSC1 is used as input signal, thus also use it as reference #define CONF_FDPLL1_REFCLK 0x3 #endif diff --git a/sysmoOCTSIM/config/hpl_rtc_config.h b/sysmoOCTSIM/config/hpl_rtc_config.h index 3961d40..0e795ba 100644 --- a/sysmoOCTSIM/config/hpl_rtc_config.h +++ b/sysmoOCTSIM/config/hpl_rtc_config.h @@ -35,7 +35,7 @@ // rtc_arch_prescaler #ifndef CONF_RTC_PRESCALER -#define CONF_RTC_PRESCALER 0xB +#define CONF_RTC_PRESCALER 0xb #endif diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index 6d8ba10..205e33e 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -97,7 +97,7 @@ * \brief SERCOM0's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM0_CORE_FREQUENCY -#define CONF_GCLK_SERCOM0_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM0_CORE_FREQUENCY 12500000 #endif /** @@ -177,7 +177,7 @@ * \brief SERCOM1's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM1_CORE_FREQUENCY -#define CONF_GCLK_SERCOM1_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM1_CORE_FREQUENCY 12500000 #endif /** @@ -257,7 +257,7 @@ * \brief SERCOM2's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY -#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 12500000 #endif /** @@ -337,7 +337,7 @@ * \brief SERCOM3's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM3_CORE_FREQUENCY -#define CONF_GCLK_SERCOM3_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM3_CORE_FREQUENCY 12500000 #endif /** @@ -417,7 +417,7 @@ * \brief SERCOM4's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM4_CORE_FREQUENCY -#define CONF_GCLK_SERCOM4_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM4_CORE_FREQUENCY 12500000 #endif /** @@ -497,7 +497,7 @@ * \brief SERCOM5's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM5_CORE_FREQUENCY -#define CONF_GCLK_SERCOM5_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM5_CORE_FREQUENCY 12500000 #endif /** @@ -577,7 +577,7 @@ * \brief SERCOM6's Core Clock frequency */ #ifndef CONF_GCLK_SERCOM6_CORE_FREQUENCY -#define CONF_GCLK_SERCOM6_CORE_FREQUENCY 500000 +#define CONF_GCLK_SERCOM6_CORE_FREQUENCY 12500000 #endif /** diff --git a/sysmoOCTSIM/hpl/core/hpl_init.c b/sysmoOCTSIM/hpl/core/hpl_init.c index bb8425c..be0db93 100644 --- a/sysmoOCTSIM/hpl/core/hpl_init.c +++ b/sysmoOCTSIM/hpl/core/hpl_init.c @@ -42,12 +42,10 @@ #include /* Referenced GCLKs (out of 0~11), should be initialized firstly - * - GCLK 11 for FDPLL1 - * - GCLK 11 for FDPLL0 */ -#define _GCLK_INIT_1ST 0x00000800 +#define _GCLK_INIT_1ST 0x00000000 /* Not referenced GCLKs, initialized last */ -#define _GCLK_INIT_LAST 0x000007FF +#define _GCLK_INIT_LAST 0x00000FFF /** * \brief Initialize the hardware abstraction layer -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Ib21847f6726920e3f97600a347f2a16f957a5e8e Gerrit-Change-Number: 25612 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 Sep 27 15:53:24 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 15:53:24 +0000 Subject: Change in osmo-ccid-firmware[master]: internal ul32k instead of external 32k osc References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25613 ) Change subject: internal ul32k instead of external 32k osc ...................................................................... internal ul32k instead of external 32k osc This should be fine, the slow clock for the uarts is not used for the modes we're interested in, and the usb clock is derived from the usb sof anyway, so it's not used as a reference there either. This will most likely drift, but so did the external one, and a free-running rtc without any external input was going to drift anyway, considering the octsim is supposed to just run without being powered down for a very long time. Change-Id: I257b8854e1860ed698c4007efeb5d16e842b519a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_osc32kctrl_config.h M sysmoOCTSIM/config/peripheral_clk_config.h 4 files changed, 18 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/13/25613/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 92ef0bb..74d73e0 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -663,10 +663,10 @@ functionality: System api: HAL:HPL:GCLK configuration: - $input: 100000000 - $input_id: Digital Phase Locked Loop (DPLL1) - RESERVED_InputFreq: 100000000 - RESERVED_InputFreq_id: Digital Phase Locked Loop (DPLL1) + $input: 32768 + $input_id: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) + RESERVED_InputFreq: 32768 + RESERVED_InputFreq_id: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) _$freq_output_Generic clock generator 0: 120000000 _$freq_output_Generic clock generator 1: 48000000 _$freq_output_Generic clock generator 10: 12000000 @@ -780,7 +780,7 @@ gclk_gen_2_oscillator: Digital Phase Locked Loop (DPLL1) gclk_gen_3_div: 1 gclk_gen_3_div_sel: false - gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K) + gclk_gen_3_oscillator: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) gclk_gen_4_div: 2 gclk_gen_4_div_sel: false gclk_gen_4_oscillator: Digital Phase Locked Loop (DPLL1) @@ -838,23 +838,23 @@ api: HAL:HPL:OSC32KCTRL configuration: $input: 32768 - $input_id: 32kHz External Crystal Oscillator (XOSC32K) + $input_id: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) RESERVED_InputFreq: 32768 - RESERVED_InputFreq_id: 32kHz External Crystal Oscillator (XOSC32K) - _$freq_output_RTC source: 32768 + RESERVED_InputFreq_id: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) + _$freq_output_RTC source: 1024 enable_osculp32k: true enable_rtc_source: false - enable_xosc32k: true + enable_xosc32k: false osculp32k_calib: 0 osculp32k_calib_enable: false - rtc_1khz_selection: false - rtc_source_oscillator: 32kHz External Crystal Oscillator (XOSC32K) + rtc_1khz_selection: true + rtc_source_oscillator: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) xosc32k_arch_cfden: false xosc32k_arch_cfdeo: false xosc32k_arch_cgm: Standard mode xosc32k_arch_en1k: true xosc32k_arch_en32k: true - xosc32k_arch_enable: true + xosc32k_arch_enable: false xosc32k_arch_ondemand: false xosc32k_arch_runstdby: true xosc32k_arch_startup: 62592us diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 158fc93..f2b75bf 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -252,7 +252,7 @@ // This defines the clock source for generic clock generator 3 // gclk_gen_3_oscillator #ifndef CONF_GCLK_GEN_3_SOURCE -#define CONF_GCLK_GEN_3_SOURCE GCLK_GENCTRL_SRC_XOSC32K +#define CONF_GCLK_GEN_3_SOURCE GCLK_GENCTRL_SRC_OSCULP32K #endif // Run in Standby diff --git a/sysmoOCTSIM/config/hpl_osc32kctrl_config.h b/sysmoOCTSIM/config/hpl_osc32kctrl_config.h index f41861e..7bcb41b 100644 --- a/sysmoOCTSIM/config/hpl_osc32kctrl_config.h +++ b/sysmoOCTSIM/config/hpl_osc32kctrl_config.h @@ -7,7 +7,7 @@ // RTC Source configuration // enable_rtc_source #ifndef CONF_RTCCTRL_CONFIG -#define CONF_RTCCTRL_CONFIG 1 +#define CONF_RTCCTRL_CONFIG 0 #endif // RTC source control @@ -17,7 +17,7 @@ // This defines the clock source for RTC // rtc_source_oscillator #ifndef CONF_RTCCTRL_SRC -#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_XOSC32K +#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_OSCULP32K #endif // Use 1 kHz output @@ -43,7 +43,7 @@ // Indicates whether configuration for External 32K Osc is enabled or not // enable_xosc32k #ifndef CONF_XOSC32K_CONFIG -#define CONF_XOSC32K_CONFIG 1 +#define CONF_XOSC32K_CONFIG 0 #endif // 32kHz External Crystal Oscillator Control @@ -51,7 +51,7 @@ // Indicates whether 32kHz External Crystal Oscillator is enabled or not // xosc32k_arch_enable #ifndef CONF_XOSC32K_ENABLE -#define CONF_XOSC32K_ENABLE 1 +#define CONF_XOSC32K_ENABLE 0 #endif // Start-Up Time diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index 205e33e..0231d7d 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -25,7 +25,7 @@ * \brief RTC's Clock frequency */ #ifndef CONF_GCLK_RTC_FREQUENCY -#define CONF_GCLK_RTC_FREQUENCY 32768 +#define CONF_GCLK_RTC_FREQUENCY 1024 #endif // Core Clock Source -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I257b8854e1860ed698c4007efeb5d16e842b519a Gerrit-Change-Number: 25613 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 Sep 27 15:53:24 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 15:53:24 +0000 Subject: Change in osmo-ccid-firmware[master]: proper xosc startup delay References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25614 ) Change subject: proper xosc startup delay ...................................................................... proper xosc startup delay Change-Id: I5063b43cd3973b66963fc946c019f32a0281d1a6 --- M sysmoOCTSIM/config/hpl_oscctrl_config.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/14/25614/1 diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 0921c6d..526b095 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -158,7 +158,7 @@ // <0xF=>1000000us // xosc1_arch_startup #ifndef CONF_XOSC1_STARTUP -#define CONF_XOSC1_STARTUP 0 +#define CONF_XOSC1_STARTUP 0xB #endif // Clock Switch Back -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I5063b43cd3973b66963fc946c019f32a0281d1a6 Gerrit-Change-Number: 25614 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 Sep 27 15:53:25 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 15:53:25 +0000 Subject: Change in osmo-ccid-firmware[master]: remove unused dmac References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25615 ) Change subject: remove unused dmac ...................................................................... remove unused dmac Change-Id: I9646220d9864fd8ddc133da58151227c24546cc6 --- M sysmoOCTSIM/atmel_start.c M sysmoOCTSIM/config/hpl_dmac_config.h 2 files changed, 4 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/15/25615/1 diff --git a/sysmoOCTSIM/atmel_start.c b/sysmoOCTSIM/atmel_start.c index 931a09a..d6304fa 100644 --- a/sysmoOCTSIM/atmel_start.c +++ b/sysmoOCTSIM/atmel_start.c @@ -1,19 +1,11 @@ #include -/** Memory to memory DMA callback */ -static void M2M_DMA_complete_cb(void) -{ - dma_m2m_complete_flag = true; -} - /** * Initializes MCU, drivers and middleware in the project **/ void atmel_start_init(void) { system_init(); - dma_memory_init(); - dma_memory_register_callback(DMA_MEMORY_COMPLETE_CB, M2M_DMA_complete_cb); #ifdef ENABLE_DBG_UART7 stdio_redirect_init(); #endif diff --git a/sysmoOCTSIM/config/hpl_dmac_config.h b/sysmoOCTSIM/config/hpl_dmac_config.h index c736778..90499fc 100644 --- a/sysmoOCTSIM/config/hpl_dmac_config.h +++ b/sysmoOCTSIM/config/hpl_dmac_config.h @@ -8,7 +8,7 @@ // Indicates whether dmac is enabled or not // dmac_enable #ifndef CONF_DMAC_ENABLE -#define CONF_DMAC_ENABLE 1 +#define CONF_DMAC_ENABLE 0 #endif // Priority Level 0 @@ -105,7 +105,7 @@ // Channel 0 settings // dmac_channel_0_settings #ifndef CONF_DMAC_CHANNEL_0_SETTINGS -#define CONF_DMAC_CHANNEL_0_SETTINGS 1 +#define CONF_DMAC_CHANNEL_0_SETTINGS 0 #endif // Channel Run in Standby @@ -284,14 +284,14 @@ // Indicates whether the source address incrementation is enabled or not // dmac_srcinc_0 #ifndef CONF_DMAC_SRCINC_0 -#define CONF_DMAC_SRCINC_0 1 +#define CONF_DMAC_SRCINC_0 0 #endif // Destination Address Increment // Indicates whether the destination address incrementation is enabled or not // dmac_dstinc_0 #ifndef CONF_DMAC_DSTINC_0 -#define CONF_DMAC_DSTINC_0 1 +#define CONF_DMAC_DSTINC_0 0 #endif // Beat Size -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I9646220d9864fd8ddc133da58151227c24546cc6 Gerrit-Change-Number: 25615 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 Sep 27 15:53:29 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:53:29 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25581 ) Change subject: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Gerrit-Change-Number: 25581 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 15:53:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 15:53:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:53:36 +0000 Subject: Change in osmo-bts[master]: l1sap: unify channel (de)activation/modification messages In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25579 ) Change subject: l1sap: unify channel (de)activation/modification messages ...................................................................... l1sap: unify channel (de)activation/modification messages LOGPLCHAN() prepends the contextual information for us, there is no need to print trx->nr again. Take a chance to apply some additional cosmetic changes, like fixing capital letter. Change-Id: Ia199d584c937eef4118c99af4523fd91b2e46107 --- M src/common/l1sap.c 1 file changed, 9 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b9bc675..2ebd39a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -2040,7 +2040,7 @@ struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); int rc; - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "activating channel %s\n", rsl_chan_nr_str(chan_nr)); + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Activating channel %s\n", rsl_chan_nr_str(chan_nr)); lchan->s = trx->bts->radio_link_timeout.current; @@ -2073,8 +2073,8 @@ int l1sap_chan_rel(struct gsm_bts_trx *trx, uint8_t chan_nr) { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "deactivating channel chan_nr=%s trx=%d\n", - rsl_chan_nr_str(chan_nr), trx->nr); + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Deactivating channel %s\n", + rsl_chan_nr_str(chan_nr)); if (lchan->tch.dtx.dl_amr_fsm) { osmo_fsm_inst_free(lchan->tch.dtx.dl_amr_fsm); @@ -2089,8 +2089,8 @@ { struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); - LOGPLCHAN(lchan, DL1C, LOGL_INFO, "deactivating sacch chan_nr=%s trx=%d\n", - rsl_chan_nr_str(chan_nr), trx->nr); + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Deactivating SACCH on channel %s\n", + rsl_chan_nr_str(chan_nr)); return l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_DEACTIVATE, 1); @@ -2098,8 +2098,10 @@ int l1sap_chan_modify(struct gsm_bts_trx *trx, uint8_t chan_nr) { - LOGP(DL1C, LOGL_INFO, "modifying channel chan_nr=%s trx=%d\n", - rsl_chan_nr_str(chan_nr), trx->nr); + struct gsm_lchan *lchan = get_lchan_by_chan_nr(trx, chan_nr); + + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "Modifying channel %s\n", + rsl_chan_nr_str(chan_nr)); return l1sap_chan_act_dact_modify(trx, chan_nr, PRIM_INFO_MODIFY, 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ia199d584c937eef4118c99af4523fd91b2e46107 Gerrit-Change-Number: 25579 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 15:53:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:53:37 +0000 Subject: Change in osmo-bts[master]: gsm_lchan2chan_nr(): separate RSL specific variant of this API In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25580 ) Change subject: gsm_lchan2chan_nr(): separate RSL specific variant of this API ...................................................................... gsm_lchan2chan_nr(): separate RSL specific variant of this API The ip.access style dynamic timeslots are a bit special in a way that on the A-bis/RSL we always use the Channel Number value of TCH/F, even in PDCH mode. This is why gsm_lchan2chan_nr() would always return values corresponding to TCH/F for TCH/F_PDCH. This behavior is only acceptable in the context of RSL messages, while other parts of the code base may not work properly due to this trick. A good example is the scheduler in osmo-bts-trx, where we have to patch Channel Number value to make channel activation work. DPCU INFO pcu_sock.c:853 Activate request received: TRX=0 TS=5 DL1C INFO l1sap.c:2043 (bts=0,trx=0,ts=5,ss=0) Activating channel TCH/F on TS5 DL1C NOTICE scheduler.c:1097 (bts=0,trx=0,ts=5,ss=0) Activating PDTCH DL1C NOTICE scheduler.c:1097 (bts=0,trx=0,ts=5,ss=0) Activating PTCCH In the code branch responsible for channel deactivation, we somehow forgot to add the same workaround, so deactivation does not work: DL1C INFO l1sap.c:2076 (bts=0,trx=0,ts=5,ss=0) Deactivating channel TCH/F on TS5 DTRX INFO trx_if.c:255 phy0.0: Enqueuing TRX control command 'CMD NOHANDOVER 5 0' DRSL NOTICE rsl.c:1286 (bts=0,trx=0,ts=5,ss=0) (bts=0,trx=0,ts=5,ss=0) not sending REL ACK Because of that, TCH/F_PDCH timeslots actually remain active after deactivation, so the scheduler keeps producing L1SAP DATA.ind. DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DL1P ERROR l1sap.c:732 1583426/1194/00/29/14 No lchan for DATA MEAS IND (chan_nr=PDCH on TS5) DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DL1P ERROR l1sap.c:732 1583430/1194/04/33/18 No lchan for DATA MEAS IND (chan_nr=PDCH on TS5) DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message DL1P NOTICE l1sap.c:126 (bts=0,trx=0,ts=5,ss=0) assuming active lchan, but state is NONE DPCU NOTICE pcu_sock.c:973 PCU socket not connected, dropping message Instead of patching Channel Number in various places, let's rather make the RSL specific behavior configurable by having two variants of gsm_lchan2chan_nr(). Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Fixes: OS#5238 --- M include/osmo-bts/gsm_data.h M src/common/gsm_data.c M src/common/rsl.c 3 files changed, 37 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 9fe68d6..19689e5 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -568,6 +568,7 @@ } uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan); +uint8_t gsm_lchan2chan_nr_rsl(const struct gsm_lchan *lchan); uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, enum gsm_phys_chan_config as_pchan); diff --git a/src/common/gsm_data.c b/src/common/gsm_data.c index ee6e693..1525328 100644 --- a/src/common/gsm_data.c +++ b/src/common/gsm_data.c @@ -243,7 +243,7 @@ return chan_nr; } -uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan) +static uint8_t _gsm_lchan2chan_nr(const struct gsm_lchan *lchan, bool rsl) { uint8_t chan_nr; @@ -254,9 +254,14 @@ chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, lchan->ts->dyn.pchan_is); break; case GSM_PCHAN_TCH_F_PDCH: - /* For ip.access style dyn TS, we always want to use the chan_nr as if it was TCH/F. + /* For ip.access style dyn TS, on RSL we want to use the chan_nr as if it was TCH/F. * We're using custom PDCH ACT and DEACT messages that use the usual chan_nr values. */ - chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); + if (rsl) + chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); + else if (~lchan->ts->flags & TS_F_PDCH_ACTIVE) + chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_TCH_F); + else + chan_nr = gsm_lchan_as_pchan2chan_nr(lchan, GSM_PCHAN_PDCH); break; default: chan_nr = gsm_pchan2chan_nr(lchan->ts->pchan, lchan->ts->nr, lchan->nr); @@ -271,6 +276,16 @@ return chan_nr; } +uint8_t gsm_lchan2chan_nr(const struct gsm_lchan *lchan) +{ + return _gsm_lchan2chan_nr(lchan, false); +} + +uint8_t gsm_lchan2chan_nr_rsl(const struct gsm_lchan *lchan) +{ + return _gsm_lchan2chan_nr(lchan, true); +} + uint8_t gsm_lchan_as_pchan2chan_nr(const struct gsm_lchan *lchan, enum gsm_phys_chan_config as_pchan) { diff --git a/src/common/rsl.c b/src/common/rsl.c index 368590c..742270d 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -461,7 +461,7 @@ if (band < 0) continue; - msgb_v_put(nmsg, gsm_lchan2chan_nr(lchan)); + msgb_v_put(nmsg, gsm_lchan2chan_nr_rsl(lchan)); msgb_v_put(nmsg, (band & 0x07) << 5); } } @@ -1225,7 +1225,7 @@ /* 8.4.19 sending RF CHANnel RELease ACKnowledge */ int rsl_tx_rf_rel_ack(struct gsm_lchan *lchan) { - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); bool send_rel_ack; switch (lchan->rel_act_kind) { @@ -1314,7 +1314,7 @@ { struct gsm_time *gtime = get_time(lchan->ts->trx->bts); struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); uint8_t ie[2]; LOGP(DRSL, LOGL_NOTICE, "%s (ss=%d) %s Tx CHAN ACT ACK\n", @@ -1340,7 +1340,7 @@ int rsl_tx_hando_det(struct gsm_lchan *lchan, uint8_t *ho_delay) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "Sending HANDOver DETect\n"); @@ -1382,7 +1382,7 @@ return abis_bts_rsl_sendmsg(msg); } static int rsl_tx_chan_act_nack(struct gsm_lchan *lchan, uint8_t cause) { - return _rsl_tx_chan_act_nack(lchan->ts->trx, gsm_lchan2chan_nr(lchan), cause, lchan); + return _rsl_tx_chan_act_nack(lchan->ts->trx, gsm_lchan2chan_nr_rsl(lchan), cause, lchan); } /* Send an RSL Channel Activation Ack if cause is zero, a Nack otherwise. */ @@ -1403,7 +1403,7 @@ int rsl_tx_conn_fail(const struct gsm_lchan *lchan, uint8_t cause) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Sending Connection Failure: cause = 0x%02x\n", cause); @@ -2011,7 +2011,7 @@ } } - rsl_rll_push_l3(fake_msg, RSL_MT_DATA_IND, gsm_lchan2chan_nr(lchan), + rsl_rll_push_l3(fake_msg, RSL_MT_DATA_IND, gsm_lchan2chan_nr_rsl(lchan), link_id, 1); fake_msg->lchan = lchan; @@ -2146,7 +2146,7 @@ } static int rsl_tx_mode_modif_nack(struct gsm_lchan *lchan, uint8_t cause) { - return _rsl_tx_mode_modif_nack(lchan->ts->trx, gsm_lchan2chan_nr(lchan), cause, lchan); + return _rsl_tx_mode_modif_nack(lchan->ts->trx, gsm_lchan2chan_nr_rsl(lchan), cause, lchan); } @@ -2154,7 +2154,7 @@ static int rsl_tx_mode_modif_ack(struct gsm_lchan *lchan) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "Tx MODE MODIF ACK\n"); @@ -2432,7 +2432,7 @@ return -ENOMEM; /* 9.3.1 Channel Number */ - rsl_cch_push_hdr(msg, RSL_MT_CBCH_LOAD_IND, gsm_lchan2chan_nr(lchan)); + rsl_cch_push_hdr(msg, RSL_MT_CBCH_LOAD_IND, gsm_lchan2chan_nr_rsl(lchan)); /* 9.3.43 CBCH Load Information */ load_info = ((overflow & 1) << 7) | (amount & 0x0F); @@ -2494,7 +2494,7 @@ msgb_tv16_put(nmsg, RSL_IE_IPAC_CONN_ID, htons(lchan->abis_ip.conn_id)); rsl_add_rtp_stats(lchan, nmsg); msgb_tlv_put(nmsg, RSL_IE_CAUSE, 1, &cause); - rsl_ipa_push_hdr(nmsg, RSL_MT_IPAC_DLCX_IND, gsm_lchan2chan_nr(lchan)); + rsl_ipa_push_hdr(nmsg, RSL_MT_IPAC_DLCX_IND, gsm_lchan2chan_nr_rsl(lchan)); nmsg->trx = lchan->ts->trx; @@ -2506,7 +2506,7 @@ uint8_t orig_msgt) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); const char *name; struct in_addr ia; @@ -2554,7 +2554,7 @@ static int rsl_tx_ipac_dlcx_ack(struct gsm_lchan *lchan, int inc_conn_id) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "RSL Tx IPAC_DLCX_ACK\n"); @@ -2577,7 +2577,7 @@ uint8_t cause) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_INFO, "RSL Tx IPAC_DLCX_NACK\n"); @@ -2603,7 +2603,7 @@ int inc_ipport, uint8_t orig_msgtype) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); /* FIXME: allocate new msgb and copy old over */ LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "RSL Tx IPAC_BIND_NACK\n"); @@ -2918,7 +2918,7 @@ static int rsl_tx_dyn_pdch_ack(struct gsm_lchan *lchan, bool pdch_act) { struct gsm_time *gtime = get_time(lchan->ts->trx->bts); - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); struct msgb *msg; uint8_t ie[2]; @@ -2947,7 +2947,7 @@ uint8_t cause) { struct msgb *msg; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Tx PDCH %s NACK (cause = 0x%02x)\n", pdch_act ? "ACT" : "DEACT", cause); @@ -3512,7 +3512,7 @@ { struct msgb *msg; uint8_t meas_res[16]; - uint8_t chan_nr = gsm_lchan2chan_nr(lchan); + uint8_t chan_nr = gsm_lchan2chan_nr_rsl(lchan); int res_valid = lchan->meas.flags & LC_UL_M_F_RES_VALID; struct gsm_bts *bts = lchan->ts->trx->bts; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I01680140c7201bf5284b278bceaea8ae01c122b2 Gerrit-Change-Number: 25580 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Mon Sep 27 15:53:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:53:37 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25581 ) Change subject: osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching ...................................................................... osmo-bts-trx: bts_model_l1sap_down(): remove chan_nr patching Thanks to [1], there is no need to patch chan_nr for PDCH anymore. The upper layers are now expected to use the correct values. [1] I01680140c7201bf5284b278bceaea8ae01c122b2 Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Related: OS#5238 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 0 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: 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 f35c9ba..f3d8743 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -423,19 +423,6 @@ /* attempt to allocate an Error Concealment Unit instance, if available */ lchan->ecu_state = osmo_ecu_init(trx, lchan2ecu_codec(lchan)); - /* trx_chan_desc[] in scheduler.c uses the RSL_CHAN_OSMO_PDCH cbits - * (0xc0) to indicate the need for PDTCH and PTCCH SAPI activation. - * However, 0xc0 is a cbits pattern exclusively used for Osmocom style - * dyn TS (a non-standard RSL Chan Activ mod); hence, for IPA style dyn - * TS, the chan_nr will never reflect 0xc0 and we would omit the - * PDTCH,PTTCH SAPIs. To properly de-/activate the PDTCH SAPIs in - * scheduler.c, make sure the 0xc0 cbits are set for de-/activating PDTCH - * lchans, i.e. both Osmocom and IPA style dyn TS. (For Osmocom style dyn - * TS, the chan_nr typically already reflects 0xc0, while it doesn't for - * IPA style.) */ - if (lchan->type == GSM_LCHAN_PDTCH) - chan_nr = RSL_CHAN_OSMO_PDCH | (chan_nr & ~RSL_CHAN_NR_MASK); - /* activate dedicated channel */ trx_sched_set_lchan(lchan, chan_nr, LID_DEDIC, true); /* activate associated channel */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I26eb2081eddb4ce900a7867897bc69c3f77dbd73 Gerrit-Change-Number: 25581 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Mon Sep 27 15:53:38 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 15:53:38 +0000 Subject: Change in osmo-bts[master]: trx_sched_set_lchan(): use LOGL_INFO for logging messages In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25605 ) Change subject: trx_sched_set_lchan(): use LOGL_INFO for logging messages ...................................................................... trx_sched_set_lchan(): use LOGL_INFO for logging messages There is no need to log channel activation / deactivation messages as LOGL_NOTICE - this is a normal event requiring no attention. Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d --- M src/common/scheduler.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: 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 0826eda..36eaa68 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1094,7 +1094,7 @@ continue; found = true; - LOGPLCHAN(lchan, DL1C, LOGL_NOTICE, "%s %s\n", + LOGPLCHAN(lchan, DL1C, LOGL_INFO, "%s %s\n", (active) ? "Activating" : "Deactivating", trx_chan_desc[i].name); /* free burst memory, to cleanly start with burst 0 */ -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I7765fecb7f7ec67c8f96e91c378626e21e48c71d Gerrit-Change-Number: 25605 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 16:02:08 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 16:02:08 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25284 ) Change subject: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Gerrit-Change-Number: 25284 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 16: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 Mon Sep 27 16:02:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 16:02:27 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25602 ) Change subject: osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() ...................................................................... osmo-bts-trx: remove an 'else' branch in _sched_dl_burst() When I introduced this branch in change [1], I was under assumption that PDCHs never have an associated 'struct gsm_lchan'. This is incorrect: the association actually happens during PDCH activation, i.e. when osmo-pcu establishes connection over the PCUIF. Enforcing attenuation of 0 dB for other channel types makes no sense. [1] I3dcee6e910ccc61c5c63c728db9ea04327e2fc98 Change-Id: I77a839725f22be1be4a025f579c4c9ccdfb53460 --- M src/common/scheduler.c 1 file changed, 0 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/common/scheduler.c b/src/common/scheduler.c index 36eaa68..a07ef68 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1327,8 +1327,6 @@ /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) br->att = l1cs->lchan->bs_power_ctrl.current; - else /* Ensure no attenuation in the absence of lchan (e.g. on PDCH) */ - br->att = 0; /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I77a839725f22be1be4a025f579c4c9ccdfb53460 Gerrit-Change-Number: 25602 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 Sep 27 16:02:27 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 16:02:27 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25284 ) Change subject: osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH ...................................................................... osmo-bts-trx: implement Temporary Overpower for SACCH/FACCH GSM/EDGE Evolution and Performance, Section 12.3 suggests Temporary Overpower as another solution to improve SACCH/FACCH performance in case of bad C/I. The idea here is that you increment the DL transmit power by 2..4dB only for FACCH/SACCH bursts, while keeping all voice bursts at the lower (normal) level as determined by BS power control. SACCH blocks can be recognized by the channel type, since they're always transmitted in specific frames of a multiframe. FACCH blocks, however, are not predictable and can substitute voice blocks at (almost) any time. Thus we need to mark FACCH bursts as such in the logical channel handlers (using TRX_BR_F_FACCH). Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Related: SYS#5319 --- M include/osmo-bts/gsm_data.h M include/osmo-bts/scheduler.h M src/common/scheduler.c M src/osmo-bts-trx/main.c M src/osmo-bts-trx/sched_lchan_tchf.c M src/osmo-bts-trx/sched_lchan_tchh.c 6 files changed, 43 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h index 19689e5..fe2862d 100644 --- a/include/osmo-bts/gsm_data.h +++ b/include/osmo-bts/gsm_data.h @@ -421,6 +421,9 @@ struct gsm_power_ctrl_params ms_dpc_params; struct gsm_power_ctrl_params bs_dpc_params; + /* Temporary Overpower for SACCH/FACCH */ + uint8_t bs_acch_overpower_db; + struct msgb *pending_rel_ind_msg; /* ECU (Error Concealment Unit) state */ diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h index 80a260f..d640647 100644 --- a/include/osmo-bts/scheduler.h +++ b/include/osmo-bts/scheduler.h @@ -128,6 +128,8 @@ struct l1sched_meas_set meas_avg_facch; /* measurement results for last FACCH */ uint16_t ber10k_facch; /* bit error rate for last FACCH */ + uint8_t dl_facch_bursts; /* number of remaining DL FACCH bursts */ + /* encryption */ int ul_encr_algo; /* A5/x encry algo downlink */ int dl_encr_algo; /* A5/x encry algo uplink */ @@ -272,6 +274,8 @@ size_t burst_len; }; +#define TRX_BR_F_FACCH (1 << 0) + /*! DL burst request with the corresponding meta info */ struct trx_dl_burst_req { uint8_t flags; /*!< see TRX_BR_F_* */ diff --git a/src/common/scheduler.c b/src/common/scheduler.c index a07ef68..ffa0ed8 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -1287,6 +1287,26 @@ return func(l1ts, &dbr); } +static void trx_sched_apply_att(const struct gsm_lchan *lchan, + struct trx_dl_burst_req *br) +{ + const struct trx_chan_desc *desc = &trx_chan_desc[br->chan]; + const uint8_t overpower_db = lchan->bs_acch_overpower_db; + + /* Current BS power reduction value in dB */ + br->att = lchan->bs_power_ctrl.current; + + /* Temporary Overpower for SACCH/FACCH bursts */ + if (overpower_db == 0) + return; + if (desc->link_id == LID_SACCH || br->flags & TRX_BR_F_FACCH) { + if (br->att > overpower_db) + br->att -= overpower_db; + else + br->att = 0; + } +} + /* process downlink burst */ void _sched_dl_burst(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br) { @@ -1326,7 +1346,7 @@ /* BS Power reduction (in dB) per logical channel */ if (l1cs->lchan != NULL) - br->att = l1cs->lchan->bs_power_ctrl.current; + trx_sched_apply_att(l1cs->lchan, br); /* encrypt */ if (br->burst_len && l1cs->dl_encr_algo) { diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 9720b03..e31597b 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -148,6 +148,7 @@ osmo_bts_set_feature(bts->features, BTS_FEAT_MULTI_TSC); osmo_bts_set_feature(bts->features, BTS_FEAT_VAMOS); osmo_bts_set_feature(bts->features, BTS_FEAT_BCCH_POWER_RED); + osmo_bts_set_feature(bts->features, BTS_FEAT_ACCH_TEMP_OVP); bts_internal_flag_set(bts, BTS_INTERNAL_FLAG_MEAS_PAYLOAD_COMB); diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 85fe207..8cf096d 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -547,10 +547,11 @@ } /* encode bursts (prioritize FACCH) */ - if (msg_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) + chan_state->dl_facch_bursts = 8; + } 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. */ @@ -577,6 +578,11 @@ br->burst_len = GSM_BURST_LEN; + if (chan_state->dl_facch_bursts > 0) { + chan_state->dl_facch_bursts--; + br->flags |= TRX_BR_F_FACCH; + } + LOGL1SB(DL1P, LOGL_DEBUG, l1ts, br, "Transmitting burst=%u.\n", br->bid); return 0; diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index a1ed996..ea1060c 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -445,6 +445,7 @@ 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 */ + chan_state->dl_facch_bursts = 6; } 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) @@ -474,6 +475,11 @@ br->burst_len = GSM_BURST_LEN; + if (chan_state->dl_facch_bursts > 0) { + chan_state->dl_facch_bursts--; + br->flags |= TRX_BR_F_FACCH; + } + LOGL1SB(DL1P, LOGL_DEBUG, l1ts, br, "Transmitting burst=%u.\n", br->bid); return 0; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ie8a626fefccf1eb07271058e5126ec106cb1abcf Gerrit-Change-Number: 25284 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 16:35:15 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 16:35:15 +0000 Subject: Change in osmo-ccid-firmware[master]: sychronize atmel start config with the headers 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-ccid-firmware/+/25612 to look at the new patch set (#2). Change subject: sychronize atmel start config with the headers ...................................................................... sychronize atmel start config with the headers Change-Id: Ib21847f6726920e3f97600a347f2a16f957a5e8e --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_oscctrl_config.h M sysmoOCTSIM/config/hpl_rtc_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/hpl/core/hpl_init.c 5 files changed, 105 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/12/25612/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Ib21847f6726920e3f97600a347f2a16f957a5e8e Gerrit-Change-Number: 25612 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 17:18:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 17:18:06 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Decouple handling of Measurement Report from lapdm This is a preparation commit in order to move power loops up in the stack in order to have DTXu information available, in order to decide whether SUB or FULL ul measurements should be used in the MS Power Control Loop. Function rsl_tx_meas_res() is stripped from code changing state, and it simply encodes content and transmits the message. Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f --- M include/osmo-bts/measurement.h M include/osmo-bts/rsl.h M src/common/l1sap.c M src/common/measurement.c M src/common/rsl.c 5 files changed, 42 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/25616/1 diff --git a/include/osmo-bts/measurement.h b/include/osmo-bts/measurement.h index 45f275f..481b7be 100644 --- a/include/osmo-bts/measurement.h +++ b/include/osmo-bts/measurement.h @@ -20,4 +20,6 @@ int is_meas_complete(struct gsm_lchan *lchan, uint32_t fn); +int handle_ms_meas_report(struct gsm_lchan *lchan, struct gsm48_hdr *gh, unsigned int len); + #endif diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h index 4e79de5..1663006 100644 --- a/include/osmo-bts/rsl.h +++ b/include/osmo-bts/rsl.h @@ -34,6 +34,6 @@ int rsl_tx_cbch_load_indication(struct gsm_bts *bts, bool ext_cbch, bool overflow, uint8_t amount); -int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, const struct lapdm_entity *le); +int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, int timing_offset); #endif // _RSL_H */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index b9bc675..2084faf 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1606,8 +1606,7 @@ * lack the measurement report from the MS side. See * also rsl.c:lapdm_rll_tx_cb() */ LOGPGT(DL1P, LOGL_INFO, &g_time, "Lost SACCH block, faking meas reports and ms pwr\n"); - le = &lchan->lapdm_ch.lapdm_acch; - rsl_tx_meas_res(lchan, NULL, 0, le); + handle_ms_meas_report(lchan, NULL, 0); radio_link_timeout(lchan, true); lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); diff --git a/src/common/measurement.c b/src/common/measurement.c index a1c91a9..770ce2e 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -776,3 +776,34 @@ memset(&lchan->meas, 0, sizeof(lchan->meas)); lchan->meas.last_fn = LCHAN_FN_DUMMY; } + +static inline uint8_t ms_to2rsl(const struct gsm_lchan *lchan, const struct lapdm_entity *le) +{ + return (lchan->ms_t_offs >= 0) ? lchan->ms_t_offs : (lchan->p_offs - le->ta); +} + +static inline bool ms_to_valid(const struct gsm_lchan *lchan) +{ + return (lchan->ms_t_offs >= 0) || (lchan->p_offs >= 0); +} + +/* Called every time a Measurement Result (TS 08.58 8.4.8) is received from + * lower layers and has to be forwarded to BSC */ +int handle_ms_meas_report(struct gsm_lchan *lchan, struct gsm48_hdr *gh, unsigned int len) +{ + int timing_offset, rc; + struct lapdm_entity *le; + + le = &lchan->lapdm_ch.lapdm_acch; + + timing_offset = ms_to_valid(lchan) ? ms_to2rsl(lchan, le) : -1; + rc = rsl_tx_meas_res(lchan, (uint8_t *)gh, len, timing_offset); + + /* Reset state for next iteration */ + lchan->tch.dtx.dl_active = false; + lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; + lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; + lchan->ms_t_offs = -1; + lchan->p_offs = -1; + return rc; +} diff --git a/src/common/rsl.c b/src/common/rsl.c index 368590c..82c1b7b 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -3490,16 +3490,6 @@ return rc; } -static inline uint8_t ms_to2rsl(const struct gsm_lchan *lchan, const struct lapdm_entity *le) -{ - return (lchan->ms_t_offs >= 0) ? lchan->ms_t_offs : (lchan->p_offs - le->ta); -} - -static inline bool ms_to_valid(const struct gsm_lchan *lchan) -{ - return (lchan->ms_t_offs >= 0) || (lchan->p_offs >= 0); -} - struct osmo_bts_supp_meas_info { int16_t toa256_mean; int16_t toa256_min; @@ -3507,8 +3497,8 @@ uint16_t toa256_std_dev; } __attribute__((packed)); -/* Compose and send 8.4.8 MEASUREMENT RESult via RSL */ -int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, const struct lapdm_entity *le) +/* Compose and send 8.4.8 MEASUREMENT RESult via RSL. (timing_offset=-1 -> not present) */ +int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, int timing_offset) { struct msgb *msg; uint8_t meas_res[16]; @@ -3534,13 +3524,12 @@ lchan->meas.ul_res.full.rx_qual, lchan->meas.ul_res.sub.rx_qual, lchan->meas.l1_info.ms_pwr, - lchan->meas.l1_info.ta, l3_len, ms_to2rsl(lchan, le) - MEAS_MAX_TIMING_ADVANCE); + lchan->meas.l1_info.ta, l3_len, timing_offset - MEAS_MAX_TIMING_ADVANCE); msgb_tv_put(msg, RSL_IE_MEAS_RES_NR, lchan->meas.res_nr++); size_t ie_len = gsm0858_rsl_ul_meas_enc(&lchan->meas.ul_res, lchan->tch.dtx.dl_active, meas_res); - lchan->tch.dtx.dl_active = false; if (ie_len >= 3) { if (bts->supp_meas_toa256 && lchan->meas.flags & LC_UL_M_F_OSMO_EXT_VALID) { struct osmo_bts_supp_meas_info *smi; @@ -3558,24 +3547,18 @@ smi->toa256_min = htons(ta256 + lchan->meas.ext.toa256_min); smi->toa256_max = htons(ta256 + lchan->meas.ext.toa256_max); smi->toa256_std_dev = htons(lchan->meas.ext.toa256_std_dev); - lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; } msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); - lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; } msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_ctrl.current / 2); if (lchan->meas.flags & LC_UL_M_F_L1_VALID) { msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, sizeof(lchan->meas.l1_info), (uint8_t*)&lchan->meas.l1_info); - lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; } - if (l3 && l3_len > 0) + if (l3 && l3_len > 0) { msgb_tl16v_put(msg, RSL_IE_L3_INFO, l3_len, l3); - if (ms_to_valid(lchan)) { - if (l3 && l3_len > 0) - msgb_tv_put(msg, RSL_IE_MS_TIMING_OFFSET, ms_to2rsl(lchan, le)); - lchan->ms_t_offs = -1; - lchan->p_offs = -1; + if (timing_offset != -1) + msgb_tv_put(msg, RSL_IE_MS_TIMING_OFFSET, timing_offset); } rsl_dch_push_hdr(msg, RSL_MT_MEAS_RES, chan_nr); @@ -3629,7 +3612,7 @@ } repeated_dl_facch_active_decision(lchan, msgb_l3(msg), msgb_l3len(msg)); - rc = rsl_tx_meas_res(lchan, msgb_l3(msg), msgb_l3len(msg), le); + rc = handle_ms_meas_report(lchan, (struct gsm48_hdr *)msgb_l3(msg), msgb_l3len(msg)); msgb_free(msg); return rc; } else if (rslms_is_gprs_susp_req(msg)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-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 Sep 27 17:18:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 17:18:06 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Move TA & Power Loops further up the stack, take DTXu flag into account Only once we receive the Measurement Result on L3 from MS we are able to find out whether DTXu was used, and hence whether SUB or FULL measurement set should be used. Let's move all control loops there to have them in one place together, and have it at a similar level where it would lay if it was to be implemented in the BSC. Related: SYS#4917 Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 --- M src/common/l1sap.c M src/common/measurement.c 2 files changed, 50 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/17/25617/1 diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2084faf..316bd8e 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -52,8 +52,6 @@ #include #include #include -#include -#include #include #include #include @@ -1533,8 +1531,6 @@ uint32_t fn; enum osmo_ph_pres_info_type pr_info = data_ind->pdch_presence_info; struct gsm_sacch_l1_hdr *l1_hdr; - int8_t ul_rssi; - int16_t ul_ci_cb; chan_nr = data_ind->chan_nr; link_id = data_ind->link_id; @@ -1609,16 +1605,6 @@ handle_ms_meas_report(lchan, NULL, 0); radio_link_timeout(lchan, true); - lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); - /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ - if (lchan->tch.dtx.dl_active) { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; - } else { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; - } - lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, ul_rssi, ul_ci_cb); } return -EINVAL; } @@ -1645,26 +1631,6 @@ lchan->meas.l1_info.srr_sro = l1_hdr->srr_sro; lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; - - /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and - * MS_PWR used "for the last burst of the previous SACCH - * period". Since MS must use the values provided in DL SACCH - * starting at next meas period, the value of the "last burst" - * is actually the value used in the entire meas period. Since - * it contains info about the previous meas period, we want to - * feed the Control Loop with the measurements for the same - * period (the previous one), which is stored in lchan->meas(.ul_res): */ - lchan_ms_ta_ctrl(lchan, l1_hdr->ta, lchan->meas.ms_toa256); - /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ - if (lchan->tch.dtx.dl_active) { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; - } else { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; - } - lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, ul_ci_cb); - lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/measurement.c b/src/common/measurement.c index 770ce2e..6891402 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include /* Tables as per TS 45.008 Section 8.3 */ static const uint8_t ts45008_83_tch_f[] = { 52, 53, 54, 55, 56, 57, 58, 59 }; @@ -793,12 +795,60 @@ { int timing_offset, rc; struct lapdm_entity *le; + bool dtxu_used; + uint8_t ms_pwr; + uint8_t ms_ta; + int8_t ul_rssi; + int16_t ul_ci_cb; le = &lchan->lapdm_ch.lapdm_acch; timing_offset = ms_to_valid(lchan) ? ms_to2rsl(lchan, le) : -1; rc = rsl_tx_meas_res(lchan, (uint8_t *)gh, len, timing_offset); + /* Run control loops now that we have all the information: */ + /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and + * MS_PWR used "for the last burst of the previous SACCH + * period". Since MS must use the values provided in DL SACCH + * starting at next meas period, the value of the "last burst" + * is actually the value used in the entire meas period. Since + * it contains info about the previous meas period, we want to + * feed the Control Loop with the measurements for the same + * period (the previous one), which is stored in lchan->meas(.ul_res): + */ + if (len == 0) { + dtxu_used = true; + ms_ta = lchan->ta_ctrl.current; + ms_pwr = lchan->ms_power_ctrl.current; + } else { + /* if len!=0, it means we were able to parse L1Header in UL SACCH: */ + OSMO_ASSERT(lchan->meas.flags | LC_UL_M_F_L1_VALID); + + ms_ta = lchan->meas.l1_info.ta; + ms_pwr = lchan->meas.l1_info.ms_pwr; + switch (gh->msg_type) { + case GSM48_MT_RR_MEAS_REP: + dtxu_used = (len > sizeof(*gh) + 1) && !!(gh->data[0] & 0x40); + break; + case GSM48_MT_RR_EXT_MEAS_REP: + default: + dtxu_used = true; /* FIXME: not implemented */ + break; + } + } + + if (dtxu_used) { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_sub; + } else { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_full; + } + lchan_ms_ta_ctrl(lchan, ms_ta, lchan->meas.ms_toa256); + lchan_ms_pwr_ctrl(lchan, ms_pwr, ul_rssi, ul_ci_cb); + if (gh) + lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) gh); + /* Reset state for next iteration */ lchan->tch.dtx.dl_active = false; lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-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 Sep 27 17:23:51 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 17:23:51 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix dsp-trace-flags References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix dsp-trace-flags ...................................................................... lc15, oc2g, sysmo: fix dsp-trace-flags This was colliding with the global "show trx" command introduced a few years ago, and prevented both command from working. Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Related: OS#5080 --- M src/osmo-bts-lc15/lc15bts_vty.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-sysmo/sysmobts_vty.c 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/25618/1 diff --git a/src/osmo-bts-lc15/lc15bts_vty.c b/src/osmo-bts-lc15/lc15bts_vty.c index be6a4f8..5efbfcc 100644 --- a/src/osmo-bts-lc15/lc15bts_vty.c +++ b/src/osmo-bts-lc15/lc15bts_vty.c @@ -140,7 +140,7 @@ /* runtime */ DEFUN(show_dsp_trace_f, show_dsp_trace_f_cmd, - "show trx <0-0> dsp-trace-flags", + "show dsp-trace-flags trx <0-0>", SHOW_TRX_STR "Display the current setting of the DSP trace flags") { int trx_nr = atoi(argv[0]); diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index d69225a..ae7cd12 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -133,7 +133,7 @@ /* runtime */ DEFUN(show_dsp_trace_f, show_dsp_trace_f_cmd, - "show trx <0-0> dsp-trace-flags", + "show dsp-trace-flags trx <0-0>", SHOW_TRX_STR "Display the current setting of the DSP trace flags") { int trx_nr = atoi(argv[0]); diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index a8e7401..2e85335 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -226,7 +226,7 @@ } DEFUN(show_dsp_trace_f, show_dsp_trace_f_cmd, - "show trx <0-0> dsp-trace-flags", + "show dsp-trace-flags trx <0-0>", SHOW_TRX_STR "Display the current setting of the DSP trace flags") { int trx_nr = atoi(argv[0]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 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 Sep 27 17:36:00 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 17:36:00 +0000 Subject: Change in osmo-bts[master]: osmo-trx: fix maxdly References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25619 ) Change subject: osmo-trx: fix maxdly ...................................................................... osmo-trx: fix maxdly Change-Id: I8d79080c82411e6427eec37d008614fa5d5e1ace Related: OS#5140 --- M src/osmo-bts-trx/trx_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/19/25619/1 diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c index bb9d158..fb9ac0e 100644 --- a/src/osmo-bts-trx/trx_vty.c +++ b/src/osmo-bts-trx/trx_vty.c @@ -266,7 +266,7 @@ } DEFUN_ATTR(cfg_phyinst_maxdly, cfg_phyinst_maxdly_cmd, - "osmotrx maxdly <0-31>", + "osmotrx maxdly <0-62>", OSMOTRX_STR "Set the maximum acceptable delay of an Access Burst (in GSM symbols)." " Access Burst is the first burst a mobile transmits in order to establish" @@ -275,7 +275,7 @@ " distance. So changing this setting effectively changes maximum range of" " the cell, because if we receive an Access Burst with a delay higher than" " this value, it will be ignored and connection is dropped.\n" - "GSM symbols (approx. 1.1km per symbol)\n", + "GSM symbols (550m per symbol)\n", CMD_ATTR_IMMEDIATE) { struct phy_instance *pinst = vty->index; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d79080c82411e6427eec37d008614fa5d5e1ace Gerrit-Change-Number: 25619 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 Sep 27 18:13:16 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 18:13:16 +0000 Subject: Change in osmo-bts[master]: scheduler: Fix lqual_cb not populated for TCH.ind References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25620 ) Change subject: scheduler: Fix lqual_cb not populated for TCH.ind ...................................................................... scheduler: Fix lqual_cb not populated for TCH.ind Change-Id: I79c83b974149b1e94155bc61172b57de8003891e --- M include/osmo-bts/scheduler_backend.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, 10 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/20/25620/1 diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index 50ba822..3b1388f 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -51,7 +51,7 @@ int _sched_compose_tch_ind(struct l1sched_ts *l1ts, uint32_t fn, enum trx_chan_type chan, uint8_t *tch, uint8_t tch_len, int16_t ta_offs_256bits, uint16_t ber10k, float rssi, - uint8_t is_sub); + int16_t link_qual_cb, uint8_t is_sub); int tx_fcch_fn(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br); int tx_sch_fn(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br); diff --git a/src/common/scheduler.c b/src/common/scheduler.c index 0826eda..4579f2f 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -804,7 +804,7 @@ int _sched_compose_tch_ind(struct l1sched_ts *l1ts, uint32_t fn, enum trx_chan_type chan, uint8_t *tch, uint8_t tch_len, int16_t ta_offs_256bits, uint16_t ber10k, float rssi, - uint8_t is_sub) + int16_t link_qual_cb, uint8_t is_sub) { struct msgb *msg; struct osmo_phsap_prim *l1sap; @@ -825,6 +825,7 @@ l1sap->u.tch.rssi = (int8_t) (rssi); l1sap->u.tch.ber10k = ber10k; l1sap->u.tch.ta_offs_256bits = ta_offs_256bits; + l1sap->u.tch.lqual_cb = link_qual_cb; l1sap->u.tch.is_sub = is_sub & 1; msg->l2h = msgb_put(msg, tch_len); diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 85fe207..1fcc27f 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -304,7 +304,9 @@ return _sched_compose_tch_ind(l1ts, fn_begin, bi->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); + bfi_flag ? bi->rssi : meas_avg.rssi, + bfi_flag ? bi->ci_cb : meas_avg.ci_cb, + is_sub); } /* common section for generation of TCH bursts (TCH/H and TCH/F). @@ -366,7 +368,7 @@ /* Note: RSSI/ToA256 is set to 0 to indicate to the higher * layers that this is a faked tch_ind */ _sched_compose_tch_ind(l1ts, br->fn, br->chan, - tch_data, len, 0, 10000, 0, 0); + tch_data, len, 0, 10000, 0, 0, 0); } } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index a1ed996..314430e 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -375,7 +375,9 @@ return _sched_compose_tch_ind(l1ts, fn_begin, bi->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); + bfi_flag ? bi->rssi : meas_avg.rssi, + bfi_flag ? bi->ci_cb : meas_avg.ci_cb, + is_sub); } /* common section for generation of TCH bursts (TCH/H and TCH/F). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I79c83b974149b1e94155bc61172b57de8003891e Gerrit-Change-Number: 25620 Gerrit-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 Sep 27 18:17:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 18:17:18 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/bts_vty.c File src/osmo-bsc/bts_vty.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/bts_vty.c at 3904 PS1, Line 3904: if (strcmp(param, "ci") == 0) { > Would it make sense to return early if !mp->enabled? I prefer printing it so it becomes clear which ones are enabled or not by using show running-config. https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/c/osmo-bsc/+/25611/1/src/osmo-bsc/gsm_data.c at 1203 PS1, Line 1203: .enabled = true, > BTW, there was a discussion recently about disabling C/I based logic by default, given that osmo-trx [?] That's in any case another patch. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Mon, 27 Sep 2021 18:17:18 +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 Sep 27 18:19:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 18:19:48 +0000 Subject: Change in osmo-bts[master]: osmo-trx: fix maxdly In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25619 ) Change subject: osmo-trx: fix maxdly ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d79080c82411e6427eec37d008614fa5d5e1ace Gerrit-Change-Number: 25619 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Mon, 27 Sep 2021 18:19:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 18:24:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Mon, 27 Sep 2021 18:24:52 +0000 Subject: Change in osmo-bsc[master]: bts_vty: Print C/I power params for osmo-bts only References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25621 ) Change subject: bts_vty: Print C/I power params for osmo-bts only ...................................................................... bts_vty: Print C/I power params for osmo-bts only Those are osmo-bts specific extensions, so there's no point in printing related VTY config. Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 --- M src/osmo-bsc/bts_vty.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/21/25621/1 diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 7a502d7..0e0285a 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3932,6 +3932,7 @@ } static void config_write_power_ctrl(struct vty *vty, unsigned int indent, + const struct gsm_bts *bts, const struct gsm_power_ctrl_params *cp) { const char *node_name; @@ -3965,7 +3966,7 @@ /* Measurement processing / averaging parameters */ config_write_power_ctrl_meas(vty, indent + 1, &cp->rxlev_meas, "rxlev", ""); config_write_power_ctrl_meas(vty, indent + 1, &cp->rxqual_meas, "rxqual", ""); - if (cp->dir == GSM_PWR_CTRL_DIR_UL) { + if (cp->dir == GSM_PWR_CTRL_DIR_UL && is_osmobts(bts)) { config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_fr_meas, "ci", " fr-efr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_hr_meas, "ci", " hr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_amr_fr_meas, "ci", " amr-fr"); @@ -4285,8 +4286,8 @@ } /* BS/MS Power Control parameters */ - config_write_power_ctrl(vty, 2, &bts->bs_power_ctrl); - config_write_power_ctrl(vty, 2, &bts->ms_power_ctrl); + config_write_power_ctrl(vty, 2, bts, &bts->bs_power_ctrl); + config_write_power_ctrl(vty, 2, bts, &bts->ms_power_ctrl); config_write_bts_model(vty, bts); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 Gerrit-Change-Number: 25621 Gerrit-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 Sep 27 20:00:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 20:00:04 +0000 Subject: Change in osmo-bts[master]: bts-trx: Fix rxgain & maxdly VTY values being reset In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25610 ) Change subject: bts-trx: Fix rxgain & maxdly VTY values being reset ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c31241327b98386c313cd9377cf76c009456105 Gerrit-Change-Number: 25610 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 27 Sep 2021 20: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 Mon Sep 27 20:10:06 2021 From: gerrit-no-reply at lists.osmocom.org (Hoernchen) Date: Mon, 27 Sep 2021 20:10:06 +0000 Subject: Change in libosmocore[master]: gsmtap: allow 127.0.0.x local listeners References: Message-ID: Hoernchen has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25622 ) Change subject: gsmtap: allow 127.0.0.x local listeners ...................................................................... gsmtap: allow 127.0.0.x local listeners Even if not bound to a IF they just exist and work as expected, and make distinguishing traffic for local setups easy. Change-Id: I1043dfd8075f14481011f43db45c943e9320413c --- M src/socket.c 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/25622/1 diff --git a/src/socket.c b/src/socket.c index 19d48e4..3d5ad63 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1129,6 +1129,25 @@ return 0; } +/* linux has a default route: +local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 +*/ +static int sockaddr_is_local_routed(const struct sockaddr *a) +{ +#if __linux__ + if(a->sa_family != AF_INET) + return 0; + + uint32_t address = ((struct sockaddr_in *)a)->sin_addr.s_addr; /* already BE */ + uint32_t eightmask = htonl(0xff000000); /* /8 mask */ + uint32_t local_prefix_127 = htonl(0x7f000000); /* 127.0.0.0 */ + + if ((address & eightmask) == local_prefix_127) + return 1; +#endif + return 0; +} + /*! Determine if the given address is a local address * \param[in] addr Socket Address * \param[in] addrlen Length of socket address in bytes @@ -1138,6 +1157,9 @@ { struct ifaddrs *ifaddr, *ifa; + if (sockaddr_is_local_routed(addr)) + return 1; + if (getifaddrs(&ifaddr) == -1) { LOGP(DLGLOBAL, LOGL_ERROR, "getifaddrs:" " %s\n", strerror(errno)); -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1043dfd8075f14481011f43db45c943e9320413c Gerrit-Change-Number: 25622 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 Sep 27 20:13:07 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 20:13:07 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25616/1/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/25616/1/src/common/rsl.c at 3501 PS1, Line 3501: struct gsm_lchan *lchan Can we make it 'const' now? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 27 Sep 2021 20:13:07 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 20:20:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 20:20:32 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 27 Sep 2021 20:20:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Sep 27 20:21:23 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Mon, 27 Sep 2021 20:21:23 +0000 Subject: Change in osmo-bts[master]: scheduler: Fix lqual_cb not populated for TCH.ind In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25620 ) Change subject: scheduler: Fix lqual_cb not populated for TCH.ind ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I79c83b974149b1e94155bc61172b57de8003891e Gerrit-Change-Number: 25620 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Mon, 27 Sep 2021 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 Sep 28 05:51:21 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 28 Sep 2021 05:51:21 +0000 Subject: Change in osmo-bts[master]: osmo-trx: fix maxdly In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25619 ) Change subject: osmo-trx: fix maxdly ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d79080c82411e6427eec37d008614fa5d5e1ace Gerrit-Change-Number: 25619 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 05:51:21 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 05:54:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 28 Sep 2021 05:54:32 +0000 Subject: Change in libosmocore[master]: gsmtap: allow 127.0.0.x local listeners In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25622 ) Change subject: gsmtap: allow 127.0.0.x local listeners ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25622/1/src/socket.c File src/socket.c: https://gerrit.osmocom.org/c/libosmocore/+/25622/1/src/socket.c at 1137 PS1, Line 1137: __linux__ Does it make sense to make it conditional given that we don't care about anything else than linux? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1043dfd8075f14481011f43db45c943e9320413c Gerrit-Change-Number: 25622 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 28 Sep 2021 05:54:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 09:32:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 09:32:57 +0000 Subject: Change in libosmocore[master]: gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25623 ) Change subject: gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const ...................................................................... gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const Change-Id: I9b2704250d8a3f6c6fc6cd2a5136b1408c8ed965 --- M include/osmocom/gsm/meas_rep.h M src/gsm/gsm_utils.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/25623/1 diff --git a/include/osmocom/gsm/meas_rep.h b/include/osmocom/gsm/meas_rep.h index 79f9f06..ba2accd 100644 --- a/include/osmocom/gsm/meas_rep.h +++ b/include/osmocom/gsm/meas_rep.h @@ -28,5 +28,5 @@ MEAS_REP_UL_RXQUAL_SUB, }; -size_t gsm0858_rsl_ul_meas_enc(struct gsm_meas_rep_unidir *mru, bool dtxd_used, +size_t gsm0858_rsl_ul_meas_enc(const struct gsm_meas_rep_unidir *mru, bool dtxd_used, uint8_t *buf); diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index 07e082d..9125b0e 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -493,7 +493,7 @@ * \param[out] buf Pre-allocated bufer for storing IE * \returns Number of bytes filled in buf */ -size_t gsm0858_rsl_ul_meas_enc(struct gsm_meas_rep_unidir *mru, bool dtxd_used, +size_t gsm0858_rsl_ul_meas_enc(const struct gsm_meas_rep_unidir *mru, bool dtxd_used, uint8_t *buf) { buf[0] = dtxd_used ? (1 << 6) : 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9b2704250d8a3f6c6fc6cd2a5136b1408c8ed965 Gerrit-Change-Number: 25623 Gerrit-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 Sep 28 09:32:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 09:32:58 +0000 Subject: Change in libosmocore[master]: cosmetic: gsm: meas_rep.h: Fix typo in comment References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25624 ) Change subject: cosmetic: gsm: meas_rep.h: Fix typo in comment ...................................................................... cosmetic: gsm: meas_rep.h: Fix typo in comment Change-Id: I35c47a69ad1e9a75de6cc82c44a87828ebbb7189 --- M include/osmocom/gsm/meas_rep.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/25624/1 diff --git a/include/osmocom/gsm/meas_rep.h b/include/osmocom/gsm/meas_rep.h index ba2accd..5628d8e 100644 --- a/include/osmocom/gsm/meas_rep.h +++ b/include/osmocom/gsm/meas_rep.h @@ -11,7 +11,7 @@ uint8_t rx_qual; }; -/* unidirectional measumrement report */ +/* unidirectional measurement report */ struct gsm_meas_rep_unidir { struct gsm_rx_lev_qual full; struct gsm_rx_lev_qual sub; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35c47a69ad1e9a75de6cc82c44a87828ebbb7189 Gerrit-Change-Number: 25624 Gerrit-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 Sep 28 09:38:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 09:38:48 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25616/1/src/common/rsl.c File src/common/rsl.c: https://gerrit.osmocom.org/c/osmo-bts/+/25616/1/src/common/rsl.c at 3501 PS1, Line 3501: struct gsm_lchan *lchan > Can we make it 'const' now? It's not possible due to libosmocore's gsm0858_rsl_ul_meas_enc() wrongly requiring non-const param. I fixed it here (https://gerrit.osmocom.org/c/libosmocore/+/25623), but anyway building against older libosmocore passing a const pointer would fail, so let's keep this pointer non-const. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 28 Sep 2021 09:38:48 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 09:42:20 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 28 Sep 2021 09:42:20 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: lower trace to make bl fit In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/25606 ) Change subject: contrib/jenkins.sh: lower trace to make bl fit ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/simtrace2/+/25606/2/contrib/jenkins.sh File contrib/jenkins.sh: https://gerrit.osmocom.org/c/simtrace2/+/25606/2/contrib/jenkins.sh at 48 PS2, Line 48: fi I suggest to remove the if... else here, and just always run make BOARD="$board" APP="$app" then it picks up the default TRACE_LEVEL from firmware/Makefile. Otherwise its not so obvious where the level should be adjusted in the future (e.g. if another app gets too big). To make it more explicit, maybe leave a comment here, that TRACE_LEVEL is adjusted in firmware/Makefile. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e Gerrit-Change-Number: 25606 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 09:42:20 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 09:45:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 28 Sep 2021 09:45:28 +0000 Subject: Change in osmo-bts[master]: bts-trx: Fix rxgain & maxdly VTY values being reset In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25610 ) Change subject: bts-trx: Fix rxgain & maxdly VTY values being reset ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c31241327b98386c313cd9377cf76c009456105 Gerrit-Change-Number: 25610 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 09:45:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 09:57:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 28 Sep 2021 09:57:40 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 09:57:40 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 10:02:19 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 10:02:19 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 to look at the new patch set (#2). Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Decouple handling of Measurement Report from lapdm This is a preparation commit in order to move power loops up in the stack in order to have DTXu information available, in order to decide whether SUB or FULL ul measurements should be used in the MS Power Control Loop. Function rsl_tx_meas_res() is stripped from code changing state, and it simply encodes content and transmits the message. Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f --- M include/osmo-bts/measurement.h M include/osmo-bts/rsl.h M src/common/l1sap.c M src/common/measurement.c M src/common/rsl.c 5 files changed, 44 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/16/25616/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 10:03:05 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 28 Sep 2021 10:03:05 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25617/1/src/common/measurement.c File src/common/measurement.c: https://gerrit.osmocom.org/c/osmo-bts/+/25617/1/src/common/measurement.c at 835 PS1, Line 835: /* FIXME: not implemented */ unresolved fixme - on purpose? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 10:03: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 Sep 28 10:04:14 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 28 Sep 2021 10:04:14 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 10: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 Tue Sep 28 10:08:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 10:08:05 +0000 Subject: Change in libosmocore[master]: gsmtap: allow 127.0.0.x local listeners In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25622 ) Change subject: gsmtap: allow 127.0.0.x local listeners ...................................................................... Patch Set 1: Code-Review-1 (3 comments) https://gerrit.osmocom.org/c/libosmocore/+/25622/1/src/socket.c File src/socket.c: https://gerrit.osmocom.org/c/libosmocore/+/25622/1/src/socket.c at 1137 PS1, Line 1137: __linux__ > Does it make sense to make it conditional given that we don't care about anything else than linux? Yes it makes sense. Not caring and actively supporting other platforms doesn't mean we should make it more difficult for them if it's easy to keep compatibility. https://gerrit.osmocom.org/c/libosmocore/+/25622/1/src/socket.c at 1141 PS1, Line 1141: uint32_t address = ((struct sockaddr_in *)a)->sin_addr.s_addr; /* already BE */ what about ipv6? https://gerrit.osmocom.org/c/libosmocore/+/25622/1/src/socket.c at 1160 PS1, Line 1160: if (sockaddr_is_local_routed(addr)) IIRC the 127.0.0.X automatically working in linux only happens with ipv4, not with ipv6 (probably due to legacy behavior). So it probably makes sense to move this function after the loop below, and then check addr->af_family and only call this function in case it's AF_INET. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1043dfd8075f14481011f43db45c943e9320413c Gerrit-Change-Number: 25622 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-Comment-Date: Tue, 28 Sep 2021 10:08:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: fixeria Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 10:09:24 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 10:09:24 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25617/1/src/common/measurement.c File src/common/measurement.c: https://gerrit.osmocom.org/c/osmo-bts/+/25617/1/src/common/measurement.c at 835 PS1, Line 835: /* FIXME: not implemented */ > unresolved fixme - on purpose? Yes, it's on purpose, I think we don't even support handlng that packet in general at all, since we don't flag we support it iirc. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 10:09:24 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 10:25:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 10:25:05 +0000 Subject: Change in osmo-bts[master]: bts-trx: Fix rxgain & maxdly VTY values being reset In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25610 ) Change subject: bts-trx: Fix rxgain & maxdly VTY values being reset ...................................................................... bts-trx: Fix rxgain & maxdly VTY values being reset Recent commit added code to reset trx_provision_fsm state fields in orer to support re-using the FSM once BTS is reconnected to a BSC. However, some values being reset there are not set up when reconnecting to the BSC, but rather configured through VTY at startup. Hence those values should be kept. Fixes: 32b51eca7d2a5215814db7843b1a0f8c74ea7527 Change-Id: I5c31241327b98386c313cd9377cf76c009456105 --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 0 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 7f42b47..36be76f 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -122,17 +122,13 @@ l1h->config.bsic_sent = false; l1h->config.bsic_acked = false; - l1h->config.rxgain_valid = false; - l1h->config.rxgain = 0; l1h->config.rxgain_sent = false; l1h->config.nomtxpower_sent = false; l1h->config.nomtxpower_acked = false; - l1h->config.maxdly_valid = false; l1h->config.maxdly_sent = false; - l1h->config.maxdlynb_valid = false; l1h->config.maxdlynb_sent = false; for (tn = 0; tn < TRX_NR_TS; tn++) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I5c31241327b98386c313cd9377cf76c009456105 Gerrit-Change-Number: 25610 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 11:19:49 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 28 Sep 2021 11:19:49 +0000 Subject: Change in libosmocore[master]: gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25623 ) Change subject: gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9b2704250d8a3f6c6fc6cd2a5136b1408c8ed965 Gerrit-Change-Number: 25623 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 28 Sep 2021 11:19: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 Sep 28 11:19:58 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Tue, 28 Sep 2021 11:19:58 +0000 Subject: Change in libosmocore[master]: cosmetic: gsm: meas_rep.h: Fix typo in comment In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25624 ) Change subject: cosmetic: gsm: meas_rep.h: Fix typo in comment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35c47a69ad1e9a75de6cc82c44a87828ebbb7189 Gerrit-Change-Number: 25624 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Tue, 28 Sep 2021 11:19:58 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 11:28:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 11:28:43 +0000 Subject: Change in osmo-pcu[master]: tbf: poll_timeout(): Validate expected poll reason References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25625 ) Change subject: tbf: poll_timeout(): Validate expected poll reason ...................................................................... tbf: poll_timeout(): Validate expected poll reason Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f --- M src/tbf.cpp 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/25/25625/1 diff --git a/src/tbf.cpp b/src/tbf.cpp index 31dec72..61ab90e 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -548,7 +548,7 @@ } } osmo_fsm_inst_dispatch(ul_tbf->ul_ack_fsm.fi, TBF_UL_ACK_EV_POLL_TIMEOUT, NULL); - } else if (ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + } else if (reason == PDCH_ULC_POLL_UL_ASS && ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PUA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -559,7 +559,7 @@ } /* Signal timeout to FSM to reschedule UL assignment */ osmo_fsm_inst_dispatch(this->ul_ass_fsm.fi, TBF_UL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + } else if (reason == PDCH_ULC_POLL_DL_ASS && dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PDA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -570,7 +570,7 @@ } /* Signal timeout to FSM to reschedule DL assignment */ osmo_fsm_inst_dispatch(this->dl_ass_fsm.fi, TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && + } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && m_ms->nacc->continue_poll_fn == poll_fn && m_ms->nacc->continue_poll_ts == pdch->ts_no) { /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f Gerrit-Change-Number: 25625 Gerrit-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 Sep 28 11:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 11:28:45 +0000 Subject: Change in osmo-pcu[master]: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25626 ) Change subject: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() ...................................................................... nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() Move FSM internal state checks to its own file. Re-use the helper function in the 2 places where same stuff is checked. Change-Id: I9ded6e1c80e6cd7bcf6883bc2e853b6dafb33f7c --- M src/nacc_fsm.c M src/nacc_fsm.h M src/pdch.cpp M src/tbf.cpp 4 files changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/26/25626/1 diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index df38927..ba7bbb7 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -895,3 +895,10 @@ return false; return !osmo_cgi_ps_cmp(&ctx->cgi_ps, cgi_ps); } + +bool nacc_fsm_exp_ctrl_ack(const struct nacc_fsm_ctx *ctx, uint32_t fn, uint8_t ts) +{ + return ctx->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && + ctx->continue_poll_fn == fn && + ctx->continue_poll_ts == ts; +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h index 68ebd52..beea0f7 100644 --- a/src/nacc_fsm.h +++ b/src/nacc_fsm.h @@ -75,3 +75,5 @@ bool nacc_fsm_is_waiting_si_resolution(const struct nacc_fsm_ctx *ctx, const struct osmo_cell_global_id_ps *cgi_ps); + +bool nacc_fsm_exp_ctrl_ack(const struct nacc_fsm_ctx *ctx, uint32_t fn, uint8_t ts); diff --git a/src/pdch.cpp b/src/pdch.cpp index 19d57a2..76acbca 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -401,8 +401,7 @@ return; } - if (ms->nacc && ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && - ms->nacc->continue_poll_fn == fn && ms->nacc->continue_poll_ts == ts_no) { + if (ms->nacc && nacc_fsm_exp_ctrl_ack(ms->nacc, fn, ts_no)) { osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_CELL_CHG_CONTINUE_ACK, NULL); /* Don't assume MS is no longer reachable (hence don't free) after this: TS 44.060 * "When the mobile station receives the PACKET CELL CHANGE ORDER diff --git a/src/tbf.cpp b/src/tbf.cpp index 61ab90e..0ea013b 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -570,8 +570,8 @@ } /* Signal timeout to FSM to reschedule DL assignment */ osmo_fsm_inst_dispatch(this->dl_ass_fsm.fi, TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && - m_ms->nacc->continue_poll_fn == poll_fn && m_ms->nacc->continue_poll_ts == pdch->ts_no) { + } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && + m_ms->nacc && nacc_fsm_exp_ctrl_ack(m_ms->nacc, poll_fn, pdch->ts_no)) { /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); return; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9ded6e1c80e6cd7bcf6883bc2e853b6dafb33f7c Gerrit-Change-Number: 25626 Gerrit-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 Sep 28 11:28:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 11:28:45 +0000 Subject: Change in osmo-pcu[master]: tbf: refactor poll_timeout() with a switch statement References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25627 ) Change subject: tbf: refactor poll_timeout() with a switch statement ...................................................................... tbf: refactor poll_timeout() with a switch statement This clarifies the different paths and uniforms them. Makes code far easier to read and debug. Change-Id: I4c56af70c79c20f1e600371e040bd48bcc908a75 --- M src/tbf.cpp 1 file changed, 48 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/27/25627/1 diff --git a/src/tbf.cpp b/src/tbf.cpp index 0ea013b..bda96af 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -532,12 +532,21 @@ void gprs_rlcmac_tbf::poll_timeout(struct gprs_rlcmac_pdch *pdch, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { - gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this); + gprs_rlcmac_ul_tbf *ul_tbf; + gprs_rlcmac_dl_tbf *dl_tbf; LOGPTBF(this, LOGL_NOTICE, "poll timeout for FN=%d, TS=%d (curr FN %d)\n", poll_fn, pdch->ts_no, bts_current_frame_number(bts)); - if (ul_tbf && reason == PDCH_ULC_POLL_UL_ACK && tbf_ul_ack_exp_ctrl_ack(ul_tbf, poll_fn, pdch->ts_no)) { + switch (reason) { + case PDCH_ULC_POLL_UL_ACK: + ul_tbf = as_ul_tbf(this); + OSMO_ASSERT(ul_tbf); + if (!tbf_ul_ack_exp_ctrl_ack(ul_tbf, poll_fn, pdch->ts_no)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ACK not expected!\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts)); + return; + } bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PUAN_POLL_TIMEDOUT); if (state_is(TBF_ST_FINISHED)) { @@ -548,7 +557,15 @@ } } osmo_fsm_inst_dispatch(ul_tbf->ul_ack_fsm.fi, TBF_UL_ACK_EV_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_UL_ASS && ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + break; + + case PDCH_ULC_POLL_UL_ASS: + if (!ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ASS not expected! state is %s\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts), + osmo_fsm_inst_state_name(tbf_ul_ass_fi(this))); + return; + } bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PUA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -559,7 +576,15 @@ } /* Signal timeout to FSM to reschedule UL assignment */ osmo_fsm_inst_dispatch(this->ul_ass_fsm.fi, TBF_UL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_DL_ASS && dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + break; + + case PDCH_ULC_POLL_DL_ASS: + if (!dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_DL_ASS not expected! state is %s\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts), + osmo_fsm_inst_state_name(tbf_dl_ass_fi(this))); + return; + } bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PDA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -570,29 +595,34 @@ } /* Signal timeout to FSM to reschedule DL assignment */ osmo_fsm_inst_dispatch(this->dl_ass_fsm.fi, TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && - m_ms->nacc && nacc_fsm_exp_ctrl_ack(m_ms->nacc, poll_fn, pdch->ts_no)) { + break; + + case PDCH_ULC_POLL_CELL_CHG_CONTINUE: + if (!m_ms->nacc || !nacc_fsm_exp_ctrl_ack(m_ms->nacc, poll_fn, pdch->ts_no)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_CELL_CHG_CONTINUE not expected!\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts)); + return; + } /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); - return; - } else if (reason == PDCH_ULC_POLL_DL_ACK) { - /* POLL Timeout expecting DL ACK/NACK: implies direction == GPRS_RLCMAC_DL_TBF */ - gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(this); + break; + case PDCH_ULC_POLL_DL_ACK: + dl_tbf = as_dl_tbf(this); + /* POLL Timeout expecting DL ACK/NACK: implies direction == GPRS_RLCMAC_DL_TBF */ + OSMO_ASSERT(dl_tbf); if (!(dl_tbf->state_fsm.state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK))) { LOGPTBF(this, LOGL_NOTICE, "Timeout for polling PACKET DOWNLINK ACK: %s\n", tbf_rlcmac_diag(dl_tbf)); dl_tbf->state_fsm.state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK); } - if (dl_tbf->state_is(TBF_ST_RELEASING)) bts_do_rate_ctr_inc(bts, CTR_RLC_REL_TIMEDOUT); else { bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PDAN_POLL_TIMEDOUT); } - if (dl_tbf->n_inc(N3105)) { osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_MAX_N3105, NULL); bts_do_rate_ctr_inc(bts, CTR_PDAN_POLL_FAILED); @@ -601,8 +631,12 @@ } /* resend IMM.ASS on CCCH on timeout */ osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_DL_ACKNACK_MISS, NULL); - } else - LOGPTBF(this, LOGL_ERROR, "Poll Timeout, but no event!\n"); + break; + + default: + LOGPTBF(this, LOGL_ERROR, "Poll Timeout, reason %s unhandled!\n", + get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); + } } int gprs_rlcmac_tbf::setup(int8_t use_trx, bool single_slot) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4c56af70c79c20f1e600371e040bd48bcc908a75 Gerrit-Change-Number: 25627 Gerrit-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 Sep 28 11:54:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 11:54:35 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { > I though we were using APIs for that? [?] struct osmo_stat_item includes struct osmo_stat_item_period (and not just pointers to it) so it has to be public. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 11:54:35 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 12:07:26 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 28 Sep 2021 12:07:26 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 12: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 Tue Sep 28 12:45:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:45:21 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { > struct osmo_stat_item includes struct osmo_stat_item_period (and not just pointers to it) so it has [?] Yeah, but does "struct osmo_stat_item" itself need to be public? probably not. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 12:45:21 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels 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 Sep 28 12:45:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:45:56 +0000 Subject: Change in libosmocore[master]: gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25623 ) Change subject: gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const ...................................................................... gsm: Mark gsm0858_rsl_ul_meas_enc() pointer param const Change-Id: I9b2704250d8a3f6c6fc6cd2a5136b1408c8ed965 --- M include/osmocom/gsm/meas_rep.h M src/gsm/gsm_utils.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmocom/gsm/meas_rep.h b/include/osmocom/gsm/meas_rep.h index 79f9f06..ba2accd 100644 --- a/include/osmocom/gsm/meas_rep.h +++ b/include/osmocom/gsm/meas_rep.h @@ -28,5 +28,5 @@ MEAS_REP_UL_RXQUAL_SUB, }; -size_t gsm0858_rsl_ul_meas_enc(struct gsm_meas_rep_unidir *mru, bool dtxd_used, +size_t gsm0858_rsl_ul_meas_enc(const struct gsm_meas_rep_unidir *mru, bool dtxd_used, uint8_t *buf); diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index 07e082d..9125b0e 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -493,7 +493,7 @@ * \param[out] buf Pre-allocated bufer for storing IE * \returns Number of bytes filled in buf */ -size_t gsm0858_rsl_ul_meas_enc(struct gsm_meas_rep_unidir *mru, bool dtxd_used, +size_t gsm0858_rsl_ul_meas_enc(const struct gsm_meas_rep_unidir *mru, bool dtxd_used, uint8_t *buf) { buf[0] = dtxd_used ? (1 << 6) : 0; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I9b2704250d8a3f6c6fc6cd2a5136b1408c8ed965 Gerrit-Change-Number: 25623 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 Sep 28 12:45:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:45:56 +0000 Subject: Change in libosmocore[master]: cosmetic: gsm: meas_rep.h: Fix typo in comment In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25624 ) Change subject: cosmetic: gsm: meas_rep.h: Fix typo in comment ...................................................................... cosmetic: gsm: meas_rep.h: Fix typo in comment Change-Id: I35c47a69ad1e9a75de6cc82c44a87828ebbb7189 --- M include/osmocom/gsm/meas_rep.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmocom/gsm/meas_rep.h b/include/osmocom/gsm/meas_rep.h index ba2accd..5628d8e 100644 --- a/include/osmocom/gsm/meas_rep.h +++ b/include/osmocom/gsm/meas_rep.h @@ -11,7 +11,7 @@ uint8_t rx_qual; }; -/* unidirectional measumrement report */ +/* unidirectional measurement report */ struct gsm_meas_rep_unidir { struct gsm_rx_lev_qual full; struct gsm_rx_lev_qual sub; -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I35c47a69ad1e9a75de6cc82c44a87828ebbb7189 Gerrit-Change-Number: 25624 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 Sep 28 12:46:35 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:46:35 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 12:46:35 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 12:46:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:46:44 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 12:46: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 Sep 28 12:46:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:46:47 +0000 Subject: Change in osmo-bts[master]: Decouple handling of Measurement Report from lapdm In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25616 ) Change subject: Decouple handling of Measurement Report from lapdm ...................................................................... Decouple handling of Measurement Report from lapdm This is a preparation commit in order to move power loops up in the stack in order to have DTXu information available, in order to decide whether SUB or FULL ul measurements should be used in the MS Power Control Loop. Function rsl_tx_meas_res() is stripped from code changing state, and it simply encodes content and transmits the message. Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f --- M include/osmo-bts/measurement.h M include/osmo-bts/rsl.h M src/common/l1sap.c M src/common/measurement.c M src/common/rsl.c 5 files changed, 44 insertions(+), 28 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/measurement.h b/include/osmo-bts/measurement.h index 45f275f..481b7be 100644 --- a/include/osmo-bts/measurement.h +++ b/include/osmo-bts/measurement.h @@ -20,4 +20,6 @@ int is_meas_complete(struct gsm_lchan *lchan, uint32_t fn); +int handle_ms_meas_report(struct gsm_lchan *lchan, struct gsm48_hdr *gh, unsigned int len); + #endif diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h index 4e79de5..1663006 100644 --- a/include/osmo-bts/rsl.h +++ b/include/osmo-bts/rsl.h @@ -34,6 +34,6 @@ int rsl_tx_cbch_load_indication(struct gsm_bts *bts, bool ext_cbch, bool overflow, uint8_t amount); -int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, const struct lapdm_entity *le); +int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, int timing_offset); #endif // _RSL_H */ diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2ebd39a..7e04a3a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -1606,8 +1606,7 @@ * lack the measurement report from the MS side. See * also rsl.c:lapdm_rll_tx_cb() */ LOGPGT(DL1P, LOGL_INFO, &g_time, "Lost SACCH block, faking meas reports and ms pwr\n"); - le = &lchan->lapdm_ch.lapdm_acch; - rsl_tx_meas_res(lchan, NULL, 0, le); + handle_ms_meas_report(lchan, NULL, 0); radio_link_timeout(lchan, true); lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); diff --git a/src/common/measurement.c b/src/common/measurement.c index a1c91a9..5b46f79 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -776,3 +776,35 @@ memset(&lchan->meas, 0, sizeof(lchan->meas)); lchan->meas.last_fn = LCHAN_FN_DUMMY; } + +static inline uint8_t ms_to2rsl(const struct gsm_lchan *lchan, const struct lapdm_entity *le) +{ + return (lchan->ms_t_offs >= 0) ? lchan->ms_t_offs : (lchan->p_offs - le->ta); +} + +static inline bool ms_to_valid(const struct gsm_lchan *lchan) +{ + return (lchan->ms_t_offs >= 0) || (lchan->p_offs >= 0); +} + +/* Called every time a Measurement Result (TS 08.58 8.4.8) is received from + * lower layers and has to be forwarded to BSC */ +int handle_ms_meas_report(struct gsm_lchan *lchan, struct gsm48_hdr *gh, unsigned int len) +{ + int timing_offset, rc; + struct lapdm_entity *le; + + le = &lchan->lapdm_ch.lapdm_acch; + + timing_offset = ms_to_valid(lchan) ? ms_to2rsl(lchan, le) : -1; + rc = rsl_tx_meas_res(lchan, (uint8_t *)gh, len, timing_offset); + + /* Reset state for next iteration */ + lchan->meas.res_nr++; + lchan->tch.dtx.dl_active = false; + lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; + lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; + lchan->ms_t_offs = -1; + lchan->p_offs = -1; + return rc; +} diff --git a/src/common/rsl.c b/src/common/rsl.c index 742270d..e13160e 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -3490,16 +3490,6 @@ return rc; } -static inline uint8_t ms_to2rsl(const struct gsm_lchan *lchan, const struct lapdm_entity *le) -{ - return (lchan->ms_t_offs >= 0) ? lchan->ms_t_offs : (lchan->p_offs - le->ta); -} - -static inline bool ms_to_valid(const struct gsm_lchan *lchan) -{ - return (lchan->ms_t_offs >= 0) || (lchan->p_offs >= 0); -} - struct osmo_bts_supp_meas_info { int16_t toa256_mean; int16_t toa256_min; @@ -3507,8 +3497,8 @@ uint16_t toa256_std_dev; } __attribute__((packed)); -/* Compose and send 8.4.8 MEASUREMENT RESult via RSL */ -int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, const struct lapdm_entity *le) +/* Compose and send 8.4.8 MEASUREMENT RESult via RSL. (timing_offset=-1 -> not present) */ +int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, int timing_offset) { struct msgb *msg; uint8_t meas_res[16]; @@ -3534,13 +3524,12 @@ lchan->meas.ul_res.full.rx_qual, lchan->meas.ul_res.sub.rx_qual, lchan->meas.l1_info.ms_pwr, - lchan->meas.l1_info.ta, l3_len, ms_to2rsl(lchan, le) - MEAS_MAX_TIMING_ADVANCE); + lchan->meas.l1_info.ta, l3_len, timing_offset - MEAS_MAX_TIMING_ADVANCE); - msgb_tv_put(msg, RSL_IE_MEAS_RES_NR, lchan->meas.res_nr++); + msgb_tv_put(msg, RSL_IE_MEAS_RES_NR, lchan->meas.res_nr); size_t ie_len = gsm0858_rsl_ul_meas_enc(&lchan->meas.ul_res, lchan->tch.dtx.dl_active, meas_res); - lchan->tch.dtx.dl_active = false; if (ie_len >= 3) { if (bts->supp_meas_toa256 && lchan->meas.flags & LC_UL_M_F_OSMO_EXT_VALID) { struct osmo_bts_supp_meas_info *smi; @@ -3558,24 +3547,18 @@ smi->toa256_min = htons(ta256 + lchan->meas.ext.toa256_min); smi->toa256_max = htons(ta256 + lchan->meas.ext.toa256_max); smi->toa256_std_dev = htons(lchan->meas.ext.toa256_std_dev); - lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; } msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); - lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; } msgb_tv_put(msg, RSL_IE_BS_POWER, lchan->bs_power_ctrl.current / 2); if (lchan->meas.flags & LC_UL_M_F_L1_VALID) { msgb_tv_fixed_put(msg, RSL_IE_L1_INFO, sizeof(lchan->meas.l1_info), (uint8_t*)&lchan->meas.l1_info); - lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; } - if (l3 && l3_len > 0) + if (l3 && l3_len > 0) { msgb_tl16v_put(msg, RSL_IE_L3_INFO, l3_len, l3); - if (ms_to_valid(lchan)) { - if (l3 && l3_len > 0) - msgb_tv_put(msg, RSL_IE_MS_TIMING_OFFSET, ms_to2rsl(lchan, le)); - lchan->ms_t_offs = -1; - lchan->p_offs = -1; + if (timing_offset != -1) + msgb_tv_put(msg, RSL_IE_MS_TIMING_OFFSET, timing_offset); } rsl_dch_push_hdr(msg, RSL_MT_MEAS_RES, chan_nr); @@ -3629,7 +3612,7 @@ } repeated_dl_facch_active_decision(lchan, msgb_l3(msg), msgb_l3len(msg)); - rc = rsl_tx_meas_res(lchan, msgb_l3(msg), msgb_l3len(msg), le); + rc = handle_ms_meas_report(lchan, (struct gsm48_hdr *)msgb_l3(msg), msgb_l3len(msg)); msgb_free(msg); return rc; } else if (rslms_is_gprs_susp_req(msg)) { -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Gerrit-Change-Number: 25616 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 12:46:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:46:48 +0000 Subject: Change in osmo-bts[master]: Move TA & Power Loops further up the stack, take DTXu flag into account In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25617 ) Change subject: Move TA & Power Loops further up the stack, take DTXu flag into account ...................................................................... Move TA & Power Loops further up the stack, take DTXu flag into account Only once we receive the Measurement Result on L3 from MS we are able to find out whether DTXu was used, and hence whether SUB or FULL measurement set should be used. Let's move all control loops there to have them in one place together, and have it at a similar level where it would lay if it was to be implemented in the BSC. Related: SYS#4917 Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 --- M src/common/l1sap.c M src/common/measurement.c 2 files changed, 50 insertions(+), 34 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved fixeria: Looks good to me, but someone else must approve diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 7e04a3a..a48287c 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -52,8 +52,6 @@ #include #include #include -#include -#include #include #include #include @@ -1533,8 +1531,6 @@ uint32_t fn; enum osmo_ph_pres_info_type pr_info = data_ind->pdch_presence_info; struct gsm_sacch_l1_hdr *l1_hdr; - int8_t ul_rssi; - int16_t ul_ci_cb; chan_nr = data_ind->chan_nr; link_id = data_ind->link_id; @@ -1609,16 +1605,6 @@ handle_ms_meas_report(lchan, NULL, 0); radio_link_timeout(lchan, true); - lchan_ms_ta_ctrl(lchan, lchan->ta_ctrl.current, lchan->meas.ms_toa256); - /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ - if (lchan->tch.dtx.dl_active) { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; - } else { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; - } - lchan_ms_pwr_ctrl(lchan, lchan->ms_power_ctrl.current, ul_rssi, ul_ci_cb); } return -EINVAL; } @@ -1645,26 +1631,6 @@ lchan->meas.l1_info.srr_sro = l1_hdr->srr_sro; lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; - - /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and - * MS_PWR used "for the last burst of the previous SACCH - * period". Since MS must use the values provided in DL SACCH - * starting at next meas period, the value of the "last burst" - * is actually the value used in the entire meas period. Since - * it contains info about the previous meas period, we want to - * feed the Control Loop with the measurements for the same - * period (the previous one), which is stored in lchan->meas(.ul_res): */ - lchan_ms_ta_ctrl(lchan, l1_hdr->ta, lchan->meas.ms_toa256); - /* If DTx is active on Downlink, use the '-SUB', otherwise '-FULL': */ - if (lchan->tch.dtx.dl_active) { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_sub; - } else { - ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); - ul_ci_cb = lchan->meas.ul_ci_cb_full; - } - lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, ul_rssi, ul_ci_cb); - lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else le = &lchan->lapdm_ch.lapdm_dcch; diff --git a/src/common/measurement.c b/src/common/measurement.c index 5b46f79..7dc0bf1 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -10,6 +10,8 @@ #include #include #include +#include +#include /* Tables as per TS 45.008 Section 8.3 */ static const uint8_t ts45008_83_tch_f[] = { 52, 53, 54, 55, 56, 57, 58, 59 }; @@ -793,12 +795,60 @@ { int timing_offset, rc; struct lapdm_entity *le; + bool dtxu_used; + uint8_t ms_pwr; + uint8_t ms_ta; + int8_t ul_rssi; + int16_t ul_ci_cb; le = &lchan->lapdm_ch.lapdm_acch; timing_offset = ms_to_valid(lchan) ? ms_to2rsl(lchan, le) : -1; rc = rsl_tx_meas_res(lchan, (uint8_t *)gh, len, timing_offset); + /* Run control loops now that we have all the information: */ + /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and + * MS_PWR used "for the last burst of the previous SACCH + * period". Since MS must use the values provided in DL SACCH + * starting at next meas period, the value of the "last burst" + * is actually the value used in the entire meas period. Since + * it contains info about the previous meas period, we want to + * feed the Control Loop with the measurements for the same + * period (the previous one), which is stored in lchan->meas(.ul_res): + */ + if (len == 0) { + dtxu_used = true; + ms_ta = lchan->ta_ctrl.current; + ms_pwr = lchan->ms_power_ctrl.current; + } else { + /* if len!=0, it means we were able to parse L1Header in UL SACCH: */ + OSMO_ASSERT(lchan->meas.flags | LC_UL_M_F_L1_VALID); + + ms_ta = lchan->meas.l1_info.ta; + ms_pwr = lchan->meas.l1_info.ms_pwr; + switch (gh->msg_type) { + case GSM48_MT_RR_MEAS_REP: + dtxu_used = (len > sizeof(*gh) + 1) && !!(gh->data[0] & 0x40); + break; + case GSM48_MT_RR_EXT_MEAS_REP: + default: + dtxu_used = true; /* FIXME: not implemented */ + break; + } + } + + if (dtxu_used) { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.sub.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_sub; + } else { + ul_rssi = rxlev2dbm(lchan->meas.ul_res.full.rx_lev); + ul_ci_cb = lchan->meas.ul_ci_cb_full; + } + lchan_ms_ta_ctrl(lchan, ms_ta, lchan->meas.ms_toa256); + lchan_ms_pwr_ctrl(lchan, ms_pwr, ul_rssi, ul_ci_cb); + if (gh) + lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) gh); + /* Reset state for next iteration */ lchan->meas.res_nr++; lchan->tch.dtx.dl_active = false; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Ic152473577ff7c33d30b3f4ee7e321fcb523f723 Gerrit-Change-Number: 25617 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 12:46:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 12:46:48 +0000 Subject: Change in osmo-bts[master]: scheduler: Fix lqual_cb not populated for TCH.ind In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25620 ) Change subject: scheduler: Fix lqual_cb not populated for TCH.ind ...................................................................... scheduler: Fix lqual_cb not populated for TCH.ind Change-Id: I79c83b974149b1e94155bc61172b57de8003891e --- M include/osmo-bts/scheduler_backend.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, 10 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmo-bts/scheduler_backend.h b/include/osmo-bts/scheduler_backend.h index 50ba822..3b1388f 100644 --- a/include/osmo-bts/scheduler_backend.h +++ b/include/osmo-bts/scheduler_backend.h @@ -51,7 +51,7 @@ int _sched_compose_tch_ind(struct l1sched_ts *l1ts, uint32_t fn, enum trx_chan_type chan, uint8_t *tch, uint8_t tch_len, int16_t ta_offs_256bits, uint16_t ber10k, float rssi, - uint8_t is_sub); + int16_t link_qual_cb, uint8_t is_sub); int tx_fcch_fn(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br); int tx_sch_fn(struct l1sched_ts *l1ts, struct trx_dl_burst_req *br); diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ffa0ed8..a6ed517 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -804,7 +804,7 @@ int _sched_compose_tch_ind(struct l1sched_ts *l1ts, uint32_t fn, enum trx_chan_type chan, uint8_t *tch, uint8_t tch_len, int16_t ta_offs_256bits, uint16_t ber10k, float rssi, - uint8_t is_sub) + int16_t link_qual_cb, uint8_t is_sub) { struct msgb *msg; struct osmo_phsap_prim *l1sap; @@ -825,6 +825,7 @@ l1sap->u.tch.rssi = (int8_t) (rssi); l1sap->u.tch.ber10k = ber10k; l1sap->u.tch.ta_offs_256bits = ta_offs_256bits; + l1sap->u.tch.lqual_cb = link_qual_cb; l1sap->u.tch.is_sub = is_sub & 1; msg->l2h = msgb_put(msg, tch_len); diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c index 8cf096d..20a4077 100644 --- a/src/osmo-bts-trx/sched_lchan_tchf.c +++ b/src/osmo-bts-trx/sched_lchan_tchf.c @@ -304,7 +304,9 @@ return _sched_compose_tch_ind(l1ts, fn_begin, bi->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); + bfi_flag ? bi->rssi : meas_avg.rssi, + bfi_flag ? bi->ci_cb : meas_avg.ci_cb, + is_sub); } /* common section for generation of TCH bursts (TCH/H and TCH/F). @@ -366,7 +368,7 @@ /* Note: RSSI/ToA256 is set to 0 to indicate to the higher * layers that this is a faked tch_ind */ _sched_compose_tch_ind(l1ts, br->fn, br->chan, - tch_data, len, 0, 10000, 0, 0); + tch_data, len, 0, 10000, 0, 0, 0); } } diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index ea1060c..366c625 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -375,7 +375,9 @@ return _sched_compose_tch_ind(l1ts, fn_begin, bi->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); + bfi_flag ? bi->rssi : meas_avg.rssi, + bfi_flag ? bi->ci_cb : meas_avg.ci_cb, + is_sub); } /* common section for generation of TCH bursts (TCH/H and TCH/F). -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I79c83b974149b1e94155bc61172b57de8003891e Gerrit-Change-Number: 25620 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 Sep 28 14:10:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 14:10:21 +0000 Subject: Change in osmo-pcu[master]: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25628 ) Change subject: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() ...................................................................... tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() The test uses get_poll_fn() to submit a UL ctrl block on the next expected poll TS+FN. During initial transmit_dl_data(), 2 POLLs for DL_ACK are set on different TS, but the test only updates the clock for one of them in send_ul_mac_block(). As a result, one POLL item is left in the rb_tree, and later on, when send_control_ack() is called, get_poll_fn() will pick that 2nd DL_ACK poll FN+TS which was left untouched (due to sending no events to the PCU clock) instead of the FN+TS which was expected to be allocated by PCU for DL_ASS. Until now this was not an issue since rcv_control_ack() was not properly veirfying what the poll scheduler was expecting and accepted it. This is no longer the case after the follow up patch refactoring rcv_control_ack() and improving its robustness. Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 --- M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 2 files changed, 69 insertions(+), 61 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/25628/1 diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index ae12f1e..8700347 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -2199,6 +2199,9 @@ send_dl_data(bts, tlli1, imsi, (const uint8_t *)buf, rc); } + /* Drop first DL_ACK poll queued */ + send_empty_block(dl_tbf1, dl_tbf1->control_ts, get_poll_fn(dl_tbf1, dl_tbf1->control_ts)); + /* Fake Final DL Ack/Nack */ ulreq.u.MESSAGE_TYPE = MT_PACKET_DOWNLINK_ACK_NACK; Packet_Downlink_Ack_Nack_t *ack = &ulreq.u.Packet_Downlink_Ack_Nack; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index f3a4922..99e82df 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -3215,45 +3215,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes Detected FN jump! 2654288 -> 2654379 -PDCH(bts=0,trx=0,ts=7) FN=2654379 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654379 ------------------------- RX : Uplink Control Block ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack -PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) ack: (BSN=0)"RRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=27) R=ACK I=NACK -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0, recv=28, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRRRRRRRRR....................................' -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. -TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD -TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF -TBF{NULL}: Allocated -UL_ASS_TBF{NONE}: Allocated -DL_ASS_TBF{NONE}: Allocated -[DL] algo A (suggested TRX: 0): Alloc start -- Skipping TS 0, because not enabled -- Skipping TS 1, because not enabled -- Skipping TS 2, because not enabled -- Skipping TS 3, because not enabled -- Skipping TS 4, because not enabled -- Skipping TS 5, because not enabled -- Skipping TS 6, because not enabled -[DL] Assign downlink TS=7 TFI=1 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003. -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Setting Control TS 7 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 80 -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Attaching DL TBF: TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Trigger downlink assignment on PACCH -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send downlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) exists -DL_ASS_TBF(DL-TFI_0){NONE}: Received Event SCHED_ASS -DL_ASS_TBF(DL-TFI_0){NONE}: state_chg to SEND_ASS -TBF(DL-TFI_1){NULL}: Received Event ASSIGN_ADD_PACCH -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, PACCH:0] -TBF(DL-TFI_1){NULL}: state_chg to ASSIGN -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654283 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654283): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 1 => 2 (< MAX 10) @@ -3323,30 +3284,51 @@ PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654374 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654374): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 22 => 23 (< MAX 10) -DL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG -PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) -+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ -------------------------- TX : Packet Downlink Assignment ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) -DL_ASS_TBF(DL-TFI_0){SEND_ASS}: state_chg to WAIT_ACK -PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654379): TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654379, TS=7 (curr FN 2654379) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) N3105 0 => 1 (< MAX 8) +TBF(DL-TFI_0){FINISHED}: Received Event DL_ACKNACK_MISS Detected FN jump! 2654379 -> 2654409 PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) FN=2654409 Rx Packet Control Ack (reason=DL_ACK) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED -DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK -DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free -PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002. -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) -********** DL-TBF ends here ********** -TBF(DL-TFI_0){WAIT_RELEASE}: Deallocated -UL_ASS_TBF(DL-TFI_0){NONE}: Deallocated -DL_ASS_TBF(DL-TFI_0){NONE}: Deallocated -TBF(DL-TFI_1){ASSIGN}: Received Event ASSIGN_ACK_PACCH -TBF(DL-TFI_1){ASSIGN}: state_chg to FLOW +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack +PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) ack: (BSN=0)"RRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=27) R=ACK I=NACK +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0, recv=28, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRRRRRRRRR....................................' +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. +TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD +TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF +TBF{NULL}: Allocated +UL_ASS_TBF{NONE}: Allocated +DL_ASS_TBF{NONE}: Allocated +[DL] algo A (suggested TRX: 0): Alloc start +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 4, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +[DL] Assign downlink TS=7 TFI=1 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003. +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Setting Control TS 7 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 80 +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Attaching DL TBF: TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Trigger downlink assignment on PACCH +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send downlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) exists +DL_ASS_TBF(DL-TFI_0){NONE}: Received Event SCHED_ASS +DL_ASS_TBF(DL-TFI_0){NONE}: state_chg to SEND_ASS +TBF(DL-TFI_1){NULL}: Received Event ASSIGN_ADD_PACCH +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, PACCH:0] +TBF(DL-TFI_1){NULL}: state_chg to ASSIGN +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654383 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10) @@ -3362,6 +3344,29 @@ PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654400 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10) +DL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Downlink Assignment ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) +DL_ASS_TBF(DL-TFI_0){SEND_ASS}: state_chg to WAIT_ACK +PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) +PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) FN=2654413 Rx Packet Control Ack (reason=DL_ASS) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED +DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK +DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free +PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002. +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) +********** DL-TBF ends here ********** +TBF(DL-TFI_0){WAIT_RELEASE}: Deallocated +UL_ASS_TBF(DL-TFI_0){NONE}: Deallocated +DL_ASS_TBF(DL-TFI_0){NONE}: Deallocated +TBF(DL-TFI_1){ASSIGN}: Received Event ASSIGN_ACK_PACCH +TBF(DL-TFI_1){ASSIGN}: state_chg to FLOW PDCH(bts=0,trx=0,ts=0) Received RTS on disabled TS PDCH(bts=0,trx=0,ts=1) Received RTS on disabled TS PDCH(bts=0,trx=0,ts=2) Received RTS on disabled TS @@ -3551,7 +3556,7 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654448 + 13 = 2654461 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on PACCH (FN=2654461, TS=7) -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654409 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654413 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654461, TS=7 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 === end test_tbf_dl_reuse === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 Gerrit-Change-Number: 25628 Gerrit-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 Sep 28 14:10:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 14:10:21 +0000 Subject: Change in osmo-pcu[master]: pdch: refactor rcv_control_ack() with a switch statement References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25629 ) Change subject: pdch: refactor rcv_control_ack() with a switch statement ...................................................................... pdch: refactor rcv_control_ack() with a switch statement This clarifies the different paths and uniforms them. Makes code far easier to read and debug. New improved verification already found some misehavior in some tests. Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 --- M src/pdch.cpp 1 file changed, 56 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/29/25629/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index 76acbca..de77075 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -344,37 +344,28 @@ fn, get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); pdch_ulc_release_fn(ulc, fn); - /* check if this control ack belongs to packet uplink ack */ - ul_tbf = as_ul_tbf(tbf); - if (ul_tbf && reason == PDCH_ULC_POLL_UL_ACK && tbf_ul_ack_exp_ctrl_ack(ul_tbf, fn, ts_no)) { + switch (reason) { + case PDCH_ULC_POLL_UL_ACK: + ul_tbf = as_ul_tbf(tbf); + OSMO_ASSERT(ul_tbf); + if (!tbf_ul_ack_exp_ctrl_ack(ul_tbf, fn, ts_no)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ACK not expected!\n", + fn, ts_no, bts_current_frame_number(tbf->bts)); + return; + } osmo_fsm_inst_dispatch(ul_tbf->ul_ack_fsm.fi, TBF_UL_ACK_EV_RX_CTRL_ACK, NULL); /* We can free since we only set polling on final UL ACK/NACK */ LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] END\n"); tbf_free(tbf); return; - } - if (tbf->dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { - LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] DOWNLINK ASSIGNED\n"); - /* reset N3105 */ - tbf->n_reset(N3105); - osmo_fsm_inst_dispatch(tbf->dl_ass_fsm.fi, TBF_DL_ASS_EV_RX_ASS_CTRL_ACK, NULL); - new_tbf = ms_dl_tbf(ms); - if (!new_tbf) { - LOGPDCH(this, DRLCMAC, LOGL_ERROR, "Got ACK, but DL " - "TBF is gone TLLI=0x%08x\n", tlli); + case PDCH_ULC_POLL_UL_ASS: + if (!tbf->ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ASS not expected! state is %s\n", + fn, ts_no, bts_current_frame_number(tbf->bts), + osmo_fsm_inst_state_name(tbf_ul_ass_fi(tbf))); return; } - if (tbf->state_is(TBF_ST_WAIT_RELEASE) && - tbf->direction == new_tbf->direction) - tbf_free(tbf); - - osmo_fsm_inst_dispatch(new_tbf->state_fsm.fi, TBF_EV_ASSIGN_ACK_PACCH, NULL); - - tbf_assign_control_ts(new_tbf); - return; - } - if (tbf->ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { LOGPTBF(tbf, LOGL_DEBUG, "[DOWNLINK] UPLINK ASSIGNED\n"); /* reset N3105 */ tbf->n_reset(N3105); @@ -398,10 +389,41 @@ * established */ if (ms_need_dl_tbf(new_tbf->ms())) new_tbf->establish_dl_tbf_on_pacch(); - return; - } - if (ms->nacc && nacc_fsm_exp_ctrl_ack(ms->nacc, fn, ts_no)) { + + case PDCH_ULC_POLL_DL_ASS: + if (!tbf->dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_DL_ASS not expected! state is %s\n", + fn, ts_no, bts_current_frame_number(tbf->bts), + osmo_fsm_inst_state_name(tbf_dl_ass_fi(tbf))); + return; + } + LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] DOWNLINK ASSIGNED\n"); + /* reset N3105 */ + tbf->n_reset(N3105); + osmo_fsm_inst_dispatch(tbf->dl_ass_fsm.fi, TBF_DL_ASS_EV_RX_ASS_CTRL_ACK, NULL); + + new_tbf = ms_dl_tbf(ms); + if (!new_tbf) { + LOGPDCH(this, DRLCMAC, LOGL_ERROR, "Got ACK, but DL " + "TBF is gone TLLI=0x%08x\n", tlli); + return; + } + if (tbf->state_is(TBF_ST_WAIT_RELEASE) && + tbf->direction == new_tbf->direction) + tbf_free(tbf); + + osmo_fsm_inst_dispatch(new_tbf->state_fsm.fi, TBF_EV_ASSIGN_ACK_PACCH, NULL); + + tbf_assign_control_ts(new_tbf); + return; + + case PDCH_ULC_POLL_CELL_CHG_CONTINUE: + if (!ms->nacc || !nacc_fsm_exp_ctrl_ack(ms->nacc, fn, ts_no)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_CELL_CHG_CONTINUE not expected!\n", + fn, ts_no, bts_current_frame_number(tbf->bts)); + return; + } osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_CELL_CHG_CONTINUE_ACK, NULL); /* Don't assume MS is no longer reachable (hence don't free) after this: TS 44.060 * "When the mobile station receives the PACKET CELL CHANGE ORDER @@ -412,10 +434,15 @@ * switch to a new cell." */ return; + + case PDCH_ULC_POLL_DL_ACK: + /* Handled in rcv_control_dl_ack_nack() upon receival of DL ACK/NACK as a response to our POLL. */ + return; + default: + LOGPDCH(this, DRLCMAC, LOGL_ERROR, "FN=%" PRIu32 " " + "Error: received PACKET CONTROL ACK at no request (reason=%s)\n", fn, + get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); } - LOGPDCH(this, DRLCMAC, LOGL_ERROR, "FN=%" PRIu32 " " - "Error: received PACKET CONTROL ACK at no request (reason=%s)\n", fn, - get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); } void gprs_rlcmac_pdch::rcv_control_dl_ack_nack(Packet_Downlink_Ack_Nack_t *ack_nack, uint32_t fn, struct pcu_l1_meas *meas) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 Gerrit-Change-Number: 25629 Gerrit-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 Sep 28 14:33:52 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 14:33:52 +0000 Subject: Change in osmo-pcu[master]: cosmetic: Fix missing space References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25630 ) Change subject: cosmetic: Fix missing space ...................................................................... cosmetic: Fix missing space Change-Id: Ib64cbf1d95dd0a881f6ace0cf9a4f517eb58ae0f --- M src/bts.cpp M src/pdch.cpp 2 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/30/25630/1 diff --git a/src/bts.cpp b/src/bts.cpp index c463606..cad6c90 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1173,7 +1173,7 @@ goto no_tbf; poll = pdch_ulc_get_node(pdch->ulc, fn); - if (!poll || poll->type !=PDCH_ULC_NODE_TBF_POLL || + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL || poll->tbf_poll.poll_tbf->direction != GPRS_RLCMAC_UL_TBF) goto no_tbf; diff --git a/src/pdch.cpp b/src/pdch.cpp index 19d57a2..7e73e55 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -314,7 +314,7 @@ struct pdch_ulc_node *poll; poll = pdch_ulc_get_node(ulc, fn); - if (!poll || poll->type !=PDCH_ULC_NODE_TBF_POLL || !poll->tbf_poll.poll_tbf) { + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL || !poll->tbf_poll.poll_tbf) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with " "unknown FN=%u TLLI=0x%08x (TRX %d TS %d)\n", fn, tlli, trx_no(), ts_no); @@ -501,7 +501,7 @@ tfi = ack_nack->DOWNLINK_TFI; poll = pdch_ulc_get_node(ulc, fn); - if (!poll || poll->type !=PDCH_ULC_NODE_TBF_POLL) { + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "EGPRS PACKET DOWNLINK ACK with " "unknown FN=%u TFI=%d (TRX %d TS %d)\n", fn, tfi, trx_no(), ts_no); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib64cbf1d95dd0a881f6ace0cf9a4f517eb58ae0f Gerrit-Change-Number: 25630 Gerrit-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 Sep 28 14:39:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 14:39:15 +0000 Subject: Change in osmo-pcu[master]: assert if tbf pointer for POLL event is NULL References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25631 ) Change subject: assert if tbf pointer for POLL event is NULL ...................................................................... assert if tbf pointer for POLL event is NULL The tbf pointer should always point to a valid TBF. Change-Id: Ib607a38459802f780826f46c20a1696ec98408fb --- M src/pdch.cpp 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/31/25631/1 diff --git a/src/pdch.cpp b/src/pdch.cpp index 29e3b20..25e7ff5 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -314,7 +314,7 @@ struct pdch_ulc_node *poll; poll = pdch_ulc_get_node(ulc, fn); - if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL || !poll->tbf_poll.poll_tbf) { + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with " "unknown FN=%u TLLI=0x%08x (TRX %d TS %d)\n", fn, tlli, trx_no(), ts_no); @@ -330,6 +330,7 @@ ms_dl_tbf(ms) ? ms_dl_tbf(ms)->state_name() : "None"); return; } + OSMO_ASSERT(poll->tbf_poll.poll_tbf); tbf = poll->tbf_poll.poll_tbf; reason = poll->tbf_poll.reason; @@ -465,6 +466,7 @@ fn, tfi, trx_no(), ts_no); return; } + OSMO_ASSERT(poll->tbf_poll.poll_tbf); tbf = as_dl_tbf(poll->tbf_poll.poll_tbf); if (tbf->tfi() != tfi) { LOGPTBFDL(tbf, LOGL_NOTICE, @@ -533,6 +535,7 @@ fn, tfi, trx_no(), ts_no); return; } + OSMO_ASSERT(poll->tbf_poll.poll_tbf); tbf = as_dl_tbf(poll->tbf_poll.poll_tbf); if (tbf->tfi() != tfi) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "EGPRS PACKET DOWNLINK ACK with " -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib607a38459802f780826f46c20a1696ec98408fb Gerrit-Change-Number: 25631 Gerrit-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 Sep 28 14:53:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 14:53:06 +0000 Subject: Change in osmo-pcu[master]: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25632 ) Change subject: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING ...................................................................... tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING Fixes following error log line: "{RELEASING}: Event DL_ACKNACK_MISS not permitted" Rationale: We may move to RELEASING state at some point, for instance due to MAX_N3101/MAX_N3105 while still having some active poll registered in some PDCH ulc. Upon that poll (most probably) timing out, it will send a DL_ACKNACK_MISS event to us. Since we are already determined to release the TBF (waiting for T3195 or T3169 to trigger), simply ignore the event and avoid logging an error. Fixes: OS#5240 Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb --- M src/tbf_fsm.c 1 file changed, 14 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/32/25632/1 diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c index be3c3ef..4202a0c 100644 --- a/src/tbf_fsm.c +++ b/src/tbf_fsm.c @@ -323,6 +323,18 @@ osmo_timer_schedule(&fi->timer, val, 0); } +static void st_releasing(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case TBF_EV_DL_ACKNACK_MISS: + /* Ignore, we don't care about missed DL ACK/NACK poll timeouts + * anymore, we are already releasing the TBF */ + break; + default: + OSMO_ASSERT(0); + } +} + static void handle_timeout_X2002(struct tbf_fsm_ctx *ctx) { struct gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(ctx->tbf); @@ -441,10 +453,11 @@ }, [TBF_ST_RELEASING] = { .in_event_mask = - 0, + X(TBF_EV_DL_ACKNACK_MISS), .out_state_mask = 0, .name = "RELEASING", + .action = st_releasing, .onenter = st_releasing_on_enter, }, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb Gerrit-Change-Number: 25632 Gerrit-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 Sep 28 15:15:35 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 28 Sep 2021 15:15:35 +0000 Subject: Change in osmo-pcu[master]: tbf: poll_timeout(): Validate expected poll reason In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25625 ) Change subject: tbf: poll_timeout(): Validate expected poll reason ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f Gerrit-Change-Number: 25625 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 15: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 Sep 28 15:16:01 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 28 Sep 2021 15:16:01 +0000 Subject: Change in osmo-pcu[master]: cosmetic: Fix missing space In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25630 ) Change subject: cosmetic: Fix missing space ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib64cbf1d95dd0a881f6ace0cf9a4f517eb58ae0f Gerrit-Change-Number: 25630 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Comment-Date: Tue, 28 Sep 2021 15:16:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 15:19:54 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 15:19:54 +0000 Subject: Change in osmo-pcu[master]: tbf: refactor poll_timeout() with a switch statement In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25627 ) Change subject: tbf: refactor poll_timeout() with a switch statement ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4c56af70c79c20f1e600371e040bd48bcc908a75 Gerrit-Change-Number: 25627 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 15:19:54 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 15:20:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 15:20:42 +0000 Subject: Change in osmo-pcu[master]: tbf: poll_timeout(): Validate expected poll reason In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25625 ) Change subject: tbf: poll_timeout(): Validate expected poll reason ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f Gerrit-Change-Number: 25625 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 15:20: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 Sep 28 15:21:52 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 15:21:52 +0000 Subject: Change in osmo-pcu[master]: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25626 ) Change subject: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9ded6e1c80e6cd7bcf6883bc2e853b6dafb33f7c Gerrit-Change-Number: 25626 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 15:21: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 Sep 28 15:23:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 15:23:55 +0000 Subject: Change in osmo-pcu[master]: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25628 ) Change subject: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 Gerrit-Change-Number: 25628 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 15:23:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 15:29:50 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 15:29:50 +0000 Subject: Change in osmo-pcu[master]: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25632 ) Change subject: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb Gerrit-Change-Number: 25632 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 15:29:50 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 15:30:18 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 15:30:18 +0000 Subject: Change in osmo-pcu[master]: assert if tbf pointer for POLL event is NULL In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25631 ) Change subject: assert if tbf pointer for POLL event is NULL ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib607a38459802f780826f46c20a1696ec98408fb Gerrit-Change-Number: 25631 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 15:30:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 15:48:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 15:48:55 +0000 Subject: Change in osmo-pcu[master]: tbf: poll_timeout(): Validate expected poll reason In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25625 ) Change subject: tbf: poll_timeout(): Validate expected poll reason ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f Gerrit-Change-Number: 25625 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 15:48: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 Sep 28 16:40:07 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 28 Sep 2021 16:40:07 +0000 Subject: Change in osmo-pcu[master]: pdch: refactor rcv_control_ack() with a switch statement In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25629 ) Change subject: pdch: refactor rcv_control_ack() with a switch statement ...................................................................... Patch Set 1: (1 comment) The diff would have been easier to read if you kept the order between if and switch https://gerrit.osmocom.org/c/osmo-pcu/+/25629/1/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25629/1/src/pdch.cpp at 350 PS1, Line 350: OSMO_ASSERT(ul_tbf); Could the ASSERT cause aborts where we would have only logged an error before (due to if ul_tbf and fall-through logging at the end)? -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 Gerrit-Change-Number: 25629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 16:40: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 Sep 28 16:48:14 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 28 Sep 2021 16:48:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 ) Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... RSLEM: add f_rslem_auto_chan_act_ack(boolean) Allow to switch off automatic Channel Activation ACK via a new port signature. Required for upcoming BSC_Tests.TC_lost_sdcch_during_assignment(). Related: SYS#5627 Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 --- M library/RSL_Emulation.ttcn 1 file changed, 19 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/25633/1 diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 31647df..6baa77f 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -98,11 +98,13 @@ 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); +signature RSLEM_auto_chan_act_ack(boolean enable); type port RSLEM_PROC_PT procedure { inout RSLEM_register, RSLEM_unregister, RSLEM_suspend, RSLEM_wait_queue, - RSLEM_get_last_act; + RSLEM_get_last_act, + RSLEM_auto_chan_act_ack; } with { extension "internal" }; /*********************************************************************** @@ -491,6 +493,7 @@ * in a queue. These messages will remain in the queue until the appropriate * connection handler is registered. */ var boolean wait_queue_enabled := false; + var boolean auto_chan_act_ack := true; f_conn_table_init(); f_trx_conn_map_init(); @@ -599,7 +602,11 @@ chan_nr := rx_rsl.rsl.ies[0].body.chan_nr; trx_nr := f_trx_by_streamId(rx_rsl.streamId); f_store_last_act_data(trx_nr, chan_nr, rx_rsl.rsl); - IPA_PT.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl.streamId)); + if (auto_chan_act_ack) { + IPA_PT.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl.streamId)); + } else { + CLIENT_PT.send(rx_rsl); + } } [not dchan_suspended] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeDR(?), sid := ?)) -> value rx_rsl { @@ -706,6 +713,10 @@ 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; } + + [] RSL_PROC.getcall(RSLEM_auto_chan_act_ack:{?}) -> param(auto_chan_act_ack) sender vc_conn { + RSL_PROC.reply(RSLEM_auto_chan_act_ack:{auto_chan_act_ack}) to vc_conn; + } } } } @@ -800,7 +811,11 @@ return chan_act; } - - +function f_rslem_auto_chan_act_ack(RSLEM_PROC_PT PT, boolean enable) +runs on RSL_DchanHdlr { + PT.call(RSLEM_auto_chan_act_ack:{enable}) { + [] PT.getreply(RSLEM_auto_chan_act_ack:{enable}) {}; + } +} } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 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 Sep 28 16:48:15 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Tue, 28 Sep 2021 16:48:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... bsc: add TC_lost_sdcch_during_assignment() Reproduce a segfault happening when the SDCCH (primary) lchan is lost in-between a TCH Channel Activ and its Channel Activ Ack. Related: SYS#5627 Related: I3b1cd88bea62ef0032f6c035bac95d3df9fdca7a (osmo-bsc) Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 --- M bsc/BSC_Tests.ttcn 1 file changed, 91 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/25634/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7183f54..8b97770 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -10155,6 +10155,95 @@ f_shutdown_helper(); } +/* Reproduce a segfault happening when the SDCCH (primary) lchan is lost in-between a TCH Channel Activ and its Channel + * Activ Ack (SYS#5627). */ +private function f_TC_lost_sdcch_during_assignment(charstring id) runs on MSC_ConnHdlr { + var PDU_BSSAP ass_cmd := f_gen_ass_req(); + 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 := + f_BSSMAP_chtype_from_codec(g_pars.ass_codec_list.codecElements[0]); + + var BSSMAP_FIELD_CodecType codecType; + codecType := valueof(ass_cmd.pdu.bssmap.assignmentRequest.codecList.codecElements[0].codecType); + + f_MscConnHdlr_init(g_pars.media_nr, host_bts, host_mgw_mgcp, codecType); + + /* First establish a signalling lchan */ + f_create_chan_and_exp(); + f_rslem_dchan_queue_enable(); + + /* we should now have a COMPL_L3 at the 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 := ?; + } + timer T := 10.0; + T.start; + alt { + [] BSSAP.receive(exp_l3_compl); + [] 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"); + } + } + + f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit}); + activate(as_Media_mgw()); + + var RslChannelNr chan_nr := { u := { ch0 := RSL_CHAN_NR_Bm_ACCH }, tn := 1 }; + f_rslem_register(0, chan_nr); + + f_rslem_auto_chan_act_ack(RSL_PROC, false); + BSSAP.send(ass_cmd); + + + /* Wait for the Channel Activ for the TCH channel */ + var ASP_RSL_Unitdata rx_rsl_ud; + RSL.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV), sid := ?)) -> value rx_rsl_ud; + + /* make the original SDCCH disappear */ + RSL.send(ts_RSL_REL_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)))); + + /* and ACK the TCH channel activation. This caused a segfault up to OsmoBSC 1.7.0 (SYS#5627) */ + RSL.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl_ud.streamId)); + + interleave { + [] BSSAP.receive(tr_BSSMAP_AssignmentFail); + [] BSSAP.receive(tr_BSSMAP_ClearRequest); + } + + BSSAP.send(ts_BSSMAP_ClearCommand(0)); + BSSAP.receive(tr_BSSMAP_ClearComplete); + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + + var MgcpCommand mgcp; + MGCP.receive(tr_DLCX()) -> value mgcp { + MGCP.send(ts_DLCX_ACK2(mgcp.line.trans_id)); + }; + + f_sleep(0.5); +} +testcase TC_lost_sdcch_during_assignment() runs on test_CT { + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + var MSC_ConnHdlr vc_conn; + + f_init(1, true); + f_sleep(1.0); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + vc_conn := f_start_handler(refers(f_TC_lost_sdcch_during_assignment), pars); + vc_conn.done; + + f_shutdown_helper(); +} + control { /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); @@ -10462,6 +10551,8 @@ execute( TC_imm_ass_pre_ts_ack_dyn_ts() ); execute( TC_ctrl_trx_rf_locked() ); + + execute( TC_lost_sdcch_during_assignment() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 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 Sep 28 18:40:52 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:40:52 +0000 Subject: Change in osmo-pcu[master]: tbf: poll_timeout(): Validate expected poll reason In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25625 ) Change subject: tbf: poll_timeout(): Validate expected poll reason ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f Gerrit-Change-Number: 25625 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 18: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 Tue Sep 28 18:41:16 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:41:16 +0000 Subject: Change in osmo-pcu[master]: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25626 ) Change subject: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9ded6e1c80e6cd7bcf6883bc2e853b6dafb33f7c Gerrit-Change-Number: 25626 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:41: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 Sep 28 18:41:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:41:33 +0000 Subject: Change in osmo-pcu[master]: tbf: refactor poll_timeout() with a switch statement In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25627 ) Change subject: tbf: refactor poll_timeout() with a switch statement ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4c56af70c79c20f1e600371e040bd48bcc908a75 Gerrit-Change-Number: 25627 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:41: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 Sep 28 18:41:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:41:57 +0000 Subject: Change in osmo-pcu[master]: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25628 ) Change subject: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 Gerrit-Change-Number: 25628 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:41:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:42:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:42:18 +0000 Subject: Change in osmo-pcu[master]: pdch: refactor rcv_control_ack() with a switch statement In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25629 ) Change subject: pdch: refactor rcv_control_ack() with a switch statement ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 Gerrit-Change-Number: 25629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 18:42:18 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:42:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:42:34 +0000 Subject: Change in osmo-pcu[master]: assert if tbf pointer for POLL event is NULL In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25631 ) Change subject: assert if tbf pointer for POLL event is NULL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib607a38459802f780826f46c20a1696ec98408fb Gerrit-Change-Number: 25631 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:42: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 Sep 28 18:42:49 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:42:49 +0000 Subject: Change in osmo-pcu[master]: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25632 ) Change subject: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb Gerrit-Change-Number: 25632 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:42:49 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:44:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:44:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 ) Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/1/library/RSL_Emulation.ttcn File library/RSL_Emulation.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/1/library/RSL_Emulation.ttcn at 814 PS1, Line 814: f_rslem_auto_chan_act_ack I would want to have something like f_rslem_set_auto_chan_act_ack or the like in the name. Like the above function is f_rslem_get_... and you immedaitely know what it is all about. -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:44: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 Tue Sep 28 18:44:48 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:44:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:44: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 Sep 28 18:46:08 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:46:08 +0000 Subject: Change in osmo-ccid-firmware[master]: sychronize atmel start config with the headers In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25612 ) Change subject: sychronize atmel start config with the headers ...................................................................... Patch Set 2: Code-Review+1 I assume you have manually verified those changes. -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: Ib21847f6726920e3f97600a347f2a16f957a5e8e Gerrit-Change-Number: 25612 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:46:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:46:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:46:45 +0000 Subject: Change in osmo-ccid-firmware[master]: internal ul32k instead of external 32k osc In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25613 ) Change subject: internal ul32k instead of external 32k osc ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I257b8854e1860ed698c4007efeb5d16e842b519a Gerrit-Change-Number: 25613 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:46:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:46:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:46:57 +0000 Subject: Change in osmo-ccid-firmware[master]: proper xosc startup delay In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25614 ) Change subject: proper xosc startup delay ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I5063b43cd3973b66963fc946c019f32a0281d1a6 Gerrit-Change-Number: 25614 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:46:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:47:11 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:47:11 +0000 Subject: Change in osmo-ccid-firmware[master]: remove unused dmac In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25615 ) Change subject: remove unused dmac ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/25615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-Change-Id: I9646220d9864fd8ddc133da58151227c24546cc6 Gerrit-Change-Number: 25615 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:47:11 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:48:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:48:10 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix dsp-trace-flags In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix dsp-trace-flags ...................................................................... Patch Set 1: Code-Review+1 might make sense to note in the commitlog that it is just the "show" which is broken, not the commands to actually set/control the flax, nor the execution of it. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:48: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 Sep 28 18:48:33 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:48:33 +0000 Subject: Change in osmo-pcu[master]: pcuif: Submit data_req with len=0 as idle frames In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25535 ) Change subject: pcuif: Submit data_req with len=0 as idle frames ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ife718eeed2af011479c03099ea109518f04567bc Gerrit-Change-Number: 25535 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Assignee: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 18:48:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:50:01 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:50:01 +0000 Subject: Change in osmo-bts[master]: osmo-trx: fix maxdly In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25619 ) Change subject: osmo-trx: fix maxdly ...................................................................... Patch Set 1: --verbose. fix it how? I understand the comment was wrong in terms of the propagation during 1 symbol. But why is the range doubled? and why is the maxdlynb below not also changed? -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I8d79080c82411e6427eec37d008614fa5d5e1ace Gerrit-Change-Number: 25619 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: pespin Gerrit-CC: laforge Gerrit-Comment-Date: Tue, 28 Sep 2021 18:50:01 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:51:13 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:51:13 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: lower trace to make bl fit In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/simtrace2/+/25606 ) Change subject: contrib/jenkins.sh: lower trace to make bl fit ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/simtrace2/+/25606/2/contrib/jenkins.sh File contrib/jenkins.sh: https://gerrit.osmocom.org/c/simtrace2/+/25606/2/contrib/jenkins.sh at 48 PS2, Line 48: fi > I suggest to remove the if... else here, and just always run [?] good idea. -- To view, visit https://gerrit.osmocom.org/c/simtrace2/+/25606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-Change-Id: I7d2947c84097035bed00ad489a175d614b4c388e Gerrit-Change-Number: 25606 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 18:51:13 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:52:09 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:52:09 +0000 Subject: Change in osmo-bsc[master]: bts_vty: Print C/I power params for osmo-bts only In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25621 ) Change subject: bts_vty: Print C/I power params for osmo-bts only ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 Gerrit-Change-Number: 25621 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 18:52:09 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:52:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:52:57 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 28 Sep 2021 18:52: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 Sep 28 18:53:58 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:53:58 +0000 Subject: Change in osmo-bsc[master]: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25607 ) Change subject: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1c9bd5bf2fd126e62bcbec419f3499d2e0465559 Gerrit-Change-Number: 25607 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 18: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 Tue Sep 28 18:54:18 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:54:18 +0000 Subject: Change in osmo-bsc[master]: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25607 ) Change subject: Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. ...................................................................... Fix MEAS parsing, as Ericsson RBS reports TA shifted by 2 bits. This fixes call setup issues when more than ~1km from the tower. NOTE: We use the last reported TA from the UE in the CHANnel ACTIVation. When the UE is more than 1km from the tower, (unshifted) TA in the measurement report can be 8 or greater. Once we send TA of 8 in the CHAN ACTIV message, the lchan is unrecoverable. Change-Id: I1c9bd5bf2fd126e62bcbec419f3499d2e0465559 --- M src/osmo-bsc/abis_rsl.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/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index c7399eb..fb8e386 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1319,9 +1319,10 @@ if (val[0] & 0x04) mr->flags |= MEAS_REP_F_FPC; mr->ms_l1.ta = val[1]; - /* BS11 and Nokia reports TA shifted by 2 bits */ + /* BS11, Nokia and RBS report TA shifted by 2 bits */ if (msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_BS11 - || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) + || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE + || msg->lchan->ts->trx->bts->type == GSM_BTS_TYPE_RBS2000) mr->ms_l1.ta >>= 2; /* store TA for handover decision, and for intra-cell re-assignment */ mr->lchan->last_ta = mr->ms_l1.ta; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I1c9bd5bf2fd126e62bcbec419f3499d2e0465559 Gerrit-Change-Number: 25607 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-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 Sep 28 18:55:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:55:35 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: make assignment_fsm_timer_cb static In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25608 ) Change subject: assignment_fsm: make assignment_fsm_timer_cb static ...................................................................... assignment_fsm: make assignment_fsm_timer_cb static assignment_fsm_timer_cb is only used in module assignment_fsm.c, so lets decalare it as static Change-Id: Ibb3aa01d21b0a83600dc22382a5c8001debbe054 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 3c1f13b..30927e9 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -945,7 +945,7 @@ } } -int assignment_fsm_timer_cb(struct osmo_fsm_inst *fi) +static int assignment_fsm_timer_cb(struct osmo_fsm_inst *fi) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); assignment_count_result(CTR_ASSIGNMENT_TIMEOUT); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibb3aa01d21b0a83600dc22382a5c8001debbe054 Gerrit-Change-Number: 25608 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 Tue Sep 28 18:55:35 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:55:35 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: make assignment_fsm_allstate_action static In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25609 ) Change subject: assignment_fsm: make assignment_fsm_allstate_action static ...................................................................... assignment_fsm: make assignment_fsm_allstate_action static assignment_fsm_allstate_action is only used in module assignment_fsm.c, so lets decalare it as static Change-Id: I90d6c11bd485e3be80efc7f146e0129d93e18458 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 30927e9..97eb335 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -916,7 +916,7 @@ {} }; -void assignment_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) +static void assignment_fsm_allstate_action(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I90d6c11bd485e3be80efc7f146e0129d93e18458 Gerrit-Change-Number: 25609 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 Tue Sep 28 18:56:22 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:56:22 +0000 Subject: Change in osmo-bts[master]: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25285 ) Change subject: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Gerrit-Change-Number: 25285 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 18:56:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:58:42 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:58:42 +0000 Subject: Change in osmo-pcu[master]: tbf: poll_timeout(): Validate expected poll reason In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25625 ) Change subject: tbf: poll_timeout(): Validate expected poll reason ...................................................................... tbf: poll_timeout(): Validate expected poll reason Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f --- M src/tbf.cpp 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve pespin: Looks good to me, approved laforge: Looks good to me, but someone else must approve diff --git a/src/tbf.cpp b/src/tbf.cpp index 31dec72..61ab90e 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -548,7 +548,7 @@ } } osmo_fsm_inst_dispatch(ul_tbf->ul_ack_fsm.fi, TBF_UL_ACK_EV_POLL_TIMEOUT, NULL); - } else if (ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + } else if (reason == PDCH_ULC_POLL_UL_ASS && ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PUA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -559,7 +559,7 @@ } /* Signal timeout to FSM to reschedule UL assignment */ osmo_fsm_inst_dispatch(this->ul_ass_fsm.fi, TBF_UL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + } else if (reason == PDCH_ULC_POLL_DL_ASS && dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PDA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -570,7 +570,7 @@ } /* Signal timeout to FSM to reschedule DL assignment */ osmo_fsm_inst_dispatch(this->dl_ass_fsm.fi, TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && + } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && m_ms->nacc->continue_poll_fn == poll_fn && m_ms->nacc->continue_poll_ts == pdch->ts_no) { /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I680b00fcb18a15a831ca13403c19162dadc67a2f Gerrit-Change-Number: 25625 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:58:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:58:43 +0000 Subject: Change in osmo-pcu[master]: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25626 ) Change subject: nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() ...................................................................... nacc: Introduce helper function nacc_fsm_exp_ctrl_ack() Move FSM internal state checks to its own file. Re-use the helper function in the 2 places where same stuff is checked. Change-Id: I9ded6e1c80e6cd7bcf6883bc2e853b6dafb33f7c --- M src/nacc_fsm.c M src/nacc_fsm.h M src/pdch.cpp M src/tbf.cpp 4 files changed, 12 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/nacc_fsm.c b/src/nacc_fsm.c index df38927..ba7bbb7 100644 --- a/src/nacc_fsm.c +++ b/src/nacc_fsm.c @@ -895,3 +895,10 @@ return false; return !osmo_cgi_ps_cmp(&ctx->cgi_ps, cgi_ps); } + +bool nacc_fsm_exp_ctrl_ack(const struct nacc_fsm_ctx *ctx, uint32_t fn, uint8_t ts) +{ + return ctx->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && + ctx->continue_poll_fn == fn && + ctx->continue_poll_ts == ts; +} diff --git a/src/nacc_fsm.h b/src/nacc_fsm.h index 68ebd52..beea0f7 100644 --- a/src/nacc_fsm.h +++ b/src/nacc_fsm.h @@ -75,3 +75,5 @@ bool nacc_fsm_is_waiting_si_resolution(const struct nacc_fsm_ctx *ctx, const struct osmo_cell_global_id_ps *cgi_ps); + +bool nacc_fsm_exp_ctrl_ack(const struct nacc_fsm_ctx *ctx, uint32_t fn, uint8_t ts); diff --git a/src/pdch.cpp b/src/pdch.cpp index 19d57a2..76acbca 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -401,8 +401,7 @@ return; } - if (ms->nacc && ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && - ms->nacc->continue_poll_fn == fn && ms->nacc->continue_poll_ts == ts_no) { + if (ms->nacc && nacc_fsm_exp_ctrl_ack(ms->nacc, fn, ts_no)) { osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_CELL_CHG_CONTINUE_ACK, NULL); /* Don't assume MS is no longer reachable (hence don't free) after this: TS 44.060 * "When the mobile station receives the PACKET CELL CHANGE ORDER diff --git a/src/tbf.cpp b/src/tbf.cpp index 61ab90e..0ea013b 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -570,8 +570,8 @@ } /* Signal timeout to FSM to reschedule DL assignment */ osmo_fsm_inst_dispatch(this->dl_ass_fsm.fi, TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && m_ms->nacc && m_ms->nacc->fi->state == NACC_ST_WAIT_CELL_CHG_CONTINUE_ACK && - m_ms->nacc->continue_poll_fn == poll_fn && m_ms->nacc->continue_poll_ts == pdch->ts_no) { + } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && + m_ms->nacc && nacc_fsm_exp_ctrl_ack(m_ms->nacc, poll_fn, pdch->ts_no)) { /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); return; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I9ded6e1c80e6cd7bcf6883bc2e853b6dafb33f7c Gerrit-Change-Number: 25626 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 18:58:43 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 18:58:43 +0000 Subject: Change in osmo-pcu[master]: tbf: refactor poll_timeout() with a switch statement In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25627 ) Change subject: tbf: refactor poll_timeout() with a switch statement ...................................................................... tbf: refactor poll_timeout() with a switch statement This clarifies the different paths and uniforms them. Makes code far easier to read and debug. Change-Id: I4c56af70c79c20f1e600371e040bd48bcc908a75 --- M src/tbf.cpp 1 file changed, 48 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/tbf.cpp b/src/tbf.cpp index 0ea013b..bda96af 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -532,12 +532,21 @@ void gprs_rlcmac_tbf::poll_timeout(struct gprs_rlcmac_pdch *pdch, uint32_t poll_fn, enum pdch_ulc_tbf_poll_reason reason) { - gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(this); + gprs_rlcmac_ul_tbf *ul_tbf; + gprs_rlcmac_dl_tbf *dl_tbf; LOGPTBF(this, LOGL_NOTICE, "poll timeout for FN=%d, TS=%d (curr FN %d)\n", poll_fn, pdch->ts_no, bts_current_frame_number(bts)); - if (ul_tbf && reason == PDCH_ULC_POLL_UL_ACK && tbf_ul_ack_exp_ctrl_ack(ul_tbf, poll_fn, pdch->ts_no)) { + switch (reason) { + case PDCH_ULC_POLL_UL_ACK: + ul_tbf = as_ul_tbf(this); + OSMO_ASSERT(ul_tbf); + if (!tbf_ul_ack_exp_ctrl_ack(ul_tbf, poll_fn, pdch->ts_no)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ACK not expected!\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts)); + return; + } bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PUAN_POLL_TIMEDOUT); if (state_is(TBF_ST_FINISHED)) { @@ -548,7 +557,15 @@ } } osmo_fsm_inst_dispatch(ul_tbf->ul_ack_fsm.fi, TBF_UL_ACK_EV_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_UL_ASS && ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + break; + + case PDCH_ULC_POLL_UL_ASS: + if (!ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ASS not expected! state is %s\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts), + osmo_fsm_inst_state_name(tbf_ul_ass_fi(this))); + return; + } bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PUA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -559,7 +576,15 @@ } /* Signal timeout to FSM to reschedule UL assignment */ osmo_fsm_inst_dispatch(this->ul_ass_fsm.fi, TBF_UL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_DL_ASS && dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + break; + + case PDCH_ULC_POLL_DL_ASS: + if (!dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_DL_ASS not expected! state is %s\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts), + osmo_fsm_inst_state_name(tbf_dl_ass_fi(this))); + return; + } bts_do_rate_ctr_inc(bts, CTR_RLC_ASS_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PDA_POLL_TIMEDOUT); if (n_inc(N3105)) { @@ -570,29 +595,34 @@ } /* Signal timeout to FSM to reschedule DL assignment */ osmo_fsm_inst_dispatch(this->dl_ass_fsm.fi, TBF_DL_ASS_EV_ASS_POLL_TIMEOUT, NULL); - } else if (reason == PDCH_ULC_POLL_CELL_CHG_CONTINUE && - m_ms->nacc && nacc_fsm_exp_ctrl_ack(m_ms->nacc, poll_fn, pdch->ts_no)) { + break; + + case PDCH_ULC_POLL_CELL_CHG_CONTINUE: + if (!m_ms->nacc || !nacc_fsm_exp_ctrl_ack(m_ms->nacc, poll_fn, pdch->ts_no)) { + LOGPTBF(this, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_CELL_CHG_CONTINUE not expected!\n", + poll_fn, pdch->ts_no, bts_current_frame_number(bts)); + return; + } /* Timeout waiting for CTRL ACK acking Pkt Cell Change Continue */ osmo_fsm_inst_dispatch(m_ms->nacc->fi, NACC_EV_TIMEOUT_CELL_CHG_CONTINUE, NULL); - return; - } else if (reason == PDCH_ULC_POLL_DL_ACK) { - /* POLL Timeout expecting DL ACK/NACK: implies direction == GPRS_RLCMAC_DL_TBF */ - gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(this); + break; + case PDCH_ULC_POLL_DL_ACK: + dl_tbf = as_dl_tbf(this); + /* POLL Timeout expecting DL ACK/NACK: implies direction == GPRS_RLCMAC_DL_TBF */ + OSMO_ASSERT(dl_tbf); if (!(dl_tbf->state_fsm.state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK))) { LOGPTBF(this, LOGL_NOTICE, "Timeout for polling PACKET DOWNLINK ACK: %s\n", tbf_rlcmac_diag(dl_tbf)); dl_tbf->state_fsm.state_flags |= (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK); } - if (dl_tbf->state_is(TBF_ST_RELEASING)) bts_do_rate_ctr_inc(bts, CTR_RLC_REL_TIMEDOUT); else { bts_do_rate_ctr_inc(bts, CTR_RLC_ACK_TIMEDOUT); bts_do_rate_ctr_inc(bts, CTR_PDAN_POLL_TIMEDOUT); } - if (dl_tbf->n_inc(N3105)) { osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_MAX_N3105, NULL); bts_do_rate_ctr_inc(bts, CTR_PDAN_POLL_FAILED); @@ -601,8 +631,12 @@ } /* resend IMM.ASS on CCCH on timeout */ osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_DL_ACKNACK_MISS, NULL); - } else - LOGPTBF(this, LOGL_ERROR, "Poll Timeout, but no event!\n"); + break; + + default: + LOGPTBF(this, LOGL_ERROR, "Poll Timeout, reason %s unhandled!\n", + get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); + } } int gprs_rlcmac_tbf::setup(int8_t use_trx, bool single_slot) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I4c56af70c79c20f1e600371e040bd48bcc908a75 Gerrit-Change-Number: 25627 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 19:47:27 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Tue, 28 Sep 2021 19:47:27 +0000 Subject: Change in osmo-msc[master]: Make UTRAN encryption algorithms configurable In-Reply-To: References: Message-ID: Hello Jenkins Builder, neels, fixeria, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-msc/+/22766 to look at the new patch set (#3). Change subject: Make UTRAN encryption algorithms configurable ...................................................................... Make UTRAN encryption algorithms configurable Allow the user fine-grained control over which UMTS encryption algorithms are permitted, rather than always permitting UEA1 and UEA2 or neither. This brings the handling of UEA in line with the handling of A5 for GERAN. Change-Id: I91f9e50f9c1439aa19528f887b83ae9de628fcfd Closes: OS#4144 Depends: osmo-iuh.git I6d2d033b0427bdc84fee61e0f3cb7b29935214bf --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/ran_msg.h M src/libmsc/gsm_04_08.c M src/libmsc/msc_a.c M src/libmsc/msc_net_init.c M src/libmsc/msc_vty.c M src/libmsc/ran_msg_iu.c M tests/msc_vlr/msc_vlr_test_umts_authen.c M tests/test_nodes.vty 9 files changed, 38 insertions(+), 63 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/66/22766/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I91f9e50f9c1439aa19528f887b83ae9de628fcfd Gerrit-Change-Number: 22766 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter 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 Tue Sep 28 19:55:39 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:55:39 +0000 Subject: Change in osmo-pcu[master]: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25628 ) Change subject: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 Gerrit-Change-Number: 25628 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 19:55: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 Sep 28 19:56:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:56:49 +0000 Subject: Change in osmo-pcu[master]: pdch: refactor rcv_control_ack() with a switch statement In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25629 ) Change subject: pdch: refactor rcv_control_ack() with a switch statement ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-pcu/+/25629/1/src/pdch.cpp File src/pdch.cpp: https://gerrit.osmocom.org/c/osmo-pcu/+/25629/1/src/pdch.cpp at 350 PS1, Line 350: OSMO_ASSERT(ul_tbf); > Could the ASSERT cause aborts where we would have only logged an error before (due to if ul_tbf and [?] well, theoretically it should not happen since a DL TBF should have never allocated a POLL of this type, it just doesn't make sense, hence the assert here makes more sense. -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 Gerrit-Change-Number: 25629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 19:56:49 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 19:56:56 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:56:56 +0000 Subject: Change in osmo-pcu[master]: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25628 ) Change subject: tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() ...................................................................... tests: TbfTest: Fix wrong behavior in test_tbf_dl_reuse() The test uses get_poll_fn() to submit a UL ctrl block on the next expected poll TS+FN. During initial transmit_dl_data(), 2 POLLs for DL_ACK are set on different TS, but the test only updates the clock for one of them in send_ul_mac_block(). As a result, one POLL item is left in the rb_tree, and later on, when send_control_ack() is called, get_poll_fn() will pick that 2nd DL_ACK poll FN+TS which was left untouched (due to sending no events to the PCU clock) instead of the FN+TS which was expected to be allocated by PCU for DL_ASS. Until now this was not an issue since rcv_control_ack() was not properly veirfying what the poll scheduler was expecting and accepted it. This is no longer the case after the follow up patch refactoring rcv_control_ack() and improving its robustness. Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 --- M tests/tbf/TbfTest.cpp M tests/tbf/TbfTest.err 2 files changed, 69 insertions(+), 61 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index ae12f1e..8700347 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -2199,6 +2199,9 @@ send_dl_data(bts, tlli1, imsi, (const uint8_t *)buf, rc); } + /* Drop first DL_ACK poll queued */ + send_empty_block(dl_tbf1, dl_tbf1->control_ts, get_poll_fn(dl_tbf1, dl_tbf1->control_ts)); + /* Fake Final DL Ack/Nack */ ulreq.u.MESSAGE_TYPE = MT_PACKET_DOWNLINK_ACK_NACK; Packet_Downlink_Ack_Nack_t *ack = &ulreq.u.Packet_Downlink_Ack_Nack; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index f3a4922..99e82df 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -3215,45 +3215,6 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) appending 21 bytes Detected FN jump! 2654288 -> 2654379 -PDCH(bts=0,trx=0,ts=7) FN=2654379 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ -PDCH(bts=0,trx=0,ts=7) FN=2654379 ------------------------- RX : Uplink Control Block ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack -PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) ack: (BSN=0)"RRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=27) R=ACK I=NACK -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0, recv=28, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRRRRRRRRR....................................' -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. -TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD -TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF -TBF{NULL}: Allocated -UL_ASS_TBF{NONE}: Allocated -DL_ASS_TBF{NONE}: Allocated -[DL] algo A (suggested TRX: 0): Alloc start -- Skipping TS 0, because not enabled -- Skipping TS 1, because not enabled -- Skipping TS 2, because not enabled -- Skipping TS 3, because not enabled -- Skipping TS 4, because not enabled -- Skipping TS 5, because not enabled -- Skipping TS 6, because not enabled -[DL] Assign downlink TS=7 TFI=1 -PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003. -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Setting Control TS 7 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 80 -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Attaching DL TBF: TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Trigger downlink assignment on PACCH -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send downlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) exists -DL_ASS_TBF(DL-TFI_0){NONE}: Received Event SCHED_ASS -DL_ASS_TBF(DL-TFI_0){NONE}: state_chg to SEND_ASS -TBF(DL-TFI_1){NULL}: Received Event ASSIGN_ADD_PACCH -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, PACCH:0] -TBF(DL-TFI_1){NULL}: state_chg to ASSIGN -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654283 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654283): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW) N3101 1 => 2 (< MAX 10) @@ -3323,30 +3284,51 @@ PDCH(bts=0,trx=0,ts=7) Expiring FN=2654379 but previous FN=2654374 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654374): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 22 => 23 (< MAX 10) -DL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG -PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) -+++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ -------------------------- TX : Packet Downlink Assignment ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) -DL_ASS_TBF(DL-TFI_0){SEND_ASS}: state_chg to WAIT_ACK -PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) +PDCH(bts=0,trx=0,ts=7) Timeout for registered POLL (FN=2654379): TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654379, TS=7 (curr FN 2654379) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet| +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) N3105 0 => 1 (< MAX 8) +TBF(DL-TFI_0){FINISHED}: Received Event DL_ACKNACK_MISS Detected FN jump! 2654379 -> 2654409 PDCH(bts=0,trx=0,ts=7) FN=2654409 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ PDCH(bts=0,trx=0,ts=7) FN=2654409 ------------------------- RX : Uplink Control Block ------------------------- -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) FN=2654409 Rx Packet Control Ack (reason=DL_ACK) -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED -DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK -DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE -TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free -PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002. -MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) -********** DL-TBF ends here ********** -TBF(DL-TFI_0){WAIT_RELEASE}: Deallocated -UL_ASS_TBF(DL-TFI_0){NONE}: Deallocated -DL_ASS_TBF(DL-TFI_0){NONE}: Deallocated -TBF(DL-TFI_1){ASSIGN}: Received Event ASSIGN_ACK_PACCH -TBF(DL-TFI_1){ASSIGN}: state_chg to FLOW +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) RX: [PCU <- BTS] Packet Downlink Ack/Nack +PDCH(bts=0,trx=0,ts=7) Got GPRS DL ACK bitmap: SSN: 0, BSN 0 to 28 - 1 (28 blocks), "RRRRRRRRRRRRRRRRRRRRRRRRRRRR" +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) downlink acknowledge +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) stopping timer T3191 [ACK/NACK received] +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) ack: (BSN=0)"RRRRRRRRRRRRRRRRRRRRRRRRRRRR"(BSN=27) R=ACK I=NACK +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) DL analysis, range=0:28, lost=0, recv=28, skipped=0, bsn=0, info='RRRRRRRRRRRRRRRRRRRRRRRRRRRR....................................' +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) V(B): (V(A)=28)""(V(S)-1=27) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Final ACK received. +TBF(DL-TFI_0){FINISHED}: Received Event FINAL_ACK_RECVD +TBF(DL-TFI_0){FINISHED}: state_chg to WAIT_RELEASE +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) starting timer T3193 with 0 sec. 100000 microsec +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) ********** DL-TBF starts here ********** +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Allocating DL TBF +TBF{NULL}: Allocated +UL_ASS_TBF{NONE}: Allocated +DL_ASS_TBF{NONE}: Allocated +[DL] algo A (suggested TRX: 0): Alloc start +- Skipping TS 0, because not enabled +- Skipping TS 1, because not enabled +- Skipping TS 2, because not enabled +- Skipping TS 3, because not enabled +- Skipping TS 4, because not enabled +- Skipping TS 5, because not enabled +- Skipping TS 6, because not enabled +[DL] Assign downlink TS=7 TFI=1 +PDCH(bts=0,trx=0,ts=7) Attaching TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL), 2 TBFs, USFs = 01, TFIs = 00000003. +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Setting Control TS 7 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 80, dl_slots = 80 +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Attaching DL TBF: TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Trigger downlink assignment on PACCH +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) Send downlink assignment on PACCH, because TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) exists +DL_ASS_TBF(DL-TFI_0){NONE}: Received Event SCHED_ASS +DL_ASS_TBF(DL-TFI_0){NONE}: state_chg to SEND_ASS +TBF(DL-TFI_1){NULL}: Received Event ASSIGN_ADD_PACCH +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=NULL) set ass. type PACCH [prev CCCH:0, PACCH:0] +TBF(DL-TFI_1){NULL}: state_chg to ASSIGN +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) Starting timer X2001 [assignment (PACCH)] with 2 sec. 0 microsec PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654383 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654383): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 23 => 24 (< MAX 10) @@ -3362,6 +3344,29 @@ PDCH(bts=0,trx=0,ts=7) Expiring FN=2654409 but previous FN=2654400 is still reserved! PDCH(bts=0,trx=0,ts=7) Timeout for registered USF (FN=2654400): TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=RELEASING) N3101 27 => 28 (< MAX 10) +DL_ASS_TBF(DL-TFI_0){SEND_ASS}: Received Event CREATE_RLCMAC_MSG +PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654400 + 13 = 2654413 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=ASSIGN) start Packet Downlink Assignment (PACCH) ++++++++++++++++++++++++++ TX : Packet Downlink Assignment +++++++++++++++++++++++++ +------------------------- TX : Packet Downlink Assignment ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) Scheduled DL Assignment polling on PACCH (FN=2654413, TS=7) +DL_ASS_TBF(DL-TFI_0){SEND_ASS}: state_chg to WAIT_ACK +PDCH(bts=0,trx=0,ts=7) FN=2654400 Scheduling control message at RTS for TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) +PDCH(bts=0,trx=0,ts=7) FN=2654413 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++ +PDCH(bts=0,trx=0,ts=7) FN=2654413 ------------------------- RX : Uplink Control Block ------------------------- +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) FN=2654413 Rx Packet Control Ack (reason=DL_ASS) +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) [UPLINK] DOWNLINK ASSIGNED +DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: Received Event RX_ASS_CTRL_ACK +DL_ASS_TBF(DL-TFI_0){WAIT_ACK}: state_chg to NONE +TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) free +PDCH(bts=0,trx=0,ts=7) Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE), 1 TBFs, USFs = 01, TFIs = 00000002. +MS(TLLI=0xf1223344, IMSI=0011223344, TA=7, 1/0, UL DL) Detaching TBF: TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=WAIT_RELEASE) +********** DL-TBF ends here ********** +TBF(DL-TFI_0){WAIT_RELEASE}: Deallocated +UL_ASS_TBF(DL-TFI_0){NONE}: Deallocated +DL_ASS_TBF(DL-TFI_0){NONE}: Deallocated +TBF(DL-TFI_1){ASSIGN}: Received Event ASSIGN_ACK_PACCH +TBF(DL-TFI_1){ASSIGN}: state_chg to FLOW PDCH(bts=0,trx=0,ts=0) Received RTS on disabled TS PDCH(bts=0,trx=0,ts=1) Received RTS on disabled TS PDCH(bts=0,trx=0,ts=2) Received RTS on disabled TS @@ -3551,7 +3556,7 @@ TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduling Ack/Nack polling, because it was requested explicitly (e.g. first final block sent). PDCH(bts=0,trx=0,ts=7) POLL scheduled at FN 2654448 + 13 = 2654461 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled DL Acknowledgement polling on PACCH (FN=2654461, TS=7) -TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654409 +TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) starting timer T3191 [final block (DL-TBF)] with 5 sec. 0 microsec, cur_fn=2654413 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Scheduled Ack/Nack polling on FN=2654461, TS=7 TBF(TFI=1 TLLI=0xf1223344 DIR=DL STATE=FINISHED) msg block (BSN 10, CS-1): 0f 03 14 4d 43 20 50 41 43 4b 45 54 20 30 39 20 28 54 42 46 20 32 29 === end test_tbf_dl_reuse === -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I3a4b089fe66a99e73e07bd1c690cd4d67752fad9 Gerrit-Change-Number: 25628 Gerrit-PatchSet: 1 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 Tue Sep 28 19:57:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:57:05 +0000 Subject: Change in osmo-pcu[master]: pdch: refactor rcv_control_ack() with a switch statement In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25629 ) Change subject: pdch: refactor rcv_control_ack() with a switch statement ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 Gerrit-Change-Number: 25629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 28 Sep 2021 19: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 Tue Sep 28 19:57:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:57:08 +0000 Subject: Change in osmo-pcu[master]: pdch: refactor rcv_control_ack() with a switch statement In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25629 ) Change subject: pdch: refactor rcv_control_ack() with a switch statement ...................................................................... pdch: refactor rcv_control_ack() with a switch statement This clarifies the different paths and uniforms them. Makes code far easier to read and debug. New improved verification already found some misehavior in some tests. Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 --- M src/pdch.cpp 1 file changed, 56 insertions(+), 29 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/pdch.cpp b/src/pdch.cpp index 76acbca..de77075 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -344,37 +344,28 @@ fn, get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); pdch_ulc_release_fn(ulc, fn); - /* check if this control ack belongs to packet uplink ack */ - ul_tbf = as_ul_tbf(tbf); - if (ul_tbf && reason == PDCH_ULC_POLL_UL_ACK && tbf_ul_ack_exp_ctrl_ack(ul_tbf, fn, ts_no)) { + switch (reason) { + case PDCH_ULC_POLL_UL_ACK: + ul_tbf = as_ul_tbf(tbf); + OSMO_ASSERT(ul_tbf); + if (!tbf_ul_ack_exp_ctrl_ack(ul_tbf, fn, ts_no)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ACK not expected!\n", + fn, ts_no, bts_current_frame_number(tbf->bts)); + return; + } osmo_fsm_inst_dispatch(ul_tbf->ul_ack_fsm.fi, TBF_UL_ACK_EV_RX_CTRL_ACK, NULL); /* We can free since we only set polling on final UL ACK/NACK */ LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] END\n"); tbf_free(tbf); return; - } - if (tbf->dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { - LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] DOWNLINK ASSIGNED\n"); - /* reset N3105 */ - tbf->n_reset(N3105); - osmo_fsm_inst_dispatch(tbf->dl_ass_fsm.fi, TBF_DL_ASS_EV_RX_ASS_CTRL_ACK, NULL); - new_tbf = ms_dl_tbf(ms); - if (!new_tbf) { - LOGPDCH(this, DRLCMAC, LOGL_ERROR, "Got ACK, but DL " - "TBF is gone TLLI=0x%08x\n", tlli); + case PDCH_ULC_POLL_UL_ASS: + if (!tbf->ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_UL_ASS not expected! state is %s\n", + fn, ts_no, bts_current_frame_number(tbf->bts), + osmo_fsm_inst_state_name(tbf_ul_ass_fi(tbf))); return; } - if (tbf->state_is(TBF_ST_WAIT_RELEASE) && - tbf->direction == new_tbf->direction) - tbf_free(tbf); - - osmo_fsm_inst_dispatch(new_tbf->state_fsm.fi, TBF_EV_ASSIGN_ACK_PACCH, NULL); - - tbf_assign_control_ts(new_tbf); - return; - } - if (tbf->ul_ass_state_is(TBF_UL_ASS_WAIT_ACK)) { LOGPTBF(tbf, LOGL_DEBUG, "[DOWNLINK] UPLINK ASSIGNED\n"); /* reset N3105 */ tbf->n_reset(N3105); @@ -398,10 +389,41 @@ * established */ if (ms_need_dl_tbf(new_tbf->ms())) new_tbf->establish_dl_tbf_on_pacch(); - return; - } - if (ms->nacc && nacc_fsm_exp_ctrl_ack(ms->nacc, fn, ts_no)) { + + case PDCH_ULC_POLL_DL_ASS: + if (!tbf->dl_ass_state_is(TBF_DL_ASS_WAIT_ACK)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_DL_ASS not expected! state is %s\n", + fn, ts_no, bts_current_frame_number(tbf->bts), + osmo_fsm_inst_state_name(tbf_dl_ass_fi(tbf))); + return; + } + LOGPTBF(tbf, LOGL_DEBUG, "[UPLINK] DOWNLINK ASSIGNED\n"); + /* reset N3105 */ + tbf->n_reset(N3105); + osmo_fsm_inst_dispatch(tbf->dl_ass_fsm.fi, TBF_DL_ASS_EV_RX_ASS_CTRL_ACK, NULL); + + new_tbf = ms_dl_tbf(ms); + if (!new_tbf) { + LOGPDCH(this, DRLCMAC, LOGL_ERROR, "Got ACK, but DL " + "TBF is gone TLLI=0x%08x\n", tlli); + return; + } + if (tbf->state_is(TBF_ST_WAIT_RELEASE) && + tbf->direction == new_tbf->direction) + tbf_free(tbf); + + osmo_fsm_inst_dispatch(new_tbf->state_fsm.fi, TBF_EV_ASSIGN_ACK_PACCH, NULL); + + tbf_assign_control_ts(new_tbf); + return; + + case PDCH_ULC_POLL_CELL_CHG_CONTINUE: + if (!ms->nacc || !nacc_fsm_exp_ctrl_ack(ms->nacc, fn, ts_no)) { + LOGPTBF(tbf, LOGL_NOTICE, "FN=%d, TS=%d (curr FN %d): POLL_CELL_CHG_CONTINUE not expected!\n", + fn, ts_no, bts_current_frame_number(tbf->bts)); + return; + } osmo_fsm_inst_dispatch(ms->nacc->fi, NACC_EV_RX_CELL_CHG_CONTINUE_ACK, NULL); /* Don't assume MS is no longer reachable (hence don't free) after this: TS 44.060 * "When the mobile station receives the PACKET CELL CHANGE ORDER @@ -412,10 +434,15 @@ * switch to a new cell." */ return; + + case PDCH_ULC_POLL_DL_ACK: + /* Handled in rcv_control_dl_ack_nack() upon receival of DL ACK/NACK as a response to our POLL. */ + return; + default: + LOGPDCH(this, DRLCMAC, LOGL_ERROR, "FN=%" PRIu32 " " + "Error: received PACKET CONTROL ACK at no request (reason=%s)\n", fn, + get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); } - LOGPDCH(this, DRLCMAC, LOGL_ERROR, "FN=%" PRIu32 " " - "Error: received PACKET CONTROL ACK at no request (reason=%s)\n", fn, - get_value_string(pdch_ulc_tbf_poll_reason_names, reason)); } void gprs_rlcmac_pdch::rcv_control_dl_ack_nack(Packet_Downlink_Ack_Nack_t *ack_nack, uint32_t fn, struct pcu_l1_meas *meas) -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I7e4a88d6e004bbb7974595320ed73742162c7ad7 Gerrit-Change-Number: 25629 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: daniel Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 19:57:08 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:57:08 +0000 Subject: Change in osmo-pcu[master]: cosmetic: Fix missing space In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25630 ) Change subject: cosmetic: Fix missing space ...................................................................... cosmetic: Fix missing space Change-Id: Ib64cbf1d95dd0a881f6ace0cf9a4f517eb58ae0f --- M src/bts.cpp M src/pdch.cpp 2 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified dexter: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index c463606..cad6c90 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -1173,7 +1173,7 @@ goto no_tbf; poll = pdch_ulc_get_node(pdch->ulc, fn); - if (!poll || poll->type !=PDCH_ULC_NODE_TBF_POLL || + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL || poll->tbf_poll.poll_tbf->direction != GPRS_RLCMAC_UL_TBF) goto no_tbf; diff --git a/src/pdch.cpp b/src/pdch.cpp index de77075..29e3b20 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -314,7 +314,7 @@ struct pdch_ulc_node *poll; poll = pdch_ulc_get_node(ulc, fn); - if (!poll || poll->type !=PDCH_ULC_NODE_TBF_POLL || !poll->tbf_poll.poll_tbf) { + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL || !poll->tbf_poll.poll_tbf) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with " "unknown FN=%u TLLI=0x%08x (TRX %d TS %d)\n", fn, tlli, trx_no(), ts_no); @@ -527,7 +527,7 @@ tfi = ack_nack->DOWNLINK_TFI; poll = pdch_ulc_get_node(ulc, fn); - if (!poll || poll->type !=PDCH_ULC_NODE_TBF_POLL) { + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "EGPRS PACKET DOWNLINK ACK with " "unknown FN=%u TFI=%d (TRX %d TS %d)\n", fn, tfi, trx_no(), ts_no); -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib64cbf1d95dd0a881f6ace0cf9a4f517eb58ae0f Gerrit-Change-Number: 25630 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Sep 28 19:57:09 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:57:09 +0000 Subject: Change in osmo-pcu[master]: assert if tbf pointer for POLL event is NULL In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25631 ) Change subject: assert if tbf pointer for POLL event is NULL ...................................................................... assert if tbf pointer for POLL event is NULL The tbf pointer should always point to a valid TBF. Change-Id: Ib607a38459802f780826f46c20a1696ec98408fb --- M src/pdch.cpp 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/pdch.cpp b/src/pdch.cpp index 29e3b20..25e7ff5 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -314,7 +314,7 @@ struct pdch_ulc_node *poll; poll = pdch_ulc_get_node(ulc, fn); - if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL || !poll->tbf_poll.poll_tbf) { + if (!poll || poll->type != PDCH_ULC_NODE_TBF_POLL) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "PACKET CONTROL ACK with " "unknown FN=%u TLLI=0x%08x (TRX %d TS %d)\n", fn, tlli, trx_no(), ts_no); @@ -330,6 +330,7 @@ ms_dl_tbf(ms) ? ms_dl_tbf(ms)->state_name() : "None"); return; } + OSMO_ASSERT(poll->tbf_poll.poll_tbf); tbf = poll->tbf_poll.poll_tbf; reason = poll->tbf_poll.reason; @@ -465,6 +466,7 @@ fn, tfi, trx_no(), ts_no); return; } + OSMO_ASSERT(poll->tbf_poll.poll_tbf); tbf = as_dl_tbf(poll->tbf_poll.poll_tbf); if (tbf->tfi() != tfi) { LOGPTBFDL(tbf, LOGL_NOTICE, @@ -533,6 +535,7 @@ fn, tfi, trx_no(), ts_no); return; } + OSMO_ASSERT(poll->tbf_poll.poll_tbf); tbf = as_dl_tbf(poll->tbf_poll.poll_tbf); if (tbf->tfi() != tfi) { LOGPDCH(this, DRLCMAC, LOGL_NOTICE, "EGPRS PACKET DOWNLINK ACK with " -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ib607a38459802f780826f46c20a1696ec98408fb Gerrit-Change-Number: 25631 Gerrit-PatchSet: 1 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 Tue Sep 28 19:57:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:57:10 +0000 Subject: Change in osmo-pcu[master]: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25632 ) Change subject: tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING ...................................................................... tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING Fixes following error log line: "{RELEASING}: Event DL_ACKNACK_MISS not permitted" Rationale: We may move to RELEASING state at some point, for instance due to MAX_N3101/MAX_N3105 while still having some active poll registered in some PDCH ulc. Upon that poll (most probably) timing out, it will send a DL_ACKNACK_MISS event to us. Since we are already determined to release the TBF (waiting for T3195 or T3169 to trigger), simply ignore the event and avoid logging an error. Fixes: OS#5240 Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb --- M src/tbf_fsm.c 1 file changed, 14 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c index be3c3ef..4202a0c 100644 --- a/src/tbf_fsm.c +++ b/src/tbf_fsm.c @@ -323,6 +323,18 @@ osmo_timer_schedule(&fi->timer, val, 0); } +static void st_releasing(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case TBF_EV_DL_ACKNACK_MISS: + /* Ignore, we don't care about missed DL ACK/NACK poll timeouts + * anymore, we are already releasing the TBF */ + break; + default: + OSMO_ASSERT(0); + } +} + static void handle_timeout_X2002(struct tbf_fsm_ctx *ctx) { struct gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(ctx->tbf); @@ -441,10 +453,11 @@ }, [TBF_ST_RELEASING] = { .in_event_mask = - 0, + X(TBF_EV_DL_ACKNACK_MISS), .out_state_mask = 0, .name = "RELEASING", + .action = st_releasing, .onenter = st_releasing_on_enter, }, }; -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb Gerrit-Change-Number: 25632 Gerrit-PatchSet: 1 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 Tue Sep 28 19:58:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Tue, 28 Sep 2021 19:58:29 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix dsp-trace-flags In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix dsp-trace-flags ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Tue, 28 Sep 2021 19:58: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 Sep 29 07:54:45 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 07:54:45 +0000 Subject: Change in osmo-bts[master]: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25285 ) Change subject: rsl: parse temporary overpower value RSL CHAN ACT / MODIFY ...................................................................... rsl: parse temporary overpower value RSL CHAN ACT / MODIFY The temporary overpower value that is to be used with FACCH and SACCH is transferred using a proprietary RSL IE (RSL_IE_OSMO_TOP_ACCH_CAP). The parsed value is then stored in lchan->bs_acch_overpower_db so that it can be used. Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Related: SYS#5319 --- M src/common/rsl.c 1 file changed, 26 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/common/rsl.c b/src/common/rsl.c index e13160e..d50983d 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -1596,6 +1596,26 @@ sizeof(lchan->repeated_acch_capability)); } +/* Parse RSL_IE_OSMO_TOP_ACCH_CAP */ +static int parse_temporary_overpower_acch_capability(struct gsm_lchan *lchan, + const struct tlv_parsed *tp) +{ + struct abis_rsl_osmo_temp_ovp_acch_cap *top; + + lchan->bs_acch_overpower_db = 0; + + if (!TLVP_PRES_LEN(tp, RSL_IE_OSMO_TEMP_OVP_ACCH_CAP, sizeof(*top))) + return 0; + + if (!osmo_bts_has_feature(lchan->ts->trx->bts->features, BTS_FEAT_ACCH_TEMP_OVP)) + return -RSL_ERR_OPT_IE_ERROR; + + top = (struct abis_rsl_osmo_temp_ovp_acch_cap *)TLVP_VAL(tp, RSL_IE_OSMO_TEMP_OVP_ACCH_CAP); + lchan->bs_acch_overpower_db = top->overpower_db; + + return 0; +} + /* 8.4.1 CHANnel ACTIVation is received */ static int rsl_rx_chan_activ(struct msgb *msg) { @@ -1896,6 +1916,9 @@ lchan->rel_act_kind = LCHAN_REL_ACT_RSL; parse_repeated_acch_capability(lchan, &tp); + rc = parse_temporary_overpower_acch_capability(lchan, &tp); + if (rc < 0) + return rsl_tx_chan_act_acknack(lchan, -rc); /* actually activate the channel in the BTS */ rc = l1sap_chan_act(lchan->ts->trx, dch->chan_nr, &tp); @@ -2220,6 +2243,9 @@ /* 9.3.54 Supported Codec Types */ parse_repeated_acch_capability(lchan, &tp); + rc = parse_temporary_overpower_acch_capability(lchan, &tp); + if (rc < 0) + return rsl_tx_mode_modif_nack(lchan, -rc); l1sap_chan_modify(lchan->ts->trx, dch->chan_nr); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I426c2510865c4a986c68f2027cc676aaac0d8a4c Gerrit-Change-Number: 25285 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 07:56:31 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 07:56:31 +0000 Subject: Change in osmo-bsc[master]: bts_vty: Print C/I power params for osmo-bts only In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25621 ) Change subject: bts_vty: Print C/I power params for osmo-bts only ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 Gerrit-Change-Number: 25621 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 07:56:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:35:44 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:35:44 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, lynxis lazus, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 to look at the new patch set (#2). Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK Handle SGSN BVCs that are gone from the BSS differently. The previous patch removed the gbproxy_bvc on the SGSN-side after it was gone on the BSS-side. This caused a STATUS response to BVC_BLOCK_ACK messages that should be valid. Instead of removing the BVC this patch marks it as inactive so we can still handle BVC_BLOCK_ACK correctly, but ignore other messages - especially BVC_RESET from the SGSN. Related: SYS#5628. OS#5236 Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 --- M include/osmocom/gbproxy/gb_proxy.h M src/gb_proxy.c M src/gb_proxy_peer.c 3 files changed, 26 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/77/25577/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:36:59 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:36:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 29 Sep 2021 09:36:59 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:40:50 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 09:40:50 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { > Yeah, but does "struct osmo_stat_item" itself need to be public? probably not. i used to be a big fan of opaque structs, but every time i used them it became a big cumbersome api bloat. we are changing pre-existing API. i guess the dam has broken and we might as well change *everything* now. Derefernces of osmo_stat_item: osmo_stat_item_handler() in stats.c uses item->desc. Callers outside of libosmocore may also access item->desc; it appears though that no osmocom code outside of libosmocore is doing so. so kind of yes it could be made opaque, while we're already breaking API. what's the benefit? no future api breakage if the implementation changes again. what's the drawback? need to introduce api functions for reading stat numbers, if anyone needs them; from the current API breakage we know that every osmocom code that does access the current stat number is already using osmo_stat_item_get_last(). I guess pespin has a point there. i have a strong feeling that i'd love to get out of the bikeshed phase some time soon. we are still getting those DLSTATS error messages all the while, until this patch is merged. so i am tempted to just merge it now... but considering opaqueness. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 09:40:50 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:48:10 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:48:10 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 2: (3 comments) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1//COMMIT_MSG at 12 PS1, Line 12: > The spec only mentions ACKs for existing BVCs, it says nothing about ACKs for BVCs that we know noth [?] The BVC now still exists and we handle the UNBLOCK_ACK correctly. https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c at 1378 PS1, Line 1378: break; > Agreed, I'll think about this more. [?] Done https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577/1/src/gb_proxy.c at 1497 PS1, Line 1497: rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_RAI)); > see here Will be addressed in a different patch -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 09:48:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Comment-In-Reply-To: laforge Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:50:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:50:13 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Fix stats when no BVC could be found References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 ) Change subject: gbproxy: Fix stats when no BVC could be found ...................................................................... gbproxy: Fix stats when no BVC could be found Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/35/25635/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index e24f468..6efd326 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1500,7 +1500,7 @@ err_no_bvc: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); - rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_RAI)); + rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_BVCI)); return tx_status(nse, ns_bvci, BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 Gerrit-Change-Number: 25635 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:50:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:50:13 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 ) Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... gbproxy: Use designated initializers for global_ctr_description Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d --- M src/gb_proxy.c 1 file changed, 11 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/36/25636/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 6efd326..90d587f 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -59,18 +59,17 @@ extern void *tall_sgsn_ctx; static const struct rate_ctr_desc global_ctr_description[] = { - { "inv-bvci", "Invalid BVC Identifier " }, - { "inv-lai", "Invalid Location Area Identifier" }, - { "inv-rai", "Invalid Routing Area Identifier " }, - { "inv-nsei", "No BVC established for NSEI " }, - { "proto-err:bss", "BSSGP protocol error (BSS )" }, - { "proto-err:sgsn", "BSSGP protocol error (SGSN)" }, - { "not-supp:bss", "Feature not supported (BSS )" }, - { "not-supp:sgsn", "Feature not supported (SGSN)" }, - { "restart:sgsn", "Restarted RESET procedure (SGSN)" }, - { "tx-err:sgsn", "NS Transmission error (SGSN)" }, - { "error", "Other error " }, - { "mod-peer-err", "Patch error: no peer " }, + [GBPROX_GLOB_CTR_INV_BVCI] = { "inv-bvci", "Invalid BVC Identifier " }, + [GBPROX_GLOB_CTR_INV_LAI] = { "inv-lai", "Invalid Location Area Identifier" }, + [GBPROX_GLOB_CTR_INV_RAI] = { "inv-rai", "Invalid Routing Area Identifier " }, + [GBPROX_GLOB_CTR_INV_NSEI] = { "inv-nsei", "No BVC established for NSEI " }, + [GBPROX_GLOB_CTR_PROTO_ERR_BSS] = { "proto-err:bss", "BSSGP protocol error (BSS )" }, + [GBPROX_GLOB_CTR_PROTO_ERR_SGSN] = { "proto-err:sgsn", "BSSGP protocol error (SGSN)" }, + [GBPROX_GLOB_CTR_NOT_SUPPORTED_BSS] = { "not-supp:bss", "Feature not supported (BSS )" }, + [GBPROX_GLOB_CTR_NOT_SUPPORTED_SGSN] = { "not-supp:sgsn", "Feature not supported (SGSN)" }, + [GBPROX_GLOB_CTR_RESTART_RESET_SGSN] = { "restart:sgsn", "Restarted RESET procedure (SGSN)" }, + [GBPROX_GLOB_CTR_TX_ERR_SGSN] = { "tx-err:sgsn", "NS Transmission error (SGSN)" }, + [GBPROX_GLOB_CTR_OTHER_ERR] = { "error", "Other error " }, }; static const struct rate_ctr_group_desc global_ctrg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:50:13 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:50:13 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Remove unused variable and improve log message References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25637 ) Change subject: gbproxy: Remove unused variable and improve log message ...................................................................... gbproxy: Remove unused variable and improve log message Change-Id: I8b8a761a828b29dacacd6803427a27e16f041f18 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/37/25637/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 90d587f..31766c0 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1324,7 +1324,6 @@ uint16_t bvci; char log_pfx[32]; int rc = 0; - int cause; int i; bool paging_bc = false; @@ -1498,7 +1497,7 @@ return rc; err_no_bvc: - LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC %05u\n", pdut_name, bvci); rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_BVCI)); return tx_status(nse, ns_bvci, BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I8b8a761a828b29dacacd6803427a27e16f041f18 Gerrit-Change-Number: 25637 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 09:59:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 09:59:20 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Remove unused variable and improve log message In-Reply-To: References: Message-ID: daniel has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25637 ) Change subject: gbproxy: Remove unused variable and improve log message ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I8b8a761a828b29dacacd6803427a27e16f041f18 Gerrit-Change-Number: 25637 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: abandon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 10:39:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:39:49 +0000 Subject: Change in osmo-bsc[master]: bts_vty: Print C/I power params for osmo-bts only In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25621 ) Change subject: bts_vty: Print C/I power params for osmo-bts only ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 Gerrit-Change-Number: 25621 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 10:39: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 Sep 29 10:40:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:40:26 +0000 Subject: Change in osmo-bsc[master]: bts_vty: Print C/I power params for osmo-bts only In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25621 ) Change subject: bts_vty: Print C/I power params for osmo-bts only ...................................................................... bts_vty: Print C/I power params for osmo-bts only Those are osmo-bts specific extensions, so there's no point in printing related VTY config. Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 --- M src/osmo-bsc/bts_vty.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve fixeria: Looks good to me, but someone else must approve pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 7a502d7..0e0285a 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3932,6 +3932,7 @@ } static void config_write_power_ctrl(struct vty *vty, unsigned int indent, + const struct gsm_bts *bts, const struct gsm_power_ctrl_params *cp) { const char *node_name; @@ -3965,7 +3966,7 @@ /* Measurement processing / averaging parameters */ config_write_power_ctrl_meas(vty, indent + 1, &cp->rxlev_meas, "rxlev", ""); config_write_power_ctrl_meas(vty, indent + 1, &cp->rxqual_meas, "rxqual", ""); - if (cp->dir == GSM_PWR_CTRL_DIR_UL) { + if (cp->dir == GSM_PWR_CTRL_DIR_UL && is_osmobts(bts)) { config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_fr_meas, "ci", " fr-efr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_hr_meas, "ci", " hr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_amr_fr_meas, "ci", " amr-fr"); @@ -4285,8 +4286,8 @@ } /* BS/MS Power Control parameters */ - config_write_power_ctrl(vty, 2, &bts->bs_power_ctrl); - config_write_power_ctrl(vty, 2, &bts->ms_power_ctrl); + config_write_power_ctrl(vty, 2, bts, &bts->bs_power_ctrl); + config_write_power_ctrl(vty, 2, bts, &bts->ms_power_ctrl); config_write_bts_model(vty, bts); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie85d2aefa1ab7bf943479e18cc79a0f56e54d431 Gerrit-Change-Number: 25621 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 10:46:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:46:18 +0000 Subject: Change in osmo-msc[master]: Make UTRAN encryption algorithms configurable In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/22766 ) Change subject: Make UTRAN encryption algorithms configurable ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/22766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I91f9e50f9c1439aa19528f887b83ae9de628fcfd Gerrit-Change-Number: 22766 Gerrit-PatchSet: 3 Gerrit-Owner: laforge Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: fixeria Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 10:46: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 Sep 29 10:49:14 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 10:49:14 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Improve log message when no bvc is found (include bvci) References: Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 ) Change subject: gbproxy: Improve log message when no bvc is found (include bvci) ...................................................................... gbproxy: Improve log message when no bvc is found (include bvci) Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/38/25638/1 diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 90d587f..2029ca9 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1498,7 +1498,7 @@ return rc; err_no_bvc: - LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC %05u\n", pdut_name, bvci); rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_BVCI)); return tx_status(nse, ns_bvci, BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 Gerrit-Change-Number: 25638 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 10:53:25 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:53:25 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h File include/osmocom/core/stat_item.h: https://gerrit.osmocom.org/c/libosmocore/+/25464/5/include/osmocom/core/stat_item.h at 17 PS5, Line 17: struct osmo_stat_item_period { > i used to be a big fan of opaque structs, but every time i used them it became a big cumbersome api bloat Well it depends on the case. for the connection structs in libosmo-netif, having opaque structs proved to be a good way. We could extend functionalities several times without breaking ABI compatiblity. > Derefernces of osmo_stat_item: osmo_stat_item_handler() in stats.c uses item->desc Code inside libosmocore can still access members directly, that's not a poroblem, that's why I was mentioning moving the structs to an internal header instead of the .c file. > Callers outside of libosmocore [...] appears though that no osmocom code outside of libosmocore is doing so I don't expect code outside of libosmocore to access those, that's why I'm mentioning about making a opaque struct. If somebody anypoint in time needs more access, APIs can be added. I also had to break the ABI lately around these structs, and had to add an API to avoid breaking it in the future. That's why I'm saying t looks like a good moment to make the structs opaque. I'm not blocking the merge of this patch as it is, I just want to raise my concerns in order to avoid similar issues in the future. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 5 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 10:53:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: neels Comment-In-Reply-To: pespin Comment-In-Reply-To: daniel Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 10:54:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:54:48 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 10:54:48 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 10:55:57 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:55:57 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Fix stats when no BVC could be found In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 ) Change subject: gbproxy: Fix stats when no BVC could be found ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 Gerrit-Change-Number: 25635 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 10:55:57 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 10:56:10 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:56:10 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 ) Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 10: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 Sep 29 10:56:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:56:28 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Improve log message when no bvc is found (include bvci) In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 ) Change subject: gbproxy: Improve log message when no bvc is found (include bvci) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 Gerrit-Change-Number: 25638 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 10:56: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 Sep 29 10:59:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 10:59:28 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... Patch Set 2: ping -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 10:59: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 Wed Sep 29 11:07:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 11:07:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 ) Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/1/library/RSL_Emulation.ttcn File library/RSL_Emulation.ttcn: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/1/library/RSL_Emulation.ttcn at 600 PS1, Line 600: blindly not 'blindly' anymore? https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/1/library/RSL_Emulation.ttcn at 814 PS1, Line 814: f_rslem_auto_chan_act_ack > I would want to have something like f_rslem_set_auto_chan_act_ack or the like in the name. [?] Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 29 Sep 2021 11:07:04 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 11:10:26 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 11:10:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 29 Sep 2021 11:10:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 11:31:39 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 11:31:39 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 29 Sep 2021 11:31:39 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 11:31:41 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 11:31:41 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 ) Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 29 Sep 2021 11:31:41 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 12:32:42 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 12:32:42 +0000 Subject: Change in libosmo-abis[master]: ipaccess: Allow reconfiguring the ipa line during line_update() References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25639 ) Change subject: ipaccess: Allow reconfiguring the ipa line during line_update() ...................................................................... ipaccess: Allow reconfiguring the ipa line during line_update() The e1inp_line_update() API is precisely aimed at that: tell that we want to reconfigure some aspects of the e1 line. Hence, it makes no sense to apply a no-op with the flag "line_already_initialized". That flag was added a long time ago in order to avoid problems when several BTS are attached to the same ipa server link. That case doesn't apply to the BTS role, so we can simply recreate the ipa_cli_conn. Fixes: d6216405b7363c94174a6d301b96f5ed4a8730ce Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d --- M src/input/ipaccess.c 1 file changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/39/25639/1 diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c index a584e0d..63461a2 100644 --- a/src/input/ipaccess.c +++ b/src/input/ipaccess.c @@ -1005,6 +1005,7 @@ struct ipaccess_line { bool line_already_initialized; + struct ipa_client_conn *ipa_cli; }; static int ipaccess_line_update(struct e1inp_line *line) @@ -1021,12 +1022,11 @@ } il = line->driver_data; - /* We only initialize this line once. */ - if (il->line_already_initialized) - return 0; - switch(line->ops->cfg.ipa.role) { case E1INP_LINE_R_BSC: { + /* We only initialize this line once. */ + if (il->line_already_initialized) + return 0; struct ipa_server_link *oml_link, *rsl_link; const char *ipa = e1inp_ipa_get_bind_addr(); @@ -1077,6 +1077,13 @@ "OML connecting to %s:%u\n", line->ops->cfg.ipa.addr, IPA_TCP_PORT_OML); + /* Drop previous line */ + if (il->ipa_cli) { + ipa_client_conn_close(il->ipa_cli); + ipa_client_conn_destroy(il->ipa_cli); + il->ipa_cli = NULL; + } + link = ipa_client_conn_create2(tall_ipa_ctx, e1inp_line_ipa_oml_ts(line), E1INP_SIGN_OML, @@ -1104,6 +1111,7 @@ e1i_ts = e1inp_line_ipa_oml_ts(line); ipaccess_bts_keepalive_fsm_alloc(e1i_ts, link, "oml_bts_to_bsc"); + il->ipa_cli = link; ret = 0; break; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Gerrit-Change-Number: 25639 Gerrit-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 Sep 29 12:44:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 12:44:17 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25640 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... abis: Fix line leaked & recreated upon every reconnect Previous code creating a new line was really a workaround to have it working while previous lines were being stacked internally inside libosmo-abis. Let's handle reference counts for the line properly and keep using the same line always (since it can be further configured by libosmo-abis' VTY). Recent patches to libosmo-abis fixed a bug where e1inp_line_update() would only work the first time it was called on a e1np_line, and follow up calls would be no-ops. This fix allows re-configuring and hence reusing the same line to reconnect to BSC. Depends: libosmo-abis Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Change-Id: Id7fd3ef81bbc517821def31f1a60f905a0e2fb52 --- M src/common/abis.c 1 file changed, 5 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/40/25640/1 diff --git a/src/common/abis.c b/src/common/abis.c index 93635c2..11111fa 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,7 +81,6 @@ struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; - int line_ctr; }; static void reset_oml_link(struct gsm_bts *bts) @@ -156,22 +155,16 @@ bts_dev_info.unit_name = bts->description; bts_dev_info.location2 = priv->model_name; - line = e1inp_line_find(priv->line_ctr); - if (line) { - e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ - } else - line = e1inp_line_create(priv->line_ctr, "ipa"); /* already comes with a reference */ - - /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next - * attempt must happen on a different line. */ - priv->line_ctr++; - + line = e1inp_line_find(0); + if (!line) + line = e1inp_line_create(0, "ipa"); if (!line) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); return; } - e1inp_line_bind_ops(line, &line_ops); + /* Line always comes already with a "ctor" reference, enough to keep it alive forever. */ + e1inp_line_bind_ops(line, &line_ops); /* This will open the OML connection now */ if (e1inp_line_update(line) < 0) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7fd3ef81bbc517821def31f1a60f905a0e2fb52 Gerrit-Change-Number: 25640 Gerrit-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 Sep 29 12:46:29 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 12:46:29 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 12:46:29 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 12:46:54 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 12:46:54 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/3/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/3/src/gb_proxy.c at 1471 PS3, Line 1471: uint8_t cause = *TLVP_VAL(&tp[0], BSSGP_IE_CAUSE); This looks non-related to this patch? -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 12:46: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 Sep 29 12:47:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 12:47:31 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 ) Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 12:47:31 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:03:08 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:03:08 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 to look at the new patch set (#4). Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI Fixes TC_status_sig_ul_tlli Related: OS#4892 Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 --- M src/gb_proxy.c 1 file changed, 48 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/77/25077/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 4 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 Wed Sep 29 13:03:29 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:03:29 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/3/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/3/src/gb_proxy.c at 1471 PS3, Line 1471: uint8_t cause = *TLVP_VAL(&tp[0], BSSGP_IE_CAUSE); > This looks non-related to this patch? Ack -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:03:29 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:27:27 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 29 Sep 2021 13:27:27 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... Patch Set 6: (4 comments) https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 66 PS2, Line 66: print("No card detected!") > A more Python'ish way would be to raise exceptions from this function, so you always get nice backtr [?] I wonder if changing this makes the use of this function easier. I think it would not, because then the caller would have to take care about catching the exceptions. Also the errors that are caught here are not uncommon during normal operation. I would prefer to keep the try/catch block here. https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 71 PS2, Line 71: print("Could not detect card type!") > Same here, rather throw an exception. (see above) https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 535 PS2, Line 535: == > is Done https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 535 PS2, Line 535: == > is Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 13:27: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 Wed Sep 29 13:32:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 13:32:08 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bsc/+/25611/2/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/c/osmo-bsc/+/25611/2/include/osmocom/bsc/gsm_data.h at 1292 PS2, Line 1292: this measurement paremeters these measurement parameters -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 13:32:08 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:37:37 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 13:37:37 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:37: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 Sep 29 13:39:21 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 13:39:21 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 to look at the new patch set (#3). Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... MS Power Control Loop: Allow Turn off/on C/I independent from value setting Improve the current VTY support to allow enabling/disabling C/I logic independent from value setting. This way C/I support can be quickly disabled & enabled. Reminder: changing power parameters still require VTY Command "bts NR resend-power-control-defaults" to be excuted prior to new parameters being applied on the BTS. Related: SYS#4917 Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 --- M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 6 files changed, 122 insertions(+), 62 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/11/25611/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:41:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 13:41:26 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... Patch Set 3: Code-Review+2 Re-adding +2 after fixing typo. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13: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 Wed Sep 29 13:44:38 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 13:44:38 +0000 Subject: Change in osmo-bsc[master]: MS Power Control Loop: Allow Turn off/on C/I independent from value s... In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25611 ) Change subject: MS Power Control Loop: Allow Turn off/on C/I independent from value setting ...................................................................... MS Power Control Loop: Allow Turn off/on C/I independent from value setting Improve the current VTY support to allow enabling/disabling C/I logic independent from value setting. This way C/I support can be quickly disabled & enabled. Reminder: changing power parameters still require VTY Command "bts NR resend-power-control-defaults" to be excuted prior to new parameters being applied on the BTS. Related: SYS#4917 Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 --- M doc/manuals/chapters/power_control.adoc M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bts_osmobts.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/gsm_data.c M tests/power_ctrl.vty 6 files changed, 122 insertions(+), 62 deletions(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/power_control.adoc b/doc/manuals/chapters/power_control.adoc index bc112aa..51a38cb 100644 --- a/doc/manuals/chapters/power_control.adoc +++ b/doc/manuals/chapters/power_control.adoc @@ -33,6 +33,7 @@ other hand, OsmoBTS may support some extra parameters coming in Osmocom specific IEs not supported by nanoBTS, such as those configuring C/I measurement thresholds. +[[apply_pwr_ctrl]] ==== When the parameters come into effect? It depends on how the power control parameters are signaled to the BTS. If a given @@ -337,21 +338,24 @@ bts 0 ms-power-control mode dyn-bts <1> - ci-thresh amr-fr lower 7 upper 11 <2> - ci-thresh-comp amr-fr lower 2 10 <3> upper 3 4 <4> + ci-thresh amr-fr enable <2> + ci-thresh amr-fr lower 7 upper 11 <3> + ci-thresh-comp amr-fr lower 2 10 <4> upper 3 4 <5> ---- <1> MS power control is to be performed by the BTS autonomously. -<2> L_CI_AMR_FR_XX_P=7, U_CI_AMR_FR_XX_P=11. -<3> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power. -<4> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power. +<2> MS power control loop should take C/I into account. +<3> L_CI_AMR_FR_XX_P=7, U_CI_AMR_FR_XX_P=11. +<4> P0=2 out of N1=10 averages < L_CI_AMR_FR_XX_P => increase power. +<5> P1=3 out of N2=4 averages > U_CI_AMR_FR_XX_P => decrease power. NOTE: The BSC can instruct a BTS to disable C/I related logic in its autonomous MS Power Control Loop for a given channel type (hence not taking C/I measurements into account) by means of setting both related LOWER_CMP_N and UPPER_CMP_N parameters to zero (see _ci-thresh-comp_ VTY command). For the sake of easing configuration, a placeholder VTY command to disable C/I for all -channel types is available under VTY node _ms-power-control_ as *_ci-thresh-comp -disable all_*. +channel types is available under VTY node _ms-power-control_ as *_ci-thresh +all disable_*. Afterwards, the new configuration must be deployed to the target +BTS (see <>). ==== Measurement averaging process diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index b166146..03f210f 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1289,6 +1289,9 @@ /* MS/BS Power related measurement parameters */ struct gsm_power_ctrl_meas_params { + /* Are these measurement paremeters to be taken into account by loop? */ + bool enabled; + /* Thresholds (see 3GPP TS 45.008, section A.3.2.1) */ uint8_t lower_thresh; /* lower (decreasing) direction */ uint8_t upper_thresh; /* upper (increasing) direction */ diff --git a/src/osmo-bsc/bts_osmobts.c b/src/osmo-bsc/bts_osmobts.c index 5007d2b..5c535be 100644 --- a/src/osmo-bsc/bts_osmobts.c +++ b/src/osmo-bsc/bts_osmobts.c @@ -112,8 +112,15 @@ ie_len = msgb_tl_put(msg, RSL_IPAC_EIE_OSMO_MS_PWR_CTL); osmo_thresh = (struct osmo_preproc_pc_thresh *) msgb_put(msg, sizeof(*osmo_thresh)); #define ENC_THRESH_CI(TYPE) \ - osmo_thresh->l_##TYPE = cp->TYPE##_meas.lower_thresh; \ - osmo_thresh->u_##TYPE = cp->TYPE##_meas.upper_thresh + do { \ + if (cp->TYPE##_meas.enabled) { \ + osmo_thresh->l_##TYPE = cp->TYPE##_meas.lower_thresh; \ + osmo_thresh->u_##TYPE = cp->TYPE##_meas.upper_thresh; \ + } else { \ + osmo_thresh->l_##TYPE = 0; \ + osmo_thresh->u_##TYPE = 0; \ + } \ + } while (0) ENC_THRESH_CI(ci_fr); ENC_THRESH_CI(ci_hr); ENC_THRESH_CI(ci_amr_fr); @@ -128,10 +135,19 @@ ie_len = msgb_tl_put(msg, RSL_IPAC_EIE_OSMO_PC_THRESH_COMP); osmo_thresh_comp = (struct osmo_preproc_pc_comp *) msgb_put(msg, sizeof(*osmo_thresh_comp)); #define ENC_THRESH_CI(TYPE) \ - osmo_thresh_comp->TYPE.lower_p = cp->TYPE##_meas.lower_cmp_p & 0x1f; \ - osmo_thresh_comp->TYPE.lower_n = cp->TYPE##_meas.lower_cmp_n & 0x1f; \ - osmo_thresh_comp->TYPE.upper_p = cp->TYPE##_meas.upper_cmp_p & 0x1f; \ - osmo_thresh_comp->TYPE.upper_n = cp->TYPE##_meas.upper_cmp_n & 0x1f + do { \ + if (cp->TYPE##_meas.enabled) { \ + osmo_thresh_comp->TYPE.lower_p = cp->TYPE##_meas.lower_cmp_p & 0x1f; \ + osmo_thresh_comp->TYPE.lower_n = cp->TYPE##_meas.lower_cmp_n & 0x1f; \ + osmo_thresh_comp->TYPE.upper_p = cp->TYPE##_meas.upper_cmp_p & 0x1f; \ + osmo_thresh_comp->TYPE.upper_n = cp->TYPE##_meas.upper_cmp_n & 0x1f; \ + } else { \ + osmo_thresh_comp->TYPE.lower_p = 0; \ + osmo_thresh_comp->TYPE.lower_n = 0; \ + osmo_thresh_comp->TYPE.upper_p = 0; \ + osmo_thresh_comp->TYPE.upper_n = 0; \ + } \ + } while (0) ENC_THRESH_CI(ci_fr); ENC_THRESH_CI(ci_hr); ENC_THRESH_CI(ci_amr_fr); diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index 0e0285a..fb11520 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -3093,6 +3093,7 @@ } #define VTY_CMD_CI_TYPE "(fr-efr|hr|amr-fr|amr-hr|sdcch|gprs)" +#define VTY_CMD_CI_OR_ALL_TYPE "(fr-efr|hr|amr-fr|amr-hr|sdcch|gprs|all)" #define VTY_DESC_CI_TYPE \ "Channel Type FR/EFR\n" \ "Channel Type HR\n" \ @@ -3100,6 +3101,8 @@ "Channel Type AMR HR\n" \ "Channel Type SDCCH\n" \ "Channel Type (E)GPRS\n" +#define VTY_DESC_CI_OR_ALL_TYPE VTY_DESC_CI_TYPE "All Channel Types\n" + static struct gsm_power_ctrl_meas_params *ci_thresh_by_conn_type(struct gsm_power_ctrl_params *params, const char *type) { if (!strcmp(type, "fr-efr")) @@ -3155,6 +3158,35 @@ return CMD_SUCCESS; } +DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_disable, + cfg_power_ctrl_ci_thresh_disable_cmd, + X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | + X(BSC_VTY_ATTR_NEW_LCHAN), + "ci-thresh " VTY_CMD_CI_OR_ALL_TYPE " (enable|disable)", + "Set target C/I thresholds (for dynamic mode), only available in ms-power-control\n" + VTY_DESC_CI_OR_ALL_TYPE + "Enable C/I comparison in control loop\n" + "Disable C/I comparison in control loop\n") +{ + struct gsm_power_ctrl_params *params = vty->index; + + bool enable = strcmp(argv[1], "enable") == 0; + + if (strcmp(argv[0], "all") == 0) { + params->ci_fr_meas.enabled = enable; + params->ci_hr_meas.enabled = enable; + params->ci_amr_fr_meas.enabled = enable; + params->ci_amr_hr_meas.enabled = enable; + params->ci_sdcch_meas.enabled = enable; + params->ci_gprs_meas.enabled = enable; + } else { + struct gsm_power_ctrl_meas_params *meas_params = ci_thresh_by_conn_type(params, argv[0]); + meas_params->enabled = enable; + } + + return CMD_SUCCESS; +} + #define POWER_CONTROL_MEAS_THRESH_COMP_CMD(meas) \ meas " lower <0-31> <0-31> upper <0-31> <0-31>" #define POWER_CONTROL_MEAS_THRESH_COMP_DESC(meas, opt_param, lp, ln, up, un) \ @@ -3272,35 +3304,6 @@ return CMD_SUCCESS; } -DEFUN_USRATTR(cfg_power_ctrl_ci_thresh_comp_disable, - cfg_power_ctrl_ci_thresh_comp_disable_cmd, - X(BSC_VTY_ATTR_VENDOR_SPECIFIC) | - X(BSC_VTY_ATTR_NEW_LCHAN), - "ci-thresh-comp disable all", - "Set Carrier-to_interference (C/I) threshold comparators (for dynamic mode)\n" - "Disable C/I comparison in control loop (sets LOWER_CMP_N and UPPER_CMP_N to zero)\n" - "Disable C/I comparison for all channel types\n") -{ - struct gsm_power_ctrl_params *params = vty->index; - -#define DISABLE_MEAS_PC(PARAMS, TYPE) \ - (PARAMS)->TYPE##_meas.lower_cmp_p = 0; \ - (PARAMS)->TYPE##_meas.lower_cmp_n = 0; \ - (PARAMS)->TYPE##_meas.upper_cmp_p = 0; \ - (PARAMS)->TYPE##_meas.upper_cmp_n = 0 - - DISABLE_MEAS_PC(params, ci_fr); - DISABLE_MEAS_PC(params, ci_hr); - DISABLE_MEAS_PC(params, ci_amr_fr); - DISABLE_MEAS_PC(params, ci_amr_hr); - DISABLE_MEAS_PC(params, ci_sdcch); - DISABLE_MEAS_PC(params, ci_gprs); - -#undef DISABLE_MEAS_PC - - return CMD_SUCCESS; -} - #define POWER_CONTROL_MEAS_AVG_CMD \ "(rxlev-avg|rxqual-avg)" #define POWER_CONTROL_MEAS_AVG_DESC \ @@ -3898,6 +3901,12 @@ const struct gsm_power_ctrl_meas_params *mp, const char *param, const char *param2) { + if (strcmp(param, "ci") == 0) { + cfg_out("%s-thresh%s %s%s", + param, param2, mp->enabled ? "enable" : "disable", + VTY_NEWLINE); + } + cfg_out("%s-thresh%s lower %u upper %u%s", param, param2, mp->lower_thresh, mp->upper_thresh, VTY_NEWLINE); @@ -4471,11 +4480,11 @@ install_element(POWER_CTRL_NODE, &cfg_power_ctrl_step_size_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_cmd); + install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_disable_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxlev_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_rxqual_thresh_comp_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_cmd); - install_element(POWER_CTRL_NODE, &cfg_power_ctrl_ci_thresh_comp_disable_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_no_avg_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_params_cmd); install_element(POWER_CTRL_NODE, &cfg_power_ctrl_avg_algo_cmd); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index a6c54d8..c8108e8 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -1146,6 +1146,7 @@ /* RxLev measurement parameters */ .rxlev_meas = { + .enabled = true, /* Thresholds for RxLev (see 3GPP TS 45.008, A.3.2.1) */ .lower_thresh = 32, /* L_RXLEV_XX_P (-78 dBm) */ .upper_thresh = 38, /* U_RXLEV_XX_P (-72 dBm) */ @@ -1170,6 +1171,7 @@ /* RxQual measurement parameters */ .rxqual_meas = { + .enabled = true, /* Thresholds for RxQual (see 3GPP TS 45.008, A.3.2.1) */ .lower_thresh = 3, /* L_RXQUAL_XX_P (0.8% <= BER < 1.6%) */ .upper_thresh = 0, /* U_RXQUAL_XX_P (BER < 0.2%) */ @@ -1198,6 +1200,7 @@ * above the target. */ .ci_fr_meas = { /* FR: Target C/I = 15 dB, Soft blocking threshold = 10 dB */ + .enabled = true, .lower_thresh = 13, .upper_thresh = 17, @@ -1219,6 +1222,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_hr_meas = { /* HR: Target C/I = 18 dB, Soft blocking threshold = 13 dB */ + .enabled = true, .lower_thresh = 16, .upper_thresh = 21, @@ -1240,6 +1244,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_amr_fr_meas = { /* AMR-FR: Target C/I = 9 dB, Soft blocking threshold = 4 dB */ + .enabled = true, .lower_thresh = 7, .upper_thresh = 11, @@ -1261,6 +1266,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_amr_hr_meas = { /* AMR-HR: Target C/I = 15 dB, Soft blocking threshold = 10 dB */ + .enabled = true, .lower_thresh = 13, .upper_thresh = 17, @@ -1282,6 +1288,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_sdcch_meas = { /* SDCCH: Target C/I = 14 dB, Soft blocking threshold = 9 dB */ + .enabled = true, .lower_thresh = 12, .upper_thresh = 16, @@ -1303,6 +1310,7 @@ .h_reqt = 6, /* TODO: investigate a reasonable default value */ }, .ci_gprs_meas = { /* GPRS: Target C/I = 20 dB, Soft blocking threshold = 15 dB */ + .enabled = true, .lower_thresh = 18, .upper_thresh = 24, diff --git a/tests/power_ctrl.vty b/tests/power_ctrl.vty index b14a905..491adca 100644 --- a/tests/power_ctrl.vty +++ b/tests/power_ctrl.vty @@ -34,11 +34,11 @@ . lv step-size inc <2-6> red <2-4> . lv rxlev-thresh lower <0-63> upper <0-63> . lv rxqual-thresh lower <0-7> upper <0-7> + . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs|all) (enable|disable) . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-30> upper <0-30> . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> - . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -115,11 +115,11 @@ . lv step-size inc <2-6> red <2-4> . lv rxlev-thresh lower <0-63> upper <0-63> . lv rxqual-thresh lower <0-7> upper <0-7> + . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs|all) (enable|disable) . lv ci-thresh (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-30> upper <0-30> . lv rxlev-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv rxqual-thresh-comp lower <0-31> <0-31> upper <0-31> <0-31> . lv ci-thresh-comp (fr-efr|hr|amr-fr|amr-hr|sdcch|gprs) lower <0-31> <0-31> upper <0-31> <0-31> - . lv ci-thresh-comp disable all . lv no (rxlev-avg|rxqual-avg) . lv (rxlev-avg|rxqual-avg) params hreqave <1-31> hreqt <1-31> . lv (rxlev-avg|rxqual-avg) algo (unweighted|weighted|mod-median) @@ -143,16 +143,22 @@ rxlev-thresh-comp lower 10 12 upper 19 20 rxqual-thresh lower 3 upper 0 rxqual-thresh-comp lower 5 7 upper 15 18 + ci-thresh fr-efr enable ci-thresh fr-efr lower 13 upper 17 ci-thresh-comp fr-efr lower 5 7 upper 15 18 + ci-thresh hr enable ci-thresh hr lower 16 upper 21 ci-thresh-comp hr lower 5 7 upper 15 18 + ci-thresh amr-fr enable ci-thresh amr-fr lower 7 upper 11 ci-thresh-comp amr-fr lower 5 7 upper 15 18 + ci-thresh amr-hr enable ci-thresh amr-hr lower 13 upper 17 ci-thresh-comp amr-hr lower 5 7 upper 15 18 + ci-thresh sdcch enable ci-thresh sdcch lower 12 upper 16 ci-thresh-comp sdcch lower 5 7 upper 15 18 + ci-thresh gprs enable ci-thresh gprs lower 18 upper 24 ci-thresh-comp gprs lower 5 7 upper 15 18 ... @@ -304,33 +310,47 @@ ... ms-power-control ... + ci-thresh fr-efr enable + ci-thresh fr-efr lower 13 upper 17 ci-thresh-comp fr-efr lower 5 7 upper 15 18 -... + ci-thresh hr enable + ci-thresh hr lower 16 upper 21 ci-thresh-comp hr lower 5 7 upper 15 18 -... + ci-thresh amr-fr enable + ci-thresh amr-fr lower 7 upper 11 ci-thresh-comp amr-fr lower 5 7 upper 15 18 -... + ci-thresh amr-hr enable + ci-thresh amr-hr lower 13 upper 17 ci-thresh-comp amr-hr lower 5 7 upper 15 18 -... + ci-thresh sdcch enable + ci-thresh sdcch lower 12 upper 16 ci-thresh-comp sdcch lower 5 7 upper 15 18 -... + ci-thresh gprs enable + ci-thresh gprs lower 18 upper 24 ci-thresh-comp gprs lower 5 7 upper 15 18 ... -OsmoBSC(config-ms-power-ctrl)# ci-thresh-comp disable all +OsmoBSC(config-ms-power-ctrl)# ci-thresh all disable OsmoBSC(config-ms-power-ctrl)# show running-config ... ms-power-control ... - ci-thresh-comp fr-efr lower 0 0 upper 0 0 -... - ci-thresh-comp hr lower 0 0 upper 0 0 -... - ci-thresh-comp amr-fr lower 0 0 upper 0 0 -... - ci-thresh-comp amr-hr lower 0 0 upper 0 0 -... - ci-thresh-comp sdcch lower 0 0 upper 0 0 -... - ci-thresh-comp gprs lower 0 0 upper 0 0 + ci-thresh fr-efr disable + ci-thresh fr-efr lower 13 upper 17 + ci-thresh-comp fr-efr lower 5 7 upper 15 18 + ci-thresh hr disable + ci-thresh hr lower 16 upper 21 + ci-thresh-comp hr lower 5 7 upper 15 18 + ci-thresh amr-fr disable + ci-thresh amr-fr lower 7 upper 11 + ci-thresh-comp amr-fr lower 5 7 upper 15 18 + ci-thresh amr-hr disable + ci-thresh amr-hr lower 13 upper 17 + ci-thresh-comp amr-hr lower 5 7 upper 15 18 + ci-thresh sdcch disable + ci-thresh sdcch lower 12 upper 16 + ci-thresh-comp sdcch lower 5 7 upper 15 18 + ci-thresh gprs disable + ci-thresh gprs lower 18 upper 24 + ci-thresh-comp gprs lower 5 7 upper 15 18 ... -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Id1224c2d9a52db2ed805c49e048d3086ed0167f5 Gerrit-Change-Number: 25611 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:45:07 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 13:45:07 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:45:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:45:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 13:45:25 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Fix stats when no BVC could be found In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 ) Change subject: gbproxy: Fix stats when no BVC could be found ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 Gerrit-Change-Number: 25635 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:45: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 Sep 29 13:46:37 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 13:46:37 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 ) Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636/1/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636/1/src/gb_proxy.c at a73 PS1, Line 73: { "mod-peer-err", "Patch error: no peer " }, This one is removed? -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 13:46:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:47:28 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 13:47:28 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Improve log message when no bvc is found (include bvci) In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 ) Change subject: gbproxy: Improve log message when no bvc is found (include bvci) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 Gerrit-Change-Number: 25638 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:47: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 Sep 29 13:50:32 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 13:50:32 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/libosmocore/+/25464 to look at the new patch set (#6). Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... refactor stat_item: get rid of FIFO and "skipped" error Intead of attempting to store all distinct values of a reporting period, just store min, max, last as well as a sum and N of each reporting period. This gets rid of error messages like DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped while at the same time more accurately reporting the max value for each reporting period. (So far stats_item only reports the max value; keep that part unchanged, as shown in stats_test.c.) With the other so far unused values (min, sum), we are ready to also report the minimum value as well as an average value per reporting period in the future, if/when our stats reporter allows for it. Store the complete record of the previous reporting period. So far we only compare the 'max' value, but like this we are ready to also see changes in min, last and average value between reporting periods. This patch breaks API by removing: - struct members osmo_stats_item.stats_next_id, .last_offs and .values[] - struct osmo_stats_item_value - osmo_stat_item_get_next() - osmo_stat_item_discard() - osmo_stat_item_discard_all() and by making struct osmo_stats_item opaque. In libosmocore, we do have a policy of never breaking API. But since the above should never be accessed by users of the osmo_stats_item API -- or if they are, would no longer yield useful results, we decided to make an exception in this case. The alternative would be to introduce a new osmo_stats_item2 API and maintaining an unused legacy osmo_stats_item forever, but we decided that the effort is not worth it. There are no known users of the removed items. Related: SYS#5542 Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b --- M TODO-RELEASE M include/osmocom/core/stat_item.h M src/Makefile.am M src/stat_item.c A src/stat_item_internal.h M src/stats.c M src/vty/stats_vty.c M src/vty/utils.c M tests/Makefile.am M tests/stats/stats_test.c M tests/stats/stats_test.err 11 files changed, 364 insertions(+), 328 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/64/25464/6 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:50:33 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 13:50:33 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings References: Message-ID: neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... cosmetic: get rid of 3 deprecation warnings Some deprecated functions are still used in libosmocore .c code. Use OSMO_DEPRECATED_OUTSIDE() to get rid of those "resident warnings". Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a --- M include/osmocom/core/counter.h M include/osmocom/gsm/ipa.h M include/osmocom/gsm/lapdm.h 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/25641/1 diff --git a/include/osmocom/core/counter.h b/include/osmocom/core/counter.h index dc62791..0d56bc4 100644 --- a/include/osmocom/core/counter.h +++ b/include/osmocom/core/counter.h @@ -31,7 +31,7 @@ } /*! Get current value of counter */ -OSMO_DEPRECATED("Implement as osmo_stat_item instead") +OSMO_DEPRECATED_OUTSIDE("Implement as osmo_stat_item instead") static inline unsigned long osmo_counter_get(struct osmo_counter *ctr) { return ctr->value; diff --git a/include/osmocom/gsm/ipa.h b/include/osmocom/gsm/ipa.h index 93cb1bf..851b58e 100644 --- a/include/osmocom/gsm/ipa.h +++ b/include/osmocom/gsm/ipa.h @@ -29,7 +29,7 @@ int ipa_ccm_idtag_parse(struct tlv_parsed *dec, unsigned char *buf, int len) OSMO_DEPRECATED("Use ipa_ccm_id_{get,resp}_parse instead"); int ipa_ccm_idtag_parse_off(struct tlv_parsed *dec, unsigned char *buf, int len, const int len_offset) - OSMO_DEPRECATED("Use ipa_ccm_id_{get,resp}_parse instead"); + OSMO_DEPRECATED_OUTSIDE("Use ipa_ccm_id_{get,resp}_parse instead"); /* parse payload of IPA CCM ID GET into a osmocom TLV style representation */ int ipa_ccm_id_get_parse(struct tlv_parsed *dec, const uint8_t *buf, unsigned int len); diff --git a/include/osmocom/gsm/lapdm.h b/include/osmocom/gsm/lapdm.h index 633df1a..0e99743 100644 --- a/include/osmocom/gsm/lapdm.h +++ b/include/osmocom/gsm/lapdm.h @@ -90,7 +90,7 @@ 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_init3() instead"); + OSMO_DEPRECATED_OUTSIDE("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, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 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 Sep 29 13:51:17 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:51:17 +0000 Subject: Change in libosmo-abis[master]: ipaccess: Allow reconfiguring the ipa line during line_update() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25639 ) Change subject: ipaccess: Allow reconfiguring the ipa line during line_update() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Gerrit-Change-Number: 25639 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 13:51:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:51:22 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 13:51:22 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 6: made it opaque now. one new API function needed, one inline function needs to move to .c file. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:51:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:56:05 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 13:56:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 29 Sep 2021 13:56:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:56:22 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:56:22 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 to look at the new patch set (#2). Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... gbproxy: Use designated initializers for global_ctr_description This already showed one unused description where only the enum had been removed. Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d --- M src/gb_proxy.c 1 file changed, 11 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/36/25636/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:56:27 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:56:27 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 ) Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636/1/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636/1/src/gb_proxy.c at a73 PS1, Line 73: { "mod-peer-err", "Patch error: no peer " }, > This one is removed? Ah, yeah, I should have mentioned that in the commit... It's never used and the enum doesn't have that entry anymore so I only noticed it during refactoring. -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 13:56:27 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:58:23 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:58:23 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:58: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 Sep 29 13:58:25 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:58:25 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Fix stats when no BVC could be found In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 ) Change subject: gbproxy: Fix stats when no BVC could be found ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 Gerrit-Change-Number: 25635 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 13:58: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 Sep 29 13:58:43 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:58:43 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 ) Change subject: gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK ...................................................................... gbproxy: Avoid sending STATUS on unexpected BLOCK_ACK Handle SGSN BVCs that are gone from the BSS differently. The previous patch removed the gbproxy_bvc on the SGSN-side after it was gone on the BSS-side. This caused a STATUS response to BVC_BLOCK_ACK messages that should be valid. Instead of removing the BVC this patch marks it as inactive so we can still handle BVC_BLOCK_ACK correctly, but ignore other messages - especially BVC_RESET from the SGSN. Related: SYS#5628. OS#5236 Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 --- M include/osmocom/gbproxy/gb_proxy.h M src/gb_proxy.c M src/gb_proxy_peer.c 3 files changed, 26 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/include/osmocom/gbproxy/gb_proxy.h b/include/osmocom/gbproxy/gb_proxy.h index 1e73a1d..07373ad 100644 --- a/include/osmocom/gbproxy/gb_proxy.h +++ b/include/osmocom/gbproxy/gb_proxy.h @@ -139,6 +139,9 @@ /* PTP BVCI of this BVC */ uint16_t bvci; + /* Whether this BVC is inactive (removed from BSS-side) */ + bool inactive; + /* Routing Area that this BVC is part of */ struct gprs_ra_id raid; @@ -279,6 +282,7 @@ #define NSE_F_BSS 0x0002 struct gbproxy_bvc *gbproxy_bvc_by_bvci(struct gbproxy_nse *nse, uint16_t bvci); +struct gbproxy_bvc *gbproxy_bvc_by_bvci_inactive(struct gbproxy_nse *nse, uint16_t bvci); struct gbproxy_bvc *gbproxy_bvc_alloc(struct gbproxy_nse *nse, uint16_t bvci); void gbproxy_bvc_free(struct gbproxy_bvc *bvc); int gbproxy_cleanup_bvcs(struct gbproxy_nse *nse, uint16_t bvci); diff --git a/src/gb_proxy.c b/src/gb_proxy.c index be075d6..e24f468 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -701,6 +701,8 @@ * Removing and reallocating is needed becaus the ra_id/cell_id might have changed */ hash_for_each(cfg->sgsn_nses, i, sgsn_nse, list) { struct gbproxy_bvc *sgsn_bvc = gbproxy_bvc_by_bvci(sgsn_nse, bvci); + if (!sgsn_bvc) + sgsn_bvc = gbproxy_bvc_by_bvci_inactive(sgsn_nse, bvci); if (sgsn_bvc) gbproxy_bvc_free(sgsn_bvc); @@ -1374,8 +1376,12 @@ case BSSGP_PDUT_BVC_BLOCK_ACK: bvci = ntohs(tlvp_val16_unal(&tp[0], BSSGP_IE_BVCI)); sgsn_bvc = gbproxy_bvc_by_bvci(nse, bvci); - if (!sgsn_bvc) - goto err_no_bvc; + if (!sgsn_bvc) { + /* Check if BVC was blocked before */ + sgsn_bvc = gbproxy_bvc_by_bvci_inactive(nse, bvci); + if (!sgsn_bvc) + goto err_no_bvc; + } rc = osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_RX_BLOCK_ACK, msg); break; case BSSGP_PDUT_BVC_UNBLOCK_ACK: @@ -1627,7 +1633,7 @@ /* Block BVC, indicate BSS equipment failure */ uint8_t cause = BSSGP_CAUSE_EQUIP_FAIL; osmo_fsm_inst_dispatch(sgsn_bvc->fi, BSSGP_BVCFSM_E_REQ_BLOCK, &cause); - gbproxy_bvc_free(sgsn_bvc); + sgsn_bvc->inactive = true; } } diff --git a/src/gb_proxy_peer.c b/src/gb_proxy_peer.c index abbfa50..f59cf9e 100644 --- a/src/gb_proxy_peer.c +++ b/src/gb_proxy_peer.c @@ -62,7 +62,18 @@ { struct gbproxy_bvc *bvc; hash_for_each_possible(nse->bvcs, bvc, list, bvci) { - if (bvc->bvci == bvci) + if (bvc->bvci == bvci && bvc->inactive == false) + return bvc; + } + return NULL; +} + +/* Find the gbproxy_bvc by its BVCI. There can only be one match */ +struct gbproxy_bvc *gbproxy_bvc_by_bvci_inactive(struct gbproxy_nse *nse, uint16_t bvci) +{ + struct gbproxy_bvc *bvc; + hash_for_each_possible(nse->bvcs, bvc, list, bvci) { + if (bvc->bvci == bvci && bvc->inactive == true) return bvc; } return NULL; @@ -84,6 +95,7 @@ nse->nsei); osmo_identifier_sanitize_buf(idbuf, NULL, '_'); bvc->bvci = bvci; + bvc->inactive = false; bvc->ctrg = rate_ctr_group_alloc(bvc, &bvc_ctrg_desc, (nse->nsei << 16) | bvci); if (!bvc->ctrg) { talloc_free(bvc); -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ic9f34a27412d6e15ca1198ee140f66a076b5c6b6 Gerrit-Change-Number: 25577 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 13:58:44 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 13:58:44 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Fix stats when no BVC could be found In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 ) Change subject: gbproxy: Fix stats when no BVC could be found ...................................................................... gbproxy: Fix stats when no BVC could be found Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb_proxy.c b/src/gb_proxy.c index e24f468..6efd326 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1500,7 +1500,7 @@ err_no_bvc: LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); - rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_RAI)); + rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_BVCI)); return tx_status(nse, ns_bvci, BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I413b500515b6c4266370b29943b14447b38a66a0 Gerrit-Change-Number: 25635 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:01:30 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 14:01:30 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 6: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/libosmocore/+/25464/6/src/vty/stats_vty.c File src/vty/stats_vty.c: https://gerrit.osmocom.org/c/libosmocore/+/25464/6/src/vty/stats_vty.c at 478 PS6, Line 478: const struct osmo_stat_item_desc *desc = osmo_stat_item_get_desc(item); You can use direct fields here if you want I'd say, since anyway all libosmocore libs are build and packaged together and libosmovty depends on libosmocore. Fine with having an API for it though :) -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 14:01: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 Wed Sep 29 14:01:31 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 29 Sep 2021 14:01:31 +0000 Subject: Change in pysim[master]: card_handler: make reader (sl) operations optional. In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25548 ) Change subject: card_handler: make reader (sl) operations optional. ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/pysim/+/25548/1/pySim/card_handler.py File pySim/card_handler.py: https://gerrit.osmocom.org/c/pysim/+/25548/1/pySim/card_handler.py at 38 PS1, Line 38: print("Ready for Programming: Insert card now (or CTRL-C to cancel)") > Does it make sense to print this message, when sl is not set? It looks like it makes more sense to m [?] the CardHandler class suffers a bit from design problems. When we use the normal CardHandler, ther is indeed no reason why not giving it an sl object. I just thought i could make it optional here as well, just for completeness but I think we should drop that. For CardHandlerAuto pySim-shell is not using the sl object and pySim-prog is using it. There we need this feature. In any case, there at least the message printing makes sense since it executes the get command (self.__exec_cmd(self.cmds['get'])) so I think everything is fine here. One big problem is that the mechanically automated reader we are using has technical problems with its built in reader. If the built in reader would behave like any other reader things would be much more straight forward. -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Gerrit-Change-Number: 25548 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 14:01:31 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:01:54 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 29 Sep 2021 14:01:54 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... Patch Set 6: (2 comments) https://gerrit.osmocom.org/c/pysim/+/25484/6/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/6/pySim-shell.py at 69 PS6, Line 69: readble > readable Done https://gerrit.osmocom.org/c/pysim/+/25484/6/pySim-shell.py at 529 PS6, Line 529: == > is Done -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 6 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 14:01:54 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:02:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 14:02:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) 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/+/25633 to look at the new patch set (#2). Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... RSLEM: add f_rslem_auto_chan_act_ack(boolean) Allow to switch off automatic Channel Activation ACK via a new port signature. Required for upcoming BSC_Tests.TC_lost_sdcch_during_assignment(). Related: SYS#5627 Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 --- M library/RSL_Emulation.ttcn 1 file changed, 21 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/25633/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:02:36 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 14:02:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 to look at the new patch set (#2). Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... bsc: add TC_lost_sdcch_during_assignment() Reproduce a segfault happening when the SDCCH (primary) lchan is lost in-between a TCH Channel Activ and its Channel Activ Ack. Related: SYS#5627 Related: I3b1cd88bea62ef0032f6c035bac95d3df9fdca7a (osmo-bsc) Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 --- M bsc/BSC_Tests.ttcn 1 file changed, 91 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/25634/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria 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 Sep 29 14:02:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 14:02:47 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... Patch Set 1: Shouldn't those be migrated to new APIs then? -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 14:02:47 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:03:00 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 29 Sep 2021 14:03:00 +0000 Subject: Change in pysim[master]: card_handler: make reader (sl) operations optional. In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, laforge, daniel, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25548 to look at the new patch set (#2). Change subject: card_handler: make reader (sl) operations optional. ...................................................................... card_handler: make reader (sl) operations optional. The constructor gets an sl object on initalization. The card handler will then carry out the reader operation wait_for_card(). In cases where an mechanically automated card reader is used it may be useful to go without those operations and let the caller carry out the appropriate reader operations. So Lets make the sl object optional for the CardHandlerAuto class. If it is not present, simply do not carry out the pre programmed reader operation. Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Related: SYS#5617 --- M pySim/card_handler.py 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/48/25548/2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Gerrit-Change-Number: 25548 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:03:00 2021 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 29 Sep 2021 14:03:00 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/pysim/+/25484 to look at the new patch set (#7). Change subject: pySim-shell: refactor __main__ section ...................................................................... pySim-shell: refactor __main__ section The code in __main__ which initalizes the reader and the card and runtime state is not so well structured. Lets put the generation of the card and rs (RuntimeState) object into a separate function. Also do not wait indefinetly for a card. 3 seconds should be enough. If the card or reader did not respond until then, then there will be a problem in any case. Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Related: SYS#5617 --- M pySim-shell.py 1 file changed, 52 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/84/25484/7 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:03:08 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Wed, 29 Sep 2021 14:03:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Comment-Date: Wed, 29 Sep 2021 14:03: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 Sep 29 14:03:17 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 14:03:17 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 4: (2 comments) LGTM besides cosmetics https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/4/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/4/src/gb_proxy.c at 1000 PS4, Line 1000: "FOO" prefix for log messages: FOO? :) (also: long line) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/4/src/gb_proxy.c at 1130 PS4, Line 1130: * if we can extract a TLLI/RNI to route it to the correct SGSN */ looks like the fixme is now implemented? -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 14:03: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 Wed Sep 29 14:07:08 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 14:07:08 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 ) Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 14:07:08 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:08:12 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 14:08:12 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 14:08:12 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:11:13 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 14:11:13 +0000 Subject: Change in libosmo-abis[master]: ipaccess: Allow reconfiguring the ipa line during line_update() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25639 ) Change subject: ipaccess: Allow reconfiguring the ipa line during line_update() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Gerrit-Change-Number: 25639 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 14:11:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:12:34 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 14:12:34 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 ) Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 14:12:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:24:25 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 29 Sep 2021 14:24:25 +0000 Subject: Change in pysim[master]: pySim-shell: refactor __main__ section In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25484 ) Change subject: pySim-shell: refactor __main__ section ...................................................................... Patch Set 7: (3 comments) besides cosmetics, LGTM https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/2/pySim-shell.py at 66 PS2, Line 66: print("No card detected!") > I wonder if changing this makes the use of this function easier. [?] (I would lean towards using proper exceptions, but then again I haven't used pysim-shell yet, just reviewing patches. so if you say this makes more sense then fine with me.) https://gerrit.osmocom.org/c/pysim/+/25484/7/pySim-shell.py File pySim-shell.py: https://gerrit.osmocom.org/c/pysim/+/25484/7/pySim-shell.py at 64 PS7, Line 64: ; ; is not needed at the end of commands in python, same below https://gerrit.osmocom.org/c/pysim/+/25484/7/pySim-shell.py at 529 PS7, Line 529: if (sl is None) () around conditions not needed -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Id2a0f2012b84ce61f5c0c14404df559fca4ddfcd Gerrit-Change-Number: 25484 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Wed, 29 Sep 2021 14:24:25 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: fixeria Comment-In-Reply-To: dexter Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 14:36:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 14:36:50 +0000 Subject: Change in libosmo-abis[master]: ipaccess: Allow reconfiguring the ipa line during line_update() In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25639 ) Change subject: ipaccess: Allow reconfiguring the ipa line during line_update() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Gerrit-Change-Number: 25639 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 14:36: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 Sep 29 14:36:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 14:36:58 +0000 Subject: Change in libosmo-abis[master]: ipaccess: Allow reconfiguring the ipa line during line_update() In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/25639 ) Change subject: ipaccess: Allow reconfiguring the ipa line during line_update() ...................................................................... ipaccess: Allow reconfiguring the ipa line during line_update() The e1inp_line_update() API is precisely aimed at that: tell that we want to reconfigure some aspects of the e1 line. Hence, it makes no sense to apply a no-op with the flag "line_already_initialized". That flag was added a long time ago in order to avoid problems when several BTS are attached to the same ipa server link. That case doesn't apply to the BTS role, so we can simply recreate the ipa_cli_conn. Fixes: d6216405b7363c94174a6d301b96f5ed4a8730ce Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d --- M src/input/ipaccess.c 1 file changed, 12 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c index a584e0d..63461a2 100644 --- a/src/input/ipaccess.c +++ b/src/input/ipaccess.c @@ -1005,6 +1005,7 @@ struct ipaccess_line { bool line_already_initialized; + struct ipa_client_conn *ipa_cli; }; static int ipaccess_line_update(struct e1inp_line *line) @@ -1021,12 +1022,11 @@ } il = line->driver_data; - /* We only initialize this line once. */ - if (il->line_already_initialized) - return 0; - switch(line->ops->cfg.ipa.role) { case E1INP_LINE_R_BSC: { + /* We only initialize this line once. */ + if (il->line_already_initialized) + return 0; struct ipa_server_link *oml_link, *rsl_link; const char *ipa = e1inp_ipa_get_bind_addr(); @@ -1077,6 +1077,13 @@ "OML connecting to %s:%u\n", line->ops->cfg.ipa.addr, IPA_TCP_PORT_OML); + /* Drop previous line */ + if (il->ipa_cli) { + ipa_client_conn_close(il->ipa_cli); + ipa_client_conn_destroy(il->ipa_cli); + il->ipa_cli = NULL; + } + link = ipa_client_conn_create2(tall_ipa_ctx, e1inp_line_ipa_oml_ts(line), E1INP_SIGN_OML, @@ -1104,6 +1111,7 @@ e1i_ts = e1inp_line_ipa_oml_ts(line); ipaccess_bts_keepalive_fsm_alloc(e1i_ts, link, "oml_bts_to_bsc"); + il->ipa_cli = link; ret = 0; break; } -- To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/25639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Gerrit-Change-Number: 25639 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 17:02:15 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 17:02:15 +0000 Subject: Change in osmo-bsc[master]: cosmetic: fix comment typos in signal.h References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25642 ) Change subject: cosmetic: fix comment typos in signal.h ...................................................................... cosmetic: fix comment typos in signal.h Change-Id: Ie0c0c75a62b460887f2c78efe043b9e11a76919e --- M include/osmocom/bsc/signal.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/25642/1 diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index 4933703..084c30d 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -134,9 +134,9 @@ struct gsm_nm_state *old_state; struct gsm_nm_state *new_state; - /* This pointer is vaold for TS 12.21 MO */ + /* This pointer is valid for TS 12.21 MO */ struct abis_om_obj_inst *obj_inst; - /* This pointer is vaold for RBS2000 MO */ + /* This pointer is valid for RBS2000 MO */ struct abis_om2k_mo *om2k_mo; }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie0c0c75a62b460887f2c78efe043b9e11a76919e Gerrit-Change-Number: 25642 Gerrit-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 Sep 29 17:14:20 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 17:14:20 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Use designated initializers for global_ctr_description In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 ) Change subject: gbproxy: Use designated initializers for global_ctr_description ...................................................................... gbproxy: Use designated initializers for global_ctr_description This already showed one unused description where only the enum had been removed. Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d --- M src/gb_proxy.c 1 file changed, 11 insertions(+), 12 deletions(-) Approvals: osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 6efd326..90d587f 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -59,18 +59,17 @@ extern void *tall_sgsn_ctx; static const struct rate_ctr_desc global_ctr_description[] = { - { "inv-bvci", "Invalid BVC Identifier " }, - { "inv-lai", "Invalid Location Area Identifier" }, - { "inv-rai", "Invalid Routing Area Identifier " }, - { "inv-nsei", "No BVC established for NSEI " }, - { "proto-err:bss", "BSSGP protocol error (BSS )" }, - { "proto-err:sgsn", "BSSGP protocol error (SGSN)" }, - { "not-supp:bss", "Feature not supported (BSS )" }, - { "not-supp:sgsn", "Feature not supported (SGSN)" }, - { "restart:sgsn", "Restarted RESET procedure (SGSN)" }, - { "tx-err:sgsn", "NS Transmission error (SGSN)" }, - { "error", "Other error " }, - { "mod-peer-err", "Patch error: no peer " }, + [GBPROX_GLOB_CTR_INV_BVCI] = { "inv-bvci", "Invalid BVC Identifier " }, + [GBPROX_GLOB_CTR_INV_LAI] = { "inv-lai", "Invalid Location Area Identifier" }, + [GBPROX_GLOB_CTR_INV_RAI] = { "inv-rai", "Invalid Routing Area Identifier " }, + [GBPROX_GLOB_CTR_INV_NSEI] = { "inv-nsei", "No BVC established for NSEI " }, + [GBPROX_GLOB_CTR_PROTO_ERR_BSS] = { "proto-err:bss", "BSSGP protocol error (BSS )" }, + [GBPROX_GLOB_CTR_PROTO_ERR_SGSN] = { "proto-err:sgsn", "BSSGP protocol error (SGSN)" }, + [GBPROX_GLOB_CTR_NOT_SUPPORTED_BSS] = { "not-supp:bss", "Feature not supported (BSS )" }, + [GBPROX_GLOB_CTR_NOT_SUPPORTED_SGSN] = { "not-supp:sgsn", "Feature not supported (SGSN)" }, + [GBPROX_GLOB_CTR_RESTART_RESET_SGSN] = { "restart:sgsn", "Restarted RESET procedure (SGSN)" }, + [GBPROX_GLOB_CTR_TX_ERR_SGSN] = { "tx-err:sgsn", "NS Transmission error (SGSN)" }, + [GBPROX_GLOB_CTR_OTHER_ERR] = { "error", "Other error " }, }; static const struct rate_ctr_group_desc global_ctrg_desc = { -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Ifdb822c25236c19dd52a3ea1370c466d66f9d11d Gerrit-Change-Number: 25636 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 17:14:30 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 17:14:30 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Improve log message when no bvc is found (include bvci) In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 ) Change subject: gbproxy: Improve log message when no bvc is found (include bvci) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 Gerrit-Change-Number: 25638 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 17: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 Wed Sep 29 17:14:35 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 29 Sep 2021 17:14:35 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Improve log message when no bvc is found (include bvci) In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 ) Change subject: gbproxy: Improve log message when no bvc is found (include bvci) ...................................................................... gbproxy: Improve log message when no bvc is found (include bvci) Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 --- M src/gb_proxy.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: daniel: Looks good to me, approved pespin: Looks good to me, but someone else must approve osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 90d587f..2029ca9 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1498,7 +1498,7 @@ return rc; err_no_bvc: - LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC\n", pdut_name); + LOGPNSE(nse, LOGL_ERROR, "Rx %s: Cannot find BVC %05u\n", pdut_name, bvci); rate_ctr_inc(rate_ctr_group_get_ctr(cfg->ctrg, GBPROX_GLOB_CTR_INV_BVCI)); return tx_status(nse, ns_bvci, BSSGP_CAUSE_INV_MAND_INF, NULL, msg); } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I0cb05b2069d7ef86ed0f7921044aaad01121a412 Gerrit-Change-Number: 25638 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 17:32:48 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 17:32:48 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25643 ) Change subject: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state ...................................................................... trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state Change-Id: I39bef8b5776cbf1098753865c597b1c99d355bec --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 4 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/43/25643/1 diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 36be76f..cdca852 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -560,10 +560,7 @@ bts_model_trx_close_cb(pinst->trx, 0); } /* else: poweroff in progress, cb will be called upon TRXC RSP */ - if (pinst->num == 0) - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF); - else - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWEROFF); + trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF); break; case TRX_PROV_EV_CFG_TS: ts_data = (struct trx_prov_ev_cfg_ts_data*)data; @@ -592,9 +589,10 @@ /* Notify TRX close on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { + l1h = pinst->u.osmotrx.hdl; + trx_prov_fsm_state_chg(l1h->provision_fi, TRX_PROV_ST_CLOSED); bts_model_trx_close_cb(pinst->trx, rc); } - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_CLOSED); } break; default: @@ -646,8 +644,7 @@ X(TRX_PROV_EV_CLOSE) | X(TRX_PROV_EV_CFG_TS), .out_state_mask = - X(TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF) | - X(TRX_PROV_ST_OPEN_POWEROFF), + X(TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF), .name = "OPEN_POWERON", .onenter = st_open_poweron_on_enter, .action = st_open_poweron, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I39bef8b5776cbf1098753865c597b1c99d355bec Gerrit-Change-Number: 25643 Gerrit-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 Sep 29 17:32:49 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 17:32:49 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25644 ) Change subject: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition ...................................................................... trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition This may happen if bts_shutdown starts a poweroff procedure while POWERON was still not sent to the TRX. In this case, we want to go back to initial closed state to fullfill expected state when BTS is shutdown. Change-Id: Id660fa1018ef175ab237733b37629c56313c061d --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 28 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/44/25644/1 diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index cdca852..39fb608 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -296,6 +296,24 @@ return true; } +/* Closes a phy_link and all its associated TRX */ +static void trx_prov_fsm_apply_close(struct phy_link *plink, int rc) +{ + struct trx_l1h *l1h; + struct phy_instance *pinst; + + if (plink->state == PHY_LINK_SHUTDOWN) + return; + + bts_model_phy_link_close(plink); + /* Notify TRX close on all TRX associated with this phy */ + llist_for_each_entry(pinst, &plink->instances, list) { + l1h = pinst->u.osmotrx.hdl; + trx_prov_fsm_state_chg(l1h->provision_fi, TRX_PROV_ST_CLOSED); + bts_model_trx_close_cb(pinst->trx, rc); + } +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -345,6 +363,13 @@ bool others_ready; switch (event) { + case TRX_PROV_EV_CLOSE: + /* In this state, we didn't for sure send a POWERON yet, hence we + are save directly applying the close as if we received a + POWEROFF RSP: */ + if (pinst->num == 0) + trx_prov_fsm_apply_close(pinst->phy_link, 0); + return; case TRX_PROV_EV_CFG_ENABLE: l1h->config.enabled =(bool)data; break; @@ -584,16 +609,7 @@ switch (event) { case TRX_PROV_EV_POWEROFF_CNF: rc = (uint16_t)(intptr_t)data; - if (plink->state != PHY_LINK_SHUTDOWN) { - bts_model_phy_link_close(plink); - - /* Notify TRX close on all TRX associated with this phy */ - llist_for_each_entry(pinst, &plink->instances, list) { - l1h = pinst->u.osmotrx.hdl; - trx_prov_fsm_state_chg(l1h->provision_fi, TRX_PROV_ST_CLOSED); - bts_model_trx_close_cb(pinst->trx, rc); - } - } + trx_prov_fsm_apply_close(plink, rc); break; default: OSMO_ASSERT(0); @@ -611,6 +627,7 @@ }, [TRX_PROV_ST_OPEN_POWEROFF] = { .in_event_mask = + X(TRX_PROV_EV_CLOSE) | X(TRX_PROV_EV_OTHER_TRX_READY) | X(TRX_PROV_EV_CFG_ENABLE) | X(TRX_PROV_EV_CFG_BSIC) | @@ -623,6 +640,7 @@ X(TRX_PROV_EV_SETTSC_CNF) | X(TRX_PROV_EV_SETFORMAT_CNF), .out_state_mask = + X(TRX_PROV_ST_CLOSED) | X(TRX_PROV_ST_OPEN_WAIT_POWERON_CNF) | X(TRX_PROV_ST_OPEN_POWERON), .name = "OPEN_POWEROFF", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id660fa1018ef175ab237733b37629c56313c061d Gerrit-Change-Number: 25644 Gerrit-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 Sep 29 17:32:50 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 17:32:50 +0000 Subject: Change in osmo-bts[master]: bts-trx: Delay power ramp up until RCARRIER is ENABLED References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25645 ) Change subject: bts-trx: Delay power ramp up until RCARRIER is ENABLED ...................................................................... bts-trx: Delay power ramp up until RCARRIER is ENABLED Prior to this patch, the power ramping started when the PHY is available, but that doesn't necessarily mean the RCARRIER is enabled. Due to this, it was spotted a situation where BTS bootstrap failed after PHY turning up, when RSL connection establishment failed. Hence bts_shutdown_fsm triggered a shutdown while an active power ramping up was ongoing... Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 --- M include/osmo-bts/signal.h M src/common/oml.c M src/osmo-bts-trx/trx_provision_fsm.c 3 files changed, 37 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/25645/1 diff --git a/include/osmo-bts/signal.h b/include/osmo-bts/signal.h index c8168a2..8359f02 100644 --- a/include/osmo-bts/signal.h +++ b/include/osmo-bts/signal.h @@ -15,4 +15,10 @@ S_NEW_NSVC_ATTR, }; +struct nm_statechg_signal_data { + struct gsm_abis_mo *mo; + uint8_t old_state; + uint8_t new_state; +}; + #endif diff --git a/src/common/oml.c b/src/common/oml.c index f841853..30caad5 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -355,12 +355,16 @@ mo->nm_state.availability = avail_state; } if (op_state != -1) { + struct nm_statechg_signal_data nsd; LOGP(DOML, LOGL_INFO, "%s OPER STATE %s -> %s\n", gsm_abis_mo_name(mo), abis_nm_opstate_name(mo->nm_state.operational), abis_nm_opstate_name(op_state)); + nsd.mo = mo; + nsd.old_state = mo->nm_state.operational; + nsd.new_state = op_state; mo->nm_state.operational = op_state; - osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, NULL); + osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, &nsd); } if (adm_state != -1) { LOGP(DOML, LOGL_INFO, "%s ADMIN STATE %s -> %s\n", diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 39fb608..03f6d44 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_provision_fsm.h" @@ -314,6 +315,30 @@ } } +static int trx_prov_fsm_signal_cb(unsigned int subsys, unsigned int signal, + void *hdlr_data, void *signal_data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_bts_trx *trx; + + if (subsys != SS_GLOBAL) + return -EINVAL; + + if (signal != S_NEW_OP_STATE) + return 0; + + nsd = (struct nm_statechg_signal_data *)signal_data; + + if (nsd->mo->obj_class != NM_OC_RADIO_CARRIER) + return 0; + + if (nsd->old_state != NM_OPSTATE_ENABLED && nsd->new_state == NM_OPSTATE_ENABLED) { + trx = gsm_objclass2obj(nsd->mo->bts, nsd->mo->obj_class, &nsd->mo->obj_inst); + l1if_trx_start_power_ramp(trx, NULL); + } + return 0; +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -511,13 +536,6 @@ if (rc == 0 && plink->state != PHY_LINK_CONNECTED) { trx_sched_clock_started(pinst->trx->bts); 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) { - if (pinst->trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) - l1if_trx_start_power_ramp(pinst->trx, NULL); - } - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWERON); } else if (rc != 0 && plink->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); @@ -709,4 +727,5 @@ static __attribute__((constructor)) void trx_prov_fsm_init(void) { OSMO_ASSERT(osmo_fsm_register(&trx_prov_fsm) == 0); + OSMO_ASSERT(osmo_signal_register_handler(SS_GLOBAL, trx_prov_fsm_signal_cb, NULL) == 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 Gerrit-Change-Number: 25645 Gerrit-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 Sep 29 17:58:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 17:58:18 +0000 Subject: Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25646 ) Change subject: Delay abis reconnect while bts is shutting down ...................................................................... Delay abis reconnect while bts is shutting down Avoid re-connecting to a new BSC while BTS is in shutting down. All the FSMs are complex enough to even try to re-start when stopping has not yet finished... Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/abis.c M src/common/bts_shutdown_fsm.c 3 files changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/25646/1 diff --git a/include/osmo-bts/bts_shutdown_fsm.h b/include/osmo-bts/bts_shutdown_fsm.h index 1e74ac6..76ac6ca 100644 --- a/include/osmo-bts/bts_shutdown_fsm.h +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -39,3 +39,6 @@ }; extern struct osmo_fsm bts_shutdown_fsm; + +struct gsm_bts; +bool bts_shutdown_in_progress(const struct gsm_bts *bts); diff --git a/src/common/abis.c b/src/common/abis.c index 11111fa..f1fb10c 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -53,6 +53,7 @@ #include #include #include +#include static struct gsm_bts *g_bts; @@ -137,6 +138,12 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; + if (bts_shutdown_in_progress(bts)) { + LOGPFSML(fi, LOGL_NOTICE, "BTS is shutting down, delaying A-bis connection establishment to BSC\n"); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); + return; + } + if (pick_next_bsc(fi) < 0) { LOGPFSML(fi, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index 85d2d83..600407a 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -237,10 +237,16 @@ OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0); } +bool bts_shutdown_in_progress(const struct gsm_bts *bts) +{ + struct osmo_fsm_inst *fi = bts->shutdown_fi; + return fi->state != BTS_SHUTDOWN_ST_NONE; +} + void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc) { struct osmo_fsm_inst *fi = bts->shutdown_fi; - if (fi->state != BTS_SHUTDOWN_ST_NONE) { + if (bts_shutdown_in_progress(bts)) { LOGPFSML(fi, LOGL_NOTICE, "BTS is already being shutdown.\n"); if (exit_proc) bts->shutdown_fi_exit_proc = true; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 Gerrit-Change-Number: 25646 Gerrit-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 Sep 29 17:58:18 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Wed, 29 Sep 2021 17:58:18 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25647 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... bts-trx: Keep the process ongoing trying to reconnect on Abis link down Change-Id: I28cb36a43b44865caa409b3255c05963acc74848 --- M src/osmo-bts-trx/l1_if.c 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/47/25647/1 diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c index f3d8743..9faae88 100644 --- a/src/osmo-bts-trx/l1_if.c +++ b/src/osmo-bts-trx/l1_if.c @@ -195,10 +195,11 @@ osmo_fsm_inst_dispatch(trx->bb_transc.mo.fi, NM_EV_DISABLE, NULL); } -/* on RSL failure, deactivate transceiver */ void bts_model_abis_close(struct gsm_bts *bts) { - bts_shutdown(bts, "Abis close"); + /* Go into shutdown state deactivating transceivers until Abis link + * becomes up again */ + bts_shutdown_ext(bts, "Abis close", false); } int bts_model_adjst_ms_pwr(struct gsm_lchan *lchan) -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I28cb36a43b44865caa409b3255c05963acc74848 Gerrit-Change-Number: 25647 Gerrit-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 Sep 29 18:24:57 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 18:24:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 ) Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633/2//COMMIT_MSG at 7 PS2, Line 7: f_rslem_auto_chan_act_ack f_rslem_*set*_auto_chan_act_ack -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: fixeria Gerrit-CC: laforge Gerrit-Comment-Date: Wed, 29 Sep 2021 18:24: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 Wed Sep 29 19:03:41 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:03:41 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25640 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7fd3ef81bbc517821def31f1a60f905a0e2fb52 Gerrit-Change-Number: 25640 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:03: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 Sep 29 19:05:36 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 29 Sep 2021 19:05:36 +0000 Subject: Change in libosmocore[master]: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/25648 ) Change subject: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 ...................................................................... GPRS: Add PDP_TYPE_N_IETF_IPv4v6 Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 --- M include/osmocom/gsm/protocol/gsm_04_08_gprs.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/48/25648/1 diff --git a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h index dbac259..4729e14 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h +++ b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h @@ -291,6 +291,7 @@ PDP_TYPE_N_ETSI_PPP = 0x01, PDP_TYPE_N_IETF_IPv4 = 0x21, PDP_TYPE_N_IETF_IPv6 = 0x57, + PDP_TYPE_N_IETF_IPv4v6 = 0x8D, }; /* Figure 10.5.138/24.008 / Chapter 10.5.6.5 */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Gerrit-Change-Number: 25648 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 19:06:13 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:06:13 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25643 ) Change subject: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I39bef8b5776cbf1098753865c597b1c99d355bec Gerrit-Change-Number: 25643 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:06:13 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 19:07:33 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Wed, 29 Sep 2021 19:07:33 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... VTY: Don't display 'PDP Address: invalid' for IPv4v6 We were not handling the case of PDP_TYPE_N_IETF_IPv4v6 in gprs_pdpaddr2str() and showed "invalid" for these addresses. Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 --- M include/osmocom/sgsn/gprs_sgsn.h M src/sgsn/sgsn_vty.c 2 files changed, 24 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/25649/1 diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h index c176494..dcda5c3 100644 --- a/include/osmocom/sgsn/gprs_sgsn.h +++ b/include/osmocom/sgsn/gprs_sgsn.h @@ -417,7 +417,7 @@ struct sgsn_instance *sgsn_instance_alloc(void *talloc_ctx); void sgsn_inst_init(struct sgsn_instance *sgsn); -char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len); +char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len, bool return_ipv6); /* * ctrl interface related work diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c index e0e2677..85aebbc 100644 --- a/src/sgsn/sgsn_vty.c +++ b/src/sgsn/sgsn_vty.c @@ -135,9 +135,10 @@ return osmo_tdef_vty_set_cmd(vty, g_cfg->T_defs, argv); } -char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len) +char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len, bool return_ipv6) { - static char str[INET6_ADDRSTRLEN + 10]; + static char str[INET_ADDRSTRLEN + 10]; + static char str_inet6[INET6_ADDRSTRLEN + 10]; if (!pdpa || len < 2) return "none"; @@ -154,8 +155,20 @@ case PDP_TYPE_N_IETF_IPv6: if (len < 2 + 8) break; - strcpy(str, "IPv6 "); - inet_ntop(AF_INET6, pdpa+2, str+5, sizeof(str)-5); + strcpy(str_inet6, "IPv6 "); + inet_ntop(AF_INET6, pdpa+2, str_inet6+5, sizeof(str_inet6)-5); + return str_inet6; + case PDP_TYPE_N_IETF_IPv4v6: + if (len < 2 + 20) + break; + strcpy(str, "IPv4 "); + inet_ntop(AF_INET, pdpa+2, str+5, sizeof(str)-5); + /* The IPv6 token, (rightmost four fields) is a duplicate of + * the site prefix + subnetID (leftmost fields) in pdpa here */ + strcpy(str_inet6, "IPv6 "); + inet_ntop(AF_INET6, pdpa+6, str_inet6+5, sizeof(str_inet6)-5); + if (return_ipv6) + return str_inet6; return str; default: break; @@ -552,8 +565,13 @@ osmo_apn_to_str(apnbuf, pdp->lib->apn_use.v, pdp->lib->apn_use.l), VTY_NEWLINE); vty_out(vty, "%s PDP Address: %s%s", pfx, - gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l), + gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l, false), VTY_NEWLINE); + if (pdp->lib->eua.v[1] == PDP_TYPE_N_IETF_IPv4v6) { + vty_out(vty, "%s PDP Address: %s%s", pfx, + gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l, true), + VTY_NEWLINE); + } vty_out(vty, "%s GTPv%d Local Control(%s / TEIC: 0x%08x) ", pfx, pdp->lib->version, sgsn_gtp_ntoa(&pdp->lib->gsnlc), pdp->lib->teic_own); vty_out(vty, "Data(%s / TEID: 0x%08x)%s", -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 19:09:37 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:09:37 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25644 ) Change subject: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25644/1/src/osmo-bts-trx/trx_provision_fsm.c File src/osmo-bts-trx/trx_provision_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/25644/1/src/osmo-bts-trx/trx_provision_fsm.c at 311 PS1, Line 311: l1h Make it a scoped pointer. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id660fa1018ef175ab237733b37629c56313c061d Gerrit-Change-Number: 25644 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:09: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 Sep 29 19:16:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:16:03 +0000 Subject: Change in osmo-bts[master]: bts-trx: Delay power ramp up until RCARRIER is ENABLED In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25645 ) Change subject: bts-trx: Delay power ramp up until RCARRIER is ENABLED ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25645/1/src/osmo-bts-trx/trx_provision_fsm.c File src/osmo-bts-trx/trx_provision_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/25645/1/src/osmo-bts-trx/trx_provision_fsm.c at 319 PS1, Line 319: void *hdlr_data, void *signal_data) Alignment. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 Gerrit-Change-Number: 25645 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:16: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 Sep 29 19:18:39 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:18:39 +0000 Subject: Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25646 ) Change subject: Delay abis reconnect while bts is shutting down ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/c/osmo-bts/+/25646/1/src/common/bts_shutdown_fsm.c File src/common/bts_shutdown_fsm.c: https://gerrit.osmocom.org/c/osmo-bts/+/25646/1/src/common/bts_shutdown_fsm.c at 242 PS1, Line 242: fi Also const. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 Gerrit-Change-Number: 25646 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:18:39 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 19:19:03 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:19:03 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25647 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I28cb36a43b44865caa409b3255c05963acc74848 Gerrit-Change-Number: 25647 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:19: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 Sep 29 19:20:36 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:20:36 +0000 Subject: Change in osmo-bsc[master]: cosmetic: fix comment typos in signal.h In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25642 ) Change subject: cosmetic: fix comment typos in signal.h ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie0c0c75a62b460887f2c78efe043b9e11a76919e Gerrit-Change-Number: 25642 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Comment-Date: Wed, 29 Sep 2021 19:20:36 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 19:23:20 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:23:20 +0000 Subject: Change in libosmocore[master]: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25648 ) Change subject: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Gerrit-Change-Number: 25648 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Wed, 29 Sep 2021 19:23:20 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Sep 29 19:48:32 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:48:32 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-CC: pespin Gerrit-Comment-Date: Wed, 29 Sep 2021 19:48: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 Sep 29 19:57:50 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Wed, 29 Sep 2021 19:57:50 +0000 Subject: Change in osmo-bts[master]: scheduler: fix comments explaining the interleaving of TCH/H References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25650 ) Change subject: scheduler: fix comments explaining the interleaving of TCH/H ...................................................................... scheduler: fix comments explaining the interleaving of TCH/H Change-Id: I2820e42ae10f05ba1ca956b948ea0d77e6abeb3d --- M src/common/scheduler.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/50/25650/1 diff --git a/src/common/scheduler.c b/src/common/scheduler.c index ffa0ed8..a0af482 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -221,13 +221,14 @@ /* Rx and Tx, multiple convolutional coding types (3GPP TS 05.03, * chapter 3), block diagonal interleaving (3GPP TS 05.02, clause 7): * - * - a traffic frame is interleaved over 6 consecutive bursts + * - a traffic frame is interleaved over 4 consecutive bursts * using the even numbered bits of the first 2 bursts, - * all bits of the middle two 2 bursts, * and odd numbered bits of the last 2 bursts; * - a FACCH/H frame 'steals' (replaces) two traffic frames, - * interleaving is done over 4 consecutive bursts, - * the same as given for a TCH/FS. */ + * interleaving is done over 6 consecutive bursts, + * using the even numbered bits of the first 2 bursts, + * all bits of the middle two 2 bursts, + * and odd numbered bits of the last 2 bursts. */ .rts_fn = rts_tchh_fn, .dl_fn = tx_tchh_fn, .ul_fn = rx_tchh_fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2820e42ae10f05ba1ca956b948ea0d77e6abeb3d Gerrit-Change-Number: 25650 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From noreply at opensuse.org Thu Sep 30 00:53:12 2021 From: noreply at opensuse.org (OBS Notification) Date: Thu, 30 Sep 2021 00:53:12 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_Unstable/x86_64 In-Reply-To: References: Message-ID: <61550a83ba8a0_476a2b0e037666003518b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Debian_Unstable/x86_64 Package network:osmocom:nightly/libosmo-netif failed to build in Debian_Unstable/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 376s] +{11.000015} [NA|OK] Server's read_cb_srv(): callback triggered [ 376s] +{11.000015} [NA|OK] Server's read_cb_srv(): received 29(29) bytes: 48 69 21 20 66 72 6f 6d 20 63 6f 6e 6e 65 63 74 20 63 61 6c 6c 62 61 63 6b 20 3a 2d 50 [ 376s] +{11.000015} [NA|OK] Server's read_cb_srv(): sent 11 bytes message: 72 65 61 64 5f 63 62 5f 73 72 76 [ 376s] +{11.000015} [OK|OK] Server's read_cb_srv(): keep initial client connection [ 376s] +{11.000017} [NA] Client's read_cb_cli(): callback triggered [ 376s] +{11.000017} [NA] Client's read_cb_cli(): received 11(11) bytes: 72 65 61 64 5f 63 62 5f 73 72 76 [ 376s] +{11.000017} [NA] Client's read_cb_cli(): initial read, contacting server [ 376s] +{11.000017} [OK] Client's read_cb_cli(): sent 29 bytes message: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 [ 376s] +{11.000019} [OK|OK] Server's read_cb_srv(): callback triggered [ 376s] +{11.000019} [OK|OK] Server's read_cb_srv(): received 29(29) bytes: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 [ 376s] +{11.000019} [OK|OK] Server's read_cb_srv(): sent 11 bytes message: 72 65 61 64 5f 63 62 5f 73 72 76 [ 376s] +{11.000019} [OK|OK] Server's read_cb_srv(): force client disconnect on subsequent call [ 376s] +{11.000020} [OK] Client's read_cb_cli(): callback triggered [ 376s] +{11.000020} [OK] Client's read_cb_cli(): 0-byte read, auto-reconnect will be triggered if enabled [ 376s] +{20.000020} non-reconnecting test complete. [ 376s] [ 376s] Stream tests completed [ 376s] 1. testsuite.at:4: 1. stream_test (testsuite.at:4): FAILED (testsuite.at:8) [ 376s] make[1]: *** [debian/rules:27: override_dh_auto_test] Error 1 [ 376s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 376s] make: *** [debian/rules:13: build] Error 2 [ 376s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 376s] ### VM INTERACTION START ### [ 378s] [ 334.776430] sysrq: Power Off [ 378s] [ 334.797555] reboot: Power down [ 379s] ### VM INTERACTION END ### [ 379s] [ 379s] lamb04 failed "build libosmo-netif_1.1.0.202109300027.dsc" at Thu Sep 30 00:52:57 UTC 2021. [ 379s] -- 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 Sep 30 06:39:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:39:10 +0000 Subject: Change in osmo-bts[master]: scheduler: fix comments explaining the interleaving of TCH/H In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25650 ) Change subject: scheduler: fix comments explaining the interleaving of TCH/H ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2820e42ae10f05ba1ca956b948ea0d77e6abeb3d Gerrit-Change-Number: 25650 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:39:10 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:40:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:40:04 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 6 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 30 Sep 2021 06:40:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:40:17 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:40:17 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 Gerrit-PatchSet: 1 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 06:40:17 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:40:29 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:40:29 +0000 Subject: Change in libosmocore[master]: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25648 ) Change subject: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Gerrit-Change-Number: 25648 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06: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 Thu Sep 30 06:40:32 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:40:32 +0000 Subject: Change in libosmocore[master]: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25648 ) Change subject: GPRS: Add PDP_TYPE_N_IETF_IPv4v6 ...................................................................... GPRS: Add PDP_TYPE_N_IETF_IPv4v6 Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 --- M include/osmocom/gsm/protocol/gsm_04_08_gprs.h 1 file changed, 1 insertion(+), 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/include/osmocom/gsm/protocol/gsm_04_08_gprs.h b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h index dbac259..4729e14 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h +++ b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h @@ -291,6 +291,7 @@ PDP_TYPE_N_ETSI_PPP = 0x01, PDP_TYPE_N_IETF_IPv4 = 0x21, PDP_TYPE_N_IETF_IPv6 = 0x57, + PDP_TYPE_N_IETF_IPv4v6 = 0x8D, }; /* Figure 10.5.138/24.008 / Chapter 10.5.6.5 */ -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Gerrit-Change-Number: 25648 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:40:44 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:40:44 +0000 Subject: Change in osmo-bsc[master]: cosmetic: fix comment typos in signal.h In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25642 ) Change subject: cosmetic: fix comment typos in signal.h ...................................................................... cosmetic: fix comment typos in signal.h Change-Id: Ie0c0c75a62b460887f2c78efe043b9e11a76919e --- M include/osmocom/bsc/signal.h 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index 4933703..084c30d 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -134,9 +134,9 @@ struct gsm_nm_state *old_state; struct gsm_nm_state *new_state; - /* This pointer is vaold for TS 12.21 MO */ + /* This pointer is valid for TS 12.21 MO */ struct abis_om_obj_inst *obj_inst; - /* This pointer is vaold for RBS2000 MO */ + /* This pointer is valid for RBS2000 MO */ struct abis_om2k_mo *om2k_mo; }; -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie0c0c75a62b460887f2c78efe043b9e11a76919e Gerrit-Change-Number: 25642 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 Thu Sep 30 06:41:10 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:41:10 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25640 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7fd3ef81bbc517821def31f1a60f905a0e2fb52 Gerrit-Change-Number: 25640 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:41: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 Sep 30 06:41:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:41:26 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25643 ) Change subject: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I39bef8b5776cbf1098753865c597b1c99d355bec Gerrit-Change-Number: 25643 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06: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 Sep 30 06:41:31 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:41:31 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25644 ) Change subject: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id660fa1018ef175ab237733b37629c56313c061d Gerrit-Change-Number: 25644 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:41: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 Sep 30 06:41:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:41:34 +0000 Subject: Change in osmo-bts[master]: bts-trx: Delay power ramp up until RCARRIER is ENABLED In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25645 ) Change subject: bts-trx: Delay power ramp up until RCARRIER is ENABLED ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 Gerrit-Change-Number: 25645 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:41:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:41:38 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:41:38 +0000 Subject: Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25646 ) Change subject: Delay abis reconnect while bts is shutting down ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 Gerrit-Change-Number: 25646 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:41:38 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:41:47 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:41:47 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25647 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I28cb36a43b44865caa409b3255c05963acc74848 Gerrit-Change-Number: 25647 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:41: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 Sep 30 06:42:04 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:42:04 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:42:04 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:42:26 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:42:26 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 1: Code-Review+1 Actually, this needs a "Depends: libosmocore " for the library change -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 06:42:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:43:28 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:43:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 ) Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: fixeria Gerrit-Comment-Date: Thu, 30 Sep 2021 06:43:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 06:43:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:43:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RSLEM: add f_rslem_auto_chan_act_ack(boolean) In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 ) Change subject: RSLEM: add f_rslem_auto_chan_act_ack(boolean) ...................................................................... RSLEM: add f_rslem_auto_chan_act_ack(boolean) Allow to switch off automatic Channel Activation ACK via a new port signature. Required for upcoming BSC_Tests.TC_lost_sdcch_during_assignment(). Related: SYS#5627 Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 --- M library/RSL_Emulation.ttcn 1 file changed, 21 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 31647df..30adfba 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -98,11 +98,13 @@ 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); +signature RSLEM_set_auto_chan_act_ack(boolean enable); type port RSLEM_PROC_PT procedure { inout RSLEM_register, RSLEM_unregister, RSLEM_suspend, RSLEM_wait_queue, - RSLEM_get_last_act; + RSLEM_get_last_act, + RSLEM_set_auto_chan_act_ack; } with { extension "internal" }; /*********************************************************************** @@ -491,6 +493,7 @@ * in a queue. These messages will remain in the queue until the appropriate * connection handler is registered. */ var boolean wait_queue_enabled := false; + var boolean auto_chan_act_ack := true; f_conn_table_init(); f_trx_conn_map_init(); @@ -594,12 +597,17 @@ CCHAN_PT.send(rx_rsl); } - /* blindly acknowledge all channel activations */ + /* Channel Activation: store in LastActTable, possibly ACK. */ [bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV), sid := ?)) -> value rx_rsl { chan_nr := rx_rsl.rsl.ies[0].body.chan_nr; trx_nr := f_trx_by_streamId(rx_rsl.streamId); f_store_last_act_data(trx_nr, chan_nr, rx_rsl.rsl); - IPA_PT.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl.streamId)); + if (auto_chan_act_ack) { + /* blindly acknowledge all channel activations */ + IPA_PT.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl.streamId)); + } else { + CLIENT_PT.send(rx_rsl); + } } [not dchan_suspended] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeDR(?), sid := ?)) -> value rx_rsl { @@ -706,6 +714,10 @@ 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; } + + [] RSL_PROC.getcall(RSLEM_set_auto_chan_act_ack:{?}) -> param(auto_chan_act_ack) sender vc_conn { + RSL_PROC.reply(RSLEM_set_auto_chan_act_ack:{auto_chan_act_ack}) to vc_conn; + } } } } @@ -800,7 +812,11 @@ return chan_act; } - - +function f_rslem_set_auto_chan_act_ack(RSLEM_PROC_PT PT, boolean enable) +runs on RSL_DchanHdlr { + PT.call(RSLEM_set_auto_chan_act_ack:{enable}) { + [] PT.getreply(RSLEM_set_auto_chan_act_ack:{enable}) {}; + } +} } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I9a9d191aa66ec27f4f80c2baa2c5aa3c7b668d66 Gerrit-Change-Number: 25633 Gerrit-PatchSet: 2 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 Sep 30 06:43:34 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:43:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: add TC_lost_sdcch_during_assignment() In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 ) Change subject: bsc: add TC_lost_sdcch_during_assignment() ...................................................................... bsc: add TC_lost_sdcch_during_assignment() Reproduce a segfault happening when the SDCCH (primary) lchan is lost in-between a TCH Channel Activ and its Channel Activ Ack. Related: SYS#5627 Related: I3b1cd88bea62ef0032f6c035bac95d3df9fdca7a (osmo-bsc) Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 --- M bsc/BSC_Tests.ttcn 1 file changed, 91 insertions(+), 0 deletions(-) Approvals: neels: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 7183f54..a4def7b 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -10155,6 +10155,95 @@ f_shutdown_helper(); } +/* Reproduce a segfault happening when the SDCCH (primary) lchan is lost in-between a TCH Channel Activ and its Channel + * Activ Ack (SYS#5627). */ +private function f_TC_lost_sdcch_during_assignment(charstring id) runs on MSC_ConnHdlr { + var PDU_BSSAP ass_cmd := f_gen_ass_req(); + 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 := + f_BSSMAP_chtype_from_codec(g_pars.ass_codec_list.codecElements[0]); + + var BSSMAP_FIELD_CodecType codecType; + codecType := valueof(ass_cmd.pdu.bssmap.assignmentRequest.codecList.codecElements[0].codecType); + + f_MscConnHdlr_init(g_pars.media_nr, host_bts, host_mgw_mgcp, codecType); + + /* First establish a signalling lchan */ + f_create_chan_and_exp(); + f_rslem_dchan_queue_enable(); + + /* we should now have a COMPL_L3 at the 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 := ?; + } + timer T := 10.0; + T.start; + alt { + [] BSSAP.receive(exp_l3_compl); + [] 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"); + } + } + + f_create_mgcp_expect(ExpectCriteria:{omit,omit,omit}); + activate(as_Media_mgw()); + + var RslChannelNr chan_nr := { u := { ch0 := RSL_CHAN_NR_Bm_ACCH }, tn := 1 }; + f_rslem_register(0, chan_nr); + + f_rslem_set_auto_chan_act_ack(RSL_PROC, false); + BSSAP.send(ass_cmd); + + + /* Wait for the Channel Activ for the TCH channel */ + var ASP_RSL_Unitdata rx_rsl_ud; + RSL.receive(tr_ASP_RSL_UD(tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV), sid := ?)) -> value rx_rsl_ud; + + /* make the original SDCCH disappear */ + RSL.send(ts_RSL_REL_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)))); + + /* and ACK the TCH channel activation. This caused a segfault up to OsmoBSC 1.7.0 (SYS#5627) */ + RSL.send(ts_ASP_RSL_UD(ts_RSL_CHAN_ACT_ACK(chan_nr, 23), rx_rsl_ud.streamId)); + + interleave { + [] BSSAP.receive(tr_BSSMAP_AssignmentFail); + [] BSSAP.receive(tr_BSSMAP_ClearRequest); + } + + BSSAP.send(ts_BSSMAP_ClearCommand(0)); + BSSAP.receive(tr_BSSMAP_ClearComplete); + BSSAP.send(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + + var MgcpCommand mgcp; + MGCP.receive(tr_DLCX()) -> value mgcp { + MGCP.send(ts_DLCX_ACK2(mgcp.line.trans_id)); + }; + + f_sleep(0.5); +} +testcase TC_lost_sdcch_during_assignment() runs on test_CT { + var TestHdlrParams pars := f_gen_test_hdlr_pars(); + var MSC_ConnHdlr vc_conn; + + f_init(1, true); + f_sleep(1.0); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + vc_conn := f_start_handler(refers(f_TC_lost_sdcch_during_assignment), pars); + vc_conn.done; + + f_shutdown_helper(); +} + control { /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); @@ -10462,6 +10551,8 @@ execute( TC_imm_ass_pre_ts_ack_dyn_ts() ); execute( TC_ctrl_trx_rf_locked() ); + + execute( TC_lost_sdcch_during_assignment() ); } } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I81cccdea450885d5241cab62000ad355d464dd49 Gerrit-Change-Number: 25634 Gerrit-PatchSet: 2 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel 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 Thu Sep 30 06:44:21 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 06:44:21 +0000 Subject: Change in pysim[master]: card_handler: make reader (sl) operations optional. In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/pysim/+/25548 ) Change subject: card_handler: make reader (sl) operations optional. ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/pysim/+/25548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I0f793aec51751b7c7b87d55b66326cce9970274e Gerrit-Change-Number: 25548 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 30 Sep 2021 06:44: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 Sep 30 08:55:47 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 30 Sep 2021 08:55:47 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 4: (2 comments) > Patch Set 4: > > (2 comments) > > LGTM besides cosmetics Thanks, I also found/fixed some inconsistencies with tp/tp_inner usage (also affects the other patch) https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/4/src/gb_proxy.c File src/gb_proxy.c: https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/4/src/gb_proxy.c at 1000 PS4, Line 1000: "FOO" > prefix for log messages: FOO? :) [?] Done https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077/4/src/gb_proxy.c at 1130 PS4, Line 1130: * if we can extract a TLLI/RNI to route it to the correct SGSN */ > looks like the fixme is now implemented? Done -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 08:55:47 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: osmith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 08:56:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 30 Sep 2021 08:56:42 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 to look at the new patch set (#5). Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI Fixes TC_status_sig_ul_tlli Related: OS#4892 Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 --- M src/gb_proxy.c 1 file changed, 48 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/77/25077/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 08:56:42 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 30 Sep 2021 08:56:42 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: Hello osmith, Jenkins Builder, pespin, dexter, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 to look at the new patch set (#5). Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI Derive a foreign TLLI from a TMSI and route the message according to it Fixes TC_status_sig_ul_tmsi Related: OS#4892 Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba --- M src/gb_proxy.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gbproxy refs/changes/78/25078/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 10:06:03 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 30 Sep 2021 10:06:03 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 10:06:03 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 10:06:40 2021 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 30 Sep 2021 10:06:40 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 ) Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 10:06: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 Sep 30 11:09:05 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:09:05 +0000 Subject: Change in osmo-bts[master]: scheduler: fix comments explaining the interleaving of TCH/H In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25650 ) Change subject: scheduler: fix comments explaining the interleaving of TCH/H ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2820e42ae10f05ba1ca956b948ea0d77e6abeb3d Gerrit-Change-Number: 25650 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 11:09:05 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:11:34 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 30 Sep 2021 11:11:34 +0000 Subject: Change in osmo-bts[master]: scheduler: fix comments explaining the interleaving of TCH/H In-Reply-To: References: Message-ID: fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25650 ) Change subject: scheduler: fix comments explaining the interleaving of TCH/H ...................................................................... scheduler: fix comments explaining the interleaving of TCH/H Change-Id: I2820e42ae10f05ba1ca956b948ea0d77e6abeb3d --- M src/common/scheduler.c 1 file changed, 5 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/common/scheduler.c b/src/common/scheduler.c index a6ed517..e7d17d0 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -221,13 +221,14 @@ /* Rx and Tx, multiple convolutional coding types (3GPP TS 05.03, * chapter 3), block diagonal interleaving (3GPP TS 05.02, clause 7): * - * - a traffic frame is interleaved over 6 consecutive bursts + * - a traffic frame is interleaved over 4 consecutive bursts * using the even numbered bits of the first 2 bursts, - * all bits of the middle two 2 bursts, * and odd numbered bits of the last 2 bursts; * - a FACCH/H frame 'steals' (replaces) two traffic frames, - * interleaving is done over 4 consecutive bursts, - * the same as given for a TCH/FS. */ + * interleaving is done over 6 consecutive bursts, + * using the even numbered bits of the first 2 bursts, + * all bits of the middle two 2 bursts, + * and odd numbered bits of the last 2 bursts. */ .rts_fn = rts_tchh_fn, .dl_fn = tx_tchh_fn, .ul_fn = rx_tchh_fn, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2820e42ae10f05ba1ca956b948ea0d77e6abeb3d Gerrit-Change-Number: 25650 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:12:12 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 30 Sep 2021 11:12:12 +0000 Subject: Change in osmo-bts[master]: fix handle_ms_meas_report(): properly count measurement reports References: Message-ID: fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25651 ) Change subject: fix handle_ms_meas_report(): properly count measurement reports ...................................................................... fix handle_ms_meas_report(): properly count measurement reports Each RSL MEASurement RESult message contains a Measurement Number IE, which is basically a monolithically increasing number. We shall not increase this counter if for whatever reason the report has not been sent to the BSC. Change-Id: I441adb4b202e94ddee8c0b6777849e36ea644b1d Fixes: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Fixes: OS#5243 --- M src/common/measurement.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/51/25651/1 diff --git a/src/common/measurement.c b/src/common/measurement.c index 7dc0bf1..87e853e 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -805,6 +805,8 @@ timing_offset = ms_to_valid(lchan) ? ms_to2rsl(lchan, le) : -1; rc = rsl_tx_meas_res(lchan, (uint8_t *)gh, len, timing_offset); + if (rc == 0) /* Count successful transmissions */ + lchan->meas.res_nr++; /* Run control loops now that we have all the information: */ /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and @@ -850,7 +852,6 @@ lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) gh); /* Reset state for next iteration */ - lchan->meas.res_nr++; lchan->tch.dtx.dl_active = false; lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I441adb4b202e94ddee8c0b6777849e36ea644b1d Gerrit-Change-Number: 25651 Gerrit-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 Sep 30 11:12:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:12:43 +0000 Subject: Change in osmo-bts[master]: abis: Fix line leaked & recreated upon every reconnect In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25640 ) Change subject: abis: Fix line leaked & recreated upon every reconnect ...................................................................... abis: Fix line leaked & recreated upon every reconnect Previous code creating a new line was really a workaround to have it working while previous lines were being stacked internally inside libosmo-abis. Let's handle reference counts for the line properly and keep using the same line always (since it can be further configured by libosmo-abis' VTY). Recent patches to libosmo-abis fixed a bug where e1inp_line_update() would only work the first time it was called on a e1np_line, and follow up calls would be no-ops. This fix allows re-configuring and hence reusing the same line to reconnect to BSC. Depends: libosmo-abis Change-Id: Iff8092f88726cf238dac2abb99e135ac5864272d Change-Id: Id7fd3ef81bbc517821def31f1a60f905a0e2fb52 --- M src/common/abis.c 1 file changed, 5 insertions(+), 12 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/common/abis.c b/src/common/abis.c index 93635c2..11111fa 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -81,7 +81,6 @@ struct bsc_oml_host *current_bsc; struct gsm_bts *bts; char *model_name; - int line_ctr; }; static void reset_oml_link(struct gsm_bts *bts) @@ -156,22 +155,16 @@ bts_dev_info.unit_name = bts->description; bts_dev_info.location2 = priv->model_name; - line = e1inp_line_find(priv->line_ctr); - if (line) { - e1inp_line_get2(line, __FILE__); /* We want a new reference for returned line */ - } else - line = e1inp_line_create(priv->line_ctr, "ipa"); /* already comes with a reference */ - - /* The abis connection may fail and we may have to try again with a different BSC (if configured). The next - * attempt must happen on a different line. */ - priv->line_ctr++; - + line = e1inp_line_find(0); + if (!line) + line = e1inp_line_create(0, "ipa"); if (!line) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); return; } - e1inp_line_bind_ops(line, &line_ops); + /* Line always comes already with a "ctor" reference, enough to keep it alive forever. */ + e1inp_line_bind_ops(line, &line_ops); /* This will open the OML connection now */ if (e1inp_line_update(line) < 0) { osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id7fd3ef81bbc517821def31f1a60f905a0e2fb52 Gerrit-Change-Number: 25640 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 Sep 30 11:12:43 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:12:43 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25643 ) Change subject: trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state ...................................................................... trx_provision_fsm: Fix TRX!=0 never going back to CLOSED state Change-Id: I39bef8b5776cbf1098753865c597b1c99d355bec --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 4 insertions(+), 7 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 36be76f..cdca852 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -560,10 +560,7 @@ bts_model_trx_close_cb(pinst->trx, 0); } /* else: poweroff in progress, cb will be called upon TRXC RSP */ - if (pinst->num == 0) - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF); - else - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWEROFF); + trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF); break; case TRX_PROV_EV_CFG_TS: ts_data = (struct trx_prov_ev_cfg_ts_data*)data; @@ -592,9 +589,10 @@ /* Notify TRX close on all TRX associated with this phy */ llist_for_each_entry(pinst, &plink->instances, list) { + l1h = pinst->u.osmotrx.hdl; + trx_prov_fsm_state_chg(l1h->provision_fi, TRX_PROV_ST_CLOSED); bts_model_trx_close_cb(pinst->trx, rc); } - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_CLOSED); } break; default: @@ -646,8 +644,7 @@ X(TRX_PROV_EV_CLOSE) | X(TRX_PROV_EV_CFG_TS), .out_state_mask = - X(TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF) | - X(TRX_PROV_ST_OPEN_POWEROFF), + X(TRX_PROV_ST_OPEN_WAIT_POWEROFF_CNF), .name = "OPEN_POWERON", .onenter = st_open_poweron_on_enter, .action = st_open_poweron, -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I39bef8b5776cbf1098753865c597b1c99d355bec Gerrit-Change-Number: 25643 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 Sep 30 11:12:44 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:12:44 +0000 Subject: Change in osmo-bts[master]: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25644 ) Change subject: trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition ...................................................................... trx_provision_fsm: Support OPEN_POWEROFF->CLOSED transition This may happen if bts_shutdown starts a poweroff procedure while POWERON was still not sent to the TRX. In this case, we want to go back to initial closed state to fullfill expected state when BTS is shutdown. Change-Id: Id660fa1018ef175ab237733b37629c56313c061d --- M src/osmo-bts-trx/trx_provision_fsm.c 1 file changed, 28 insertions(+), 10 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index cdca852..39fb608 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -296,6 +296,24 @@ return true; } +/* Closes a phy_link and all its associated TRX */ +static void trx_prov_fsm_apply_close(struct phy_link *plink, int rc) +{ + struct trx_l1h *l1h; + struct phy_instance *pinst; + + if (plink->state == PHY_LINK_SHUTDOWN) + return; + + bts_model_phy_link_close(plink); + /* Notify TRX close on all TRX associated with this phy */ + llist_for_each_entry(pinst, &plink->instances, list) { + l1h = pinst->u.osmotrx.hdl; + trx_prov_fsm_state_chg(l1h->provision_fi, TRX_PROV_ST_CLOSED); + bts_model_trx_close_cb(pinst->trx, rc); + } +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -345,6 +363,13 @@ bool others_ready; switch (event) { + case TRX_PROV_EV_CLOSE: + /* In this state, we didn't for sure send a POWERON yet, hence we + are save directly applying the close as if we received a + POWEROFF RSP: */ + if (pinst->num == 0) + trx_prov_fsm_apply_close(pinst->phy_link, 0); + return; case TRX_PROV_EV_CFG_ENABLE: l1h->config.enabled =(bool)data; break; @@ -584,16 +609,7 @@ switch (event) { case TRX_PROV_EV_POWEROFF_CNF: rc = (uint16_t)(intptr_t)data; - if (plink->state != PHY_LINK_SHUTDOWN) { - bts_model_phy_link_close(plink); - - /* Notify TRX close on all TRX associated with this phy */ - llist_for_each_entry(pinst, &plink->instances, list) { - l1h = pinst->u.osmotrx.hdl; - trx_prov_fsm_state_chg(l1h->provision_fi, TRX_PROV_ST_CLOSED); - bts_model_trx_close_cb(pinst->trx, rc); - } - } + trx_prov_fsm_apply_close(plink, rc); break; default: OSMO_ASSERT(0); @@ -611,6 +627,7 @@ }, [TRX_PROV_ST_OPEN_POWEROFF] = { .in_event_mask = + X(TRX_PROV_EV_CLOSE) | X(TRX_PROV_EV_OTHER_TRX_READY) | X(TRX_PROV_EV_CFG_ENABLE) | X(TRX_PROV_EV_CFG_BSIC) | @@ -623,6 +640,7 @@ X(TRX_PROV_EV_SETTSC_CNF) | X(TRX_PROV_EV_SETFORMAT_CNF), .out_state_mask = + X(TRX_PROV_ST_CLOSED) | X(TRX_PROV_ST_OPEN_WAIT_POWERON_CNF) | X(TRX_PROV_ST_OPEN_POWERON), .name = "OPEN_POWEROFF", -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: Id660fa1018ef175ab237733b37629c56313c061d Gerrit-Change-Number: 25644 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 Sep 30 11:16:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:16:07 +0000 Subject: Change in osmo-bts[master]: bts-trx: Delay power ramp up until RCARRIER is ENABLED In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 to look at the new patch set (#2). Change subject: bts-trx: Delay power ramp up until RCARRIER is ENABLED ...................................................................... bts-trx: Delay power ramp up until RCARRIER is ENABLED Prior to this patch, the power ramping started when the PHY is available, but that doesn't necessarily mean the RCARRIER is enabled. Due to this, it was spotted a situation where BTS bootstrap failed after PHY turning up, when RSL connection establishment failed. Hence bts_shutdown_fsm triggered a shutdown while an active power ramping up was ongoing... Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 --- M include/osmo-bts/signal.h M src/common/oml.c M src/osmo-bts-trx/trx_provision_fsm.c 3 files changed, 37 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/45/25645/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 Gerrit-Change-Number: 25645 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:16:07 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:16:07 +0000 Subject: Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 to look at the new patch set (#2). Change subject: Delay abis reconnect while bts is shutting down ...................................................................... Delay abis reconnect while bts is shutting down Avoid re-connecting to a new BSC while BTS is in shutting down. All the FSMs are complex enough to even try to re-start when stopping has not yet finished... Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/abis.c M src/common/bts_shutdown_fsm.c 3 files changed, 17 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/46/25646/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 Gerrit-Change-Number: 25646 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:18:04 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 30 Sep 2021 11:18:04 +0000 Subject: Change in osmo-bts[master]: bts-trx: Delay power ramp up until RCARRIER is ENABLED In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25645 ) Change subject: bts-trx: Delay power ramp up until RCARRIER is ENABLED ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 Gerrit-Change-Number: 25645 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 11: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 Sep 30 11:18:35 2021 From: gerrit-no-reply at lists.osmocom.org (fixeria) Date: Thu, 30 Sep 2021 11:18:35 +0000 Subject: Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down In-Reply-To: References: Message-ID: fixeria has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25646 ) Change subject: Delay abis reconnect while bts is shutting down ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 Gerrit-Change-Number: 25646 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 11:18: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 Sep 30 11:20:32 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:20:32 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 ) Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 11:20:32 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:25:31 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:25:31 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c File src/sgsn/sgsn_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c at 164 PS1, Line 164: strcpy(str, "IPv4 "); if (return_ipv6) { strcpy(str_ine, "IPv6 "); inet_ntop(AF_INET6, pdpa+6, str_inet6+5, sizeof(str_inet6)-5); } else { strcpy(str, "IPv4 "); inet_ntop(AF_INET6, pdpa+6, str_inet6+5, sizeof(str_inet6)-5); } return str_inet; -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 11:25: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 Sep 30 11:30:59 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:30:59 +0000 Subject: Change in osmo-bts[master]: bts-trx: Delay power ramp up until RCARRIER is ENABLED In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25645 ) Change subject: bts-trx: Delay power ramp up until RCARRIER is ENABLED ...................................................................... bts-trx: Delay power ramp up until RCARRIER is ENABLED Prior to this patch, the power ramping started when the PHY is available, but that doesn't necessarily mean the RCARRIER is enabled. Due to this, it was spotted a situation where BTS bootstrap failed after PHY turning up, when RSL connection establishment failed. Hence bts_shutdown_fsm triggered a shutdown while an active power ramping up was ongoing... Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 --- M include/osmo-bts/signal.h M src/common/oml.c M src/osmo-bts-trx/trx_provision_fsm.c 3 files changed, 37 insertions(+), 8 deletions(-) Approvals: fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/signal.h b/include/osmo-bts/signal.h index c8168a2..8359f02 100644 --- a/include/osmo-bts/signal.h +++ b/include/osmo-bts/signal.h @@ -15,4 +15,10 @@ S_NEW_NSVC_ATTR, }; +struct nm_statechg_signal_data { + struct gsm_abis_mo *mo; + uint8_t old_state; + uint8_t new_state; +}; + #endif diff --git a/src/common/oml.c b/src/common/oml.c index f841853..30caad5 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -355,12 +355,16 @@ mo->nm_state.availability = avail_state; } if (op_state != -1) { + struct nm_statechg_signal_data nsd; LOGP(DOML, LOGL_INFO, "%s OPER STATE %s -> %s\n", gsm_abis_mo_name(mo), abis_nm_opstate_name(mo->nm_state.operational), abis_nm_opstate_name(op_state)); + nsd.mo = mo; + nsd.old_state = mo->nm_state.operational; + nsd.new_state = op_state; mo->nm_state.operational = op_state; - osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, NULL); + osmo_signal_dispatch(SS_GLOBAL, S_NEW_OP_STATE, &nsd); } if (adm_state != -1) { LOGP(DOML, LOGL_INFO, "%s ADMIN STATE %s -> %s\n", diff --git a/src/osmo-bts-trx/trx_provision_fsm.c b/src/osmo-bts-trx/trx_provision_fsm.c index 39fb608..52736ad 100644 --- a/src/osmo-bts-trx/trx_provision_fsm.c +++ b/src/osmo-bts-trx/trx_provision_fsm.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "l1_if.h" #include "trx_provision_fsm.h" @@ -314,6 +315,30 @@ } } +static int trx_prov_fsm_signal_cb(unsigned int subsys, unsigned int signal, + void *hdlr_data, void *signal_data) +{ + struct nm_statechg_signal_data *nsd; + struct gsm_bts_trx *trx; + + if (subsys != SS_GLOBAL) + return -EINVAL; + + if (signal != S_NEW_OP_STATE) + return 0; + + nsd = (struct nm_statechg_signal_data *)signal_data; + + if (nsd->mo->obj_class != NM_OC_RADIO_CARRIER) + return 0; + + if (nsd->old_state != NM_OPSTATE_ENABLED && nsd->new_state == NM_OPSTATE_ENABLED) { + trx = gsm_objclass2obj(nsd->mo->bts, nsd->mo->obj_class, &nsd->mo->obj_inst); + l1if_trx_start_power_ramp(trx, NULL); + } + return 0; +} + ////////////////////////// // FSM STATE ACTIONS ////////////////////////// @@ -511,13 +536,6 @@ if (rc == 0 && plink->state != PHY_LINK_CONNECTED) { trx_sched_clock_started(pinst->trx->bts); 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) { - if (pinst->trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) - l1if_trx_start_power_ramp(pinst->trx, NULL); - } - trx_prov_fsm_state_chg(fi, TRX_PROV_ST_OPEN_POWERON); } else if (rc != 0 && plink->state != PHY_LINK_SHUTDOWN) { trx_sched_clock_stopped(pinst->trx->bts); @@ -709,4 +727,5 @@ static __attribute__((constructor)) void trx_prov_fsm_init(void) { OSMO_ASSERT(osmo_fsm_register(&trx_prov_fsm) == 0); + OSMO_ASSERT(osmo_signal_register_handler(SS_GLOBAL, trx_prov_fsm_signal_cb, NULL) == 0); } -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I17208b74ea2649b1bbb717aee0aa355e42b7e860 Gerrit-Change-Number: 25645 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 Sep 30 11:31:00 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:31:00 +0000 Subject: Change in osmo-bts[master]: Delay abis reconnect while bts is shutting down In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25646 ) Change subject: Delay abis reconnect while bts is shutting down ...................................................................... Delay abis reconnect while bts is shutting down Avoid re-connecting to a new BSC while BTS is in shutting down. All the FSMs are complex enough to even try to re-start when stopping has not yet finished... Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 --- M include/osmo-bts/bts_shutdown_fsm.h M src/common/abis.c M src/common/bts_shutdown_fsm.c 3 files changed, 17 insertions(+), 1 deletion(-) 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 1e74ac6..76ac6ca 100644 --- a/include/osmo-bts/bts_shutdown_fsm.h +++ b/include/osmo-bts/bts_shutdown_fsm.h @@ -39,3 +39,6 @@ }; extern struct osmo_fsm bts_shutdown_fsm; + +struct gsm_bts; +bool bts_shutdown_in_progress(const struct gsm_bts *bts); diff --git a/src/common/abis.c b/src/common/abis.c index 11111fa..f1fb10c 100644 --- a/src/common/abis.c +++ b/src/common/abis.c @@ -53,6 +53,7 @@ #include #include #include +#include static struct gsm_bts *g_bts; @@ -137,6 +138,12 @@ struct abis_link_fsm_priv *priv = fi->priv; struct gsm_bts *bts = priv->bts; + if (bts_shutdown_in_progress(bts)) { + LOGPFSML(fi, LOGL_NOTICE, "BTS is shutting down, delaying A-bis connection establishment to BSC\n"); + osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_WAIT_RECONNECT, OML_RETRY_TIMER, 0); + return; + } + if (pick_next_bsc(fi) < 0) { LOGPFSML(fi, LOGL_FATAL, "No BSC available, A-bis connection establishment failed\n"); osmo_fsm_inst_state_chg(fi, ABIS_LINK_ST_FAILED, 0, 0); diff --git a/src/common/bts_shutdown_fsm.c b/src/common/bts_shutdown_fsm.c index 85d2d83..a663f5b 100644 --- a/src/common/bts_shutdown_fsm.c +++ b/src/common/bts_shutdown_fsm.c @@ -237,10 +237,16 @@ OSMO_ASSERT(osmo_fsm_register(&bts_shutdown_fsm) == 0); } +bool bts_shutdown_in_progress(const struct gsm_bts *bts) +{ + const struct osmo_fsm_inst *fi = bts->shutdown_fi; + return fi->state != BTS_SHUTDOWN_ST_NONE; +} + void bts_shutdown_ext(struct gsm_bts *bts, const char *reason, bool exit_proc) { struct osmo_fsm_inst *fi = bts->shutdown_fi; - if (fi->state != BTS_SHUTDOWN_ST_NONE) { + if (bts_shutdown_in_progress(bts)) { LOGPFSML(fi, LOGL_NOTICE, "BTS is already being shutdown.\n"); if (exit_proc) bts->shutdown_fi_exit_proc = true; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I1727828a16f4ec8043b00cc6b2e02a4c35f71377 Gerrit-Change-Number: 25646 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 Sep 30 11:31:23 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:31:23 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25647 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 2: I'll be merging this one starting next week. -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I28cb36a43b44865caa409b3255c05963acc74848 Gerrit-Change-Number: 25647 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Comment-Date: Thu, 30 Sep 2021 11:31: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 Thu Sep 30 11:31:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:31:28 +0000 Subject: Change in osmo-bts[master]: bts-trx: Keep the process ongoing trying to reconnect on Abis link down In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25647 ) Change subject: bts-trx: Keep the process ongoing trying to reconnect on Abis link down ...................................................................... Patch Set 2: Code-Review-2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I28cb36a43b44865caa409b3255c05963acc74848 Gerrit-Change-Number: 25647 Gerrit-PatchSet: 2 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 11:31:28 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:36:45 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:36:45 +0000 Subject: Change in osmo-bts[master]: fix handle_ms_meas_report(): properly count measurement reports In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25651 ) Change subject: fix handle_ms_meas_report(): properly count measurement reports ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I441adb4b202e94ddee8c0b6777849e36ea644b1d Gerrit-Change-Number: 25651 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 11:36:45 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 11:36:47 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 11:36:47 +0000 Subject: Change in osmo-bts[master]: fix handle_ms_meas_report(): properly count measurement reports In-Reply-To: References: Message-ID: pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25651 ) Change subject: fix handle_ms_meas_report(): properly count measurement reports ...................................................................... fix handle_ms_meas_report(): properly count measurement reports Each RSL MEASurement RESult message contains a Measurement Number IE, which is basically a monolithically increasing number. We shall not increase this counter if for whatever reason the report has not been sent to the BSC. Change-Id: I441adb4b202e94ddee8c0b6777849e36ea644b1d Fixes: Id67259ec9ac4c2c33bd0eef3f64450affbe3fb9f Fixes: OS#5243 --- M src/common/measurement.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/measurement.c b/src/common/measurement.c index 7dc0bf1..87e853e 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -805,6 +805,8 @@ timing_offset = ms_to_valid(lchan) ? ms_to2rsl(lchan, le) : -1; rc = rsl_tx_meas_res(lchan, (uint8_t *)gh, len, timing_offset); + if (rc == 0) /* Count successful transmissions */ + lchan->meas.res_nr++; /* Run control loops now that we have all the information: */ /* 3GPP TS 45.008 sec 4.2: UL L1 SACCH Header contains TA and @@ -850,7 +852,6 @@ lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) gh); /* Reset state for next iteration */ - lchan->meas.res_nr++; lchan->tch.dtx.dl_active = false; lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; lchan->meas.flags &= ~LC_UL_M_F_L1_VALID; -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I441adb4b202e94ddee8c0b6777849e36ea644b1d Gerrit-Change-Number: 25651 Gerrit-PatchSet: 2 Gerrit-Owner: fixeria 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 Sep 30 12:21:55 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 30 Sep 2021 12:21:55 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 12:21:55 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 12:22:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 30 Sep 2021 12:22:03 +0000 Subject: Change in osmo-gbproxy[master]: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 ) Change subject: gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI ...................................................................... gbproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TLLI Fixes TC_status_sig_ul_tlli Related: OS#4892 Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 --- M src/gb_proxy.c 1 file changed, 48 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/gb_proxy.c b/src/gb_proxy.c index 2029ca9..a45a83f 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -989,6 +989,28 @@ return gbprox_relay2nse(msg, sgsn->nse, 0); } +static int gbproxy_tlli_from_status_pdu(struct msgb *msg, struct tlv_parsed *tp, uint32_t *tlli, char *log_pfx) +{ + int rc; + int pdu_len = TLVP_LEN(&tp[0], BSSGP_IE_PDU_IN_ERROR); + const uint8_t *pdu_data = TLVP_VAL(&tp[0], BSSGP_IE_PDU_IN_ERROR); + struct bssgp_normal_hdr *bgph = (struct bssgp_normal_hdr *)pdu_data; + struct tlv_parsed tp_inner[2]; + + rc = osmo_tlv_prot_parse(&osmo_pdef_bssgp, tp_inner, ARRAY_SIZE(tp_inner), bgph->pdu_type, bgph->data, + pdu_len - sizeof(*bgph), 0, 0, DGPRS, log_pfx); + + if (rc < 0) + return rc; + + if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_TLLI)) + *tlli = osmo_load32be(TLVP_VAL(&tp_inner[0], BSSGP_IE_TLLI)); + else + return -ENOENT; + + return 0; +} + /* Receive an incoming signalling message from a BSS-side NS-VC */ static int gbprox_rx_sig_from_bss(struct gbproxy_nse *nse, struct msgb *msg, uint16_t ns_bvci) { @@ -1079,9 +1101,33 @@ break; } case BSSGP_PDUT_STATUS: - /* FIXME: inspect the erroneous PDU IE (if any) and check - * if we can extract a TLLI/RNI to route it to the correct SGSN */ + { + struct gbproxy_sgsn *sgsn; + /* Check if the status needs to be terminated locally */ + uint8_t cause = *TLVP_VAL(&tp[0], BSSGP_IE_CAUSE); + if (cause == BSSGP_CAUSE_UNKNOWN_BVCI || cause == BSSGP_CAUSE_BVCI_BLOCKED) { + /* Log and handle locally */ + ptp_bvci = ntohs(tlvp_val16_unal(&tp[0], BSSGP_IE_BVCI)); + LOGP(DGPRS, LOGL_ERROR, "%s Rx STATUS with cause %s for PtP-BVC %05u\n", log_pfx, + bssgp_cause_str(cause), ptp_bvci); + /* FIXME: Remove/block our BVC if present? */ + break; + } + + LOGP(DGPRS, LOGL_INFO, "Forwarding STATUS with cause %s\n", bssgp_cause_str(cause)); + if (gbproxy_tlli_from_status_pdu(msg, tp, &tlli, log_pfx) == 0) + sgsn = gbproxy_select_sgsn(nse->cfg, &tlli); + else + sgsn = gbproxy_select_sgsn(nse->cfg, NULL); + + if (!sgsn) { + rc = -EINVAL; + break; + } + + rc = gbprox_relay2nse(msg, sgsn->nse, 0); break; + } case BSSGP_PDUT_RAN_INFO: case BSSGP_PDUT_RAN_INFO_REQ: case BSSGP_PDUT_RAN_INFO_ACK: -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: I9d2ec73520ee46ceedda3f7e63035e6a51a65ac2 Gerrit-Change-Number: 25077 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 12:22:03 2021 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 30 Sep 2021 12:22:03 +0000 Subject: Change in osmo-gbproxy[master]: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI In-Reply-To: References: Message-ID: daniel has submitted this change. ( https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 ) Change subject: gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI ...................................................................... gpproxy: Route BSSGP STATUS with PDU_IN_ERROR containing a TMSI Derive a foreign TLLI from a TMSI and route the message according to it Fixes TC_status_sig_ul_tmsi Related: OS#4892 Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba --- M src/gb_proxy.c 1 file changed, 8 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve pespin: Looks good to me, approved diff --git a/src/gb_proxy.c b/src/gb_proxy.c index a45a83f..1e8bc96 100644 --- a/src/gb_proxy.c +++ b/src/gb_proxy.c @@ -1003,10 +1003,16 @@ if (rc < 0) return rc; - if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_TLLI)) + if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_TLLI)) { *tlli = osmo_load32be(TLVP_VAL(&tp_inner[0], BSSGP_IE_TLLI)); - else + } else if (TLVP_PRESENT(&tp_inner[0], BSSGP_IE_TMSI)) { + /* we treat the TMSI like a TLLI and extract the NRI from it */ + *tlli = osmo_load32be(TLVP_VAL(&tp_inner[0], BSSGP_IE_TMSI)); + /* Convert the TMSI into a FOREIGN TLLI so it is routed appropriately */ + *tlli = gprs_tmsi2tlli(*tlli, TLLI_FOREIGN); + } else { return -ENOENT; + } return 0; } -- To view, visit https://gerrit.osmocom.org/c/osmo-gbproxy/+/25078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gbproxy Gerrit-Branch: master Gerrit-Change-Id: Iebda9e9fd433cd28c0f657adc4d475d4e6e247ba Gerrit-Change-Number: 25078 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 14:13:40 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 14:13:40 +0000 Subject: Change in osmo-ggsn[master]: WIP: gtp-echo-responder References: Message-ID: pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 ) Change subject: WIP: gtp-echo-responder ...................................................................... WIP: gtp-echo-responder Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 --- M Makefile.am M configure.ac M contrib/osmo-ggsn.spec.in M debian/control A debian/gtp-echo-responder.install A utils/Makefile.am A utils/gtp_echo_responder.c A utils/gtp_echo_responder_test.py 8 files changed, 449 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/52/25652/1 diff --git a/Makefile.am b/Makefile.am index f431bd9..7fb2529 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ ## Process this file with automake to produce Makefile.in -SUBDIRS = lib gtp ggsn sgsnemu doc contrib tests +SUBDIRS = lib gtp ggsn sgsnemu doc contrib utils tests pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libgtp.pc diff --git a/configure.ac b/configure.ac index 2cf44fc..cfc9f21 100644 --- a/configure.ac +++ b/configure.ac @@ -257,6 +257,7 @@ lib/Makefile intl/Makefile po/Makefile + utils/Makefile sgsnemu/Makefile doc/manuals/Makefile contrib/Makefile diff --git a/contrib/osmo-ggsn.spec.in b/contrib/osmo-ggsn.spec.in index 6d55af8..bee8fc1 100644 --- a/contrib/osmo-ggsn.spec.in +++ b/contrib/osmo-ggsn.spec.in @@ -61,6 +61,15 @@ This subpackage contains libraries and header files for developing applications that want to make use of libgtp. +%package -n gtp-echo-responder +Summary: Small program answering GTP ECHO Request with GTP ECHO Response +License: MIT +Group: System/Libraries + +%description -n gtp-echo-responder +Small program answering GTP ECHO Request with GTP ECHO Response for both GTPCv1 +and GTPCv2. + %prep %setup -q @@ -122,4 +131,7 @@ %{_libdir}/libgtp.so %{_libdir}/pkgconfig/libgtp.pc +%files -n gtp-echo-responder +%{_bindir}/gtp-echo-responder + %changelog diff --git a/debian/control b/debian/control index bbffd49..6d5cde5 100644 --- a/debian/control +++ b/debian/control @@ -38,6 +38,12 @@ This library is part of OsmoGGSN and implements the GTP protocol between SGSN (Serving GPRS support node) and GGSN. +Package: gtp-echo-responder +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: Small program answering GTP ECHO Request with GTP ECHO Response + Package: libgtp-dev Architecture: any Multi-Arch: same @@ -63,6 +69,15 @@ operators as the interface between the Internet and the rest of the mobile network infrastructure. +Package: gtp-echo-responder-dbg +Section: debug +Architecture: any +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, gtp-echo-responder (= ${binary:Version}) +Multi-Arch: same +Description: Debug symbols for gtp-echo-responder + Small program answering GTP ECHO Request with GTP ECHO Response. + Package: libgtp-dbg Section: debug Architecture: any diff --git a/debian/gtp-echo-responder.install b/debian/gtp-echo-responder.install new file mode 100644 index 0000000..1d6d96f --- /dev/null +++ b/debian/gtp-echo-responder.install @@ -0,0 +1 @@ +/usr/bin/gtp-echo-responder diff --git a/utils/Makefile.am b/utils/Makefile.am new file mode 100644 index 0000000..7ba0ff4 --- /dev/null +++ b/utils/Makefile.am @@ -0,0 +1,3 @@ +bin_PROGRAMS = gtp-echo-responder + +gtp_echo_responder_SOURCES = gtp_echo_responder.c diff --git a/utils/gtp_echo_responder.c b/utils/gtp_echo_responder.c new file mode 100644 index 0000000..66479c7 --- /dev/null +++ b/utils/gtp_echo_responder.c @@ -0,0 +1,338 @@ +/* + * MIT License + * + * Copyright (c) 2021 by sysmocom - s.f.m.c. GmbH + * + * SPDX-License-Identifier: MIT Permission is hereby granted, free of charge, to + * any person obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +/* For more info see: + * 3GPP TS 29.060 (GTPv1 and GTPv0) + * 3GPP TS 29.274 (GTPv2C) + */ + +#include "../config.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define GTP1C_PORT 2123 +#define GTP_MSGTYPE_ECHO_REQ 1 +#define GTP_MSGTYPE_ECHO_RSP 2 +#define GTP_IE_RECOVERY 14 + +struct gtp1_hdr { +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + uint8_t pn:1, s:1, e:1, spare:1, pt:1, version:3; +#else + uint8_t version:3, pt:1, spare:1, e:1, s:1, pn:1; +#endif + uint8_t type; + uint16_t length; + uint32_t tei; + uint16_t seq; + uint8_t npdu; + uint8_t next; +} __attribute__((packed)); + +struct gtp_echo_resp_state { + struct { + char laddr[INET6_ADDRSTRLEN]; + uint8_t recovery_ctr; + } cfg; + struct sockaddr_storage laddr_gtpc1; + int fd_gtpc1; +}; + +struct gtp_echo_resp_state *g_st; + +static void print_usage(void) +{ + printf("Usage: gtp-echo-responder [-h] [-V] [-l listen_addr]\n"); +} + +static void print_help(void) +{ + printf( " Some useful help...\n" + " -h --help This help text\n" + " -V --version Print the version of gtp-echo-responder\n" + ); +} + +static void print_version(void) +{ + printf("gtp-echo-responder version %s\n", PACKAGE_VERSION); +} + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_index = 0, c; + static struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "version", 0, 0, 'V' }, + {"listen-addr", 1, 0, 'l'}, + {"recovery-counter", 1, 0, 'R'}, + { 0, 0, 0, 0 } + }; + + c = getopt_long(argc, argv, "hdVl:R:", long_options, &option_index); + if (c == -1) + break; + + switch (c) { + case 'h': + print_usage(); + print_help(); + exit(0); + case 'V': + print_version(); + exit(0); + break; + case 'l': + strncpy(&g_st->cfg.laddr[0], optarg, sizeof(g_st->cfg.laddr)); + g_st->cfg.laddr[sizeof(g_st->cfg.laddr) - 1] = '\0'; + break; + case 'R': + g_st->cfg.recovery_ctr = (uint8_t)atoi(optarg); + } + } +} + +static int init_socket(void) +{ + struct in_addr addr; + struct in6_addr addr6; + struct sockaddr_in *saddr; + struct sockaddr_in6 *saddr6; + int family; + + if (inet_pton(AF_INET6, g_st->cfg.laddr, &addr6) == 1) { + family = AF_INET6; + saddr6 = (struct sockaddr_in6 *)&g_st->laddr_gtpc1; + saddr6->sin6_family = family; + saddr6->sin6_port = htons(GTP1C_PORT); + memcpy(&saddr6->sin6_addr, &addr6, sizeof(addr6)); + + } else if (inet_pton(AF_INET, g_st->cfg.laddr, &addr) == 1) { + family = AF_INET; + saddr = (struct sockaddr_in *)&g_st->laddr_gtpc1; + saddr->sin_family = family; + saddr->sin_port = htons(GTP1C_PORT); + memcpy(&saddr->sin_addr, &addr, sizeof(addr)); + } else { + fprintf(stderr, "Failed parsing address %s\n", g_st->cfg.laddr); + return -1; + } + + if ((g_st->fd_gtpc1 = socket(family, SOCK_DGRAM, 0)) < 0) { + fprintf(stderr, "socket() failed: %s\n", strerror(errno)); + return -2; + } + + if (bind(g_st->fd_gtpc1, (struct sockaddr *)&g_st->laddr_gtpc1, sizeof(g_st->laddr_gtpc1)) < 0) { + fprintf(stderr, "bind() failed: %s\n", strerror(errno)); + return -3; + } + + return 0; +} + +static const char* sockaddr2str(const struct sockaddr* saddr) +{ + static char _rem_addr_str[INET6_ADDRSTRLEN]; + struct sockaddr_in *saddr4; + struct sockaddr_in6 *saddr6; + + switch (saddr->sa_family) { + case AF_INET6: + saddr6 = (struct sockaddr_in6 *)saddr; + if (!inet_ntop(saddr6->sin6_family, &saddr6->sin6_addr, _rem_addr_str, sizeof(_rem_addr_str))) + goto err; + return _rem_addr_str; + case AF_INET: + saddr4 = (struct sockaddr_in *)saddr; + if (!inet_ntop(saddr4->sin_family, &saddr4->sin_addr, _rem_addr_str, sizeof(_rem_addr_str))) + goto err; + return _rem_addr_str; + default: + /* fall through */ + } + +err: + strcpy(_rem_addr_str, "unknwown"); + return _rem_addr_str; +} + +static int write_cb(int fd, const uint8_t *buf, size_t buf_len, const struct sockaddr* rem_saddr) +{ + ssize_t rc; + + rc = sendto(fd, buf, buf_len, 0, rem_saddr, sizeof(struct sockaddr_storage)); + if (rc < 0) { + fprintf(stderr, "sendto() failed: %s\n", strerror(errno)); + return -1; + } + if (rc != buf_len) { + fprintf(stderr, "sendto() short write: %u vs exp %u\n", rc, buf_len); + return -1; + } + return 0; +} + +static int gen_gtpc1_echo_rsp(uint8_t *buf, struct gtp1_hdr *echo_req) +{ + int offset = 0; + struct gtp1_hdr *echo_rsp = (struct gtp1_hdr *)buf; + unsigned exp_hdr_len = (echo_req->s || echo_req->pn || echo_req->e) ? 12 : 8; + + memcpy(echo_rsp, echo_req, exp_hdr_len); + echo_rsp->type = GTP_MSGTYPE_ECHO_RSP; + offset = exp_hdr_len; + buf[offset++] = GTP_IE_RECOVERY; + buf[offset++] = g_st->cfg.recovery_ctr; + + /* Update Length */ + echo_rsp->length = htons(offset - 8); + return offset; +} + +static int rx_gtpc1_echo_req(struct gtp1_hdr *echo_req, unsigned buf_len, const struct sockaddr* rem_saddr) +{ + int rc; + const size_t tx_buf_len = buf_len + 128; /* Leave some extra room */ + uint8_t *tx_buf = alloca(tx_buf_len); + + printf("Rx GTPCv1_ECHO_REQ from %s, Tx GTPCv1_ECHO_RSP\n", sockaddr2str(rem_saddr)); + + memset(tx_buf, 0, tx_buf_len); + rc = gen_gtpc1_echo_rsp(tx_buf, echo_req); + return write_cb(g_st->fd_gtpc1, tx_buf, rc, rem_saddr); +} +static int rx_gtpc1(struct gtp1_hdr *hdr, unsigned buf_len, const struct sockaddr* rem_saddr) +{ + unsigned exp_hdr_len = (hdr->s || hdr->pn || hdr->e) ? 12 : 8; + unsigned pdu_len; + + if (buf_len < exp_hdr_len) { + fprintf(stderr, "GTPCv1 packet size smaller than header! %u < exp %u\n", buf_len, exp_hdr_len); + return -1; + } + + pdu_len = ntohs(hdr->length); + if (buf_len < 8 + pdu_len) { + fprintf(stderr, "GTPCv1 packet size smaller than announced! %u < exp %u\n", buf_len, 8 + pdu_len); + return -1; + } + + if (hdr->pt != 1) { + fprintf(stderr, "GTPCv1 Protocol Type GTP' not supported!\n"); + return -1; + } + + switch (hdr->type) { + case GTP_MSGTYPE_ECHO_REQ: + return rx_gtpc1_echo_req(hdr, buf_len, rem_saddr); + default: + fprintf(stderr, "Silently ignoring unexpected packet of type %u\n", hdr->type); + return 0; + } +} + +static int read_cb(int fd) +{ + ssize_t sz; + uint8_t buf[4096]; + struct sockaddr_storage rem_saddr; + socklen_t rem_saddr_len = sizeof(rem_saddr); + struct gtp1_hdr *hdr1; + + if ((sz = recvfrom(fd, buf, sizeof(buf), 0, (struct sockaddr *)&rem_saddr, &rem_saddr_len)) < 0) { + fprintf(stderr, "recvfrom() failed: %s\n", strerror(errno)); + return -1; + } + if (sz == 0) { + fprintf(stderr, "recvfrom() read zero bytes!\n"); + return -1; + } + + hdr1 = (struct gtp1_hdr *)&buf[0]; + switch (hdr1->version) { + case 1: + return rx_gtpc1(hdr1, sz, (const struct sockaddr *)&rem_saddr); + default: + fprintf(stderr, "Rx GTPv%u: not supported (flags=0x%x)\n", hdr1->version, buf[0]); + return -1; + } +} + +static int loop(void) +{ + int rc; + fd_set rfds; + int nfds; + + while (true) { + FD_ZERO(&rfds); + FD_SET(g_st->fd_gtpc1, &rfds); + nfds = g_st->fd_gtpc1 + 1; + rc = select(nfds, &rfds, NULL, NULL, NULL); + if (rc == 0) + continue; + if (rc < 0) { + fprintf(stderr, "select() failed: %s\n", strerror(errno)); + return -1; + } + + if (FD_ISSET(g_st->fd_gtpc1, &rfds)) { + read_cb(g_st->fd_gtpc1); + } + } +} + +int main(int argc, char **argv) +{ + g_st = calloc(1, sizeof(struct gtp_echo_resp_state)); + + strcpy(g_st->cfg.laddr, "::"); + + handle_options(argc, argv); + + printf("Listening on: %s\n", g_st->cfg.laddr); + + if (init_socket() < 0) + exit(1); + + printf("Socket bound successfuly, listening for requests...\n"); + + if (loop() < 0) + exit(1); + + return 0; +} diff --git a/utils/gtp_echo_responder_test.py b/utils/gtp_echo_responder_test.py new file mode 100755 index 0000000..e90b129 --- /dev/null +++ b/utils/gtp_echo_responder_test.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 +# MIT License +# +# Copyright (c) 2021 by sysmocom - s.f.m.c. GmbH +# +# SPDX-License-Identifier: MIT Permission is hereby granted, free of charge, to +# any person obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to permit +# persons to whom the Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + + +import socket +import argparse +import struct +from ipaddress import ip_address, IPv4Address + +GTP1C_PORT = 2123 +BUF_SIZE = 4096 + +GTP_HDRv1_FLAG_PN = (1<<0) +GTP_HDRv1_FLAG_S = (1<<1) +GTP_HDRv1_FLAG_E = (1<<2) +GTP_HDRv1_PT_GTP = (1<<4) +GTP_HDRv1_VER_GTP1 = (1<<5) + +def gen_gtpc_v1_hdr(flags, type, length, tei, seq=0, npdu=0, next=0): + spare = 0 + if (flags & (GTP_HDRv1_FLAG_PN|GTP_HDRv1_FLAG_S|GTP_HDRv1_FLAG_E)): + #long format + length += 4 + d = struct.pack('!BBHIHBB',flags, type, length, tei, seq, npdu, next) + else: + #short format + d = struct.pack('!BBHI',flags, type, length, tei) + return d + +def gen_gtpc_v1_echo_req(tei=0, append_flags=0, seq=0, npdu=0, next=0): + return gen_gtpc_v1_hdr(GTP_HDRv1_VER_GTP1 | GTP_HDRv1_PT_GTP | append_flags, 1, 0, tei, seq, npdu, next) + + +def tx_rx(sk, rem_addr, tx_buf, exp_rx = True): + print('Tx ECHO_REQ to %r: %r' % (repr(rem_addr), repr(tx_buf))) + sk.sendto(tx_buf, rem_addr) + if exp_rx: + rx_buf = sk.recvfrom(BUF_SIZE) + msg = "Message from Server {}".format(rx_buf) + print(msg) + +if __name__ == '__main__': + p = argparse.ArgumentParser(description='Tester for gtp-echo-recorder.') + p.add_argument('-l', '--local-address', default='127.0.0.2', help="Local GTP address") + p.add_argument('-r', '--remote-address', default='127.0.0.1', help="Remote GTP address") + args = p.parse_args() + + print('Binding socket on %r...' % repr((args.local_address, GTP1C_PORT))) + family = socket.AF_INET if type(ip_address(args.local_address)) is IPv4Address else socket.AF_INET6 + sk = socket.socket(family=family, type=socket.SOCK_DGRAM) + sk.bind((args.local_address, GTP1C_PORT)); + + rem_addr = (args.remote_address, GTP1C_PORT) + + tx_rx(sk, rem_addr, gen_gtpc_v1_echo_req()) + tx_rx(sk, rem_addr, gen_gtpc_v1_echo_req(1, GTP_HDRv1_FLAG_S, seq=67)) -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 Gerrit-Change-Number: 25652 Gerrit-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 Sep 30 17:17:45 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 17:17:45 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 to look at the new patch set (#2). Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... VTY: Don't display 'PDP Address: invalid' for IPv4v6 We were not handling the case of PDP_TYPE_N_IETF_IPv4v6 in gprs_pdpaddr2str() and showed "invalid" for these addresses. Depends: libosmocore Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 --- M include/osmocom/sgsn/gprs_sgsn.h M src/sgsn/sgsn_ctrl.c M src/sgsn/sgsn_vty.c 3 files changed, 28 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/25649/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 17:24:41 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 17:24:41 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 2: > Patch Set 1: Code-Review+1 > > Actually, this needs a "Depends: libosmocore " for the library change Looking for examples in other commits, it is not clear to me the correct format. I guess it does not matter now, as the libosmocore dependency is now merged. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 17:24: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 Thu Sep 30 17:32:22 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 17:32:22 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 to look at the new patch set (#3). Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... VTY: Don't display 'PDP Address: invalid' for IPv4v6 We were not handling the case of PDP_TYPE_N_IETF_IPv4v6 in gprs_pdpaddr2str() and showed "invalid" for these addresses. Depends: libosmocore Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 --- M include/osmocom/sgsn/gprs_sgsn.h M src/sgsn/sgsn_ctrl.c M src/sgsn/sgsn_vty.c 3 files changed, 26 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/25649/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 17:32:37 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 17:32:37 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c File src/sgsn/sgsn_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c at 164 PS1, Line 164: strcpy(str, "IPv4 "); > if (return_ipv6) { [?] I assume what you don't want here are the unused calls to strcpy/inet_ntop. I'm doing it without the else, I think it's OK. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 3 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 17:32:37 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:03:22 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 18:03:22 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 to look at the new patch set (#4). Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... VTY: Don't display 'PDP Address: invalid' for IPv4v6 We were not handling the case of PDP_TYPE_N_IETF_IPv4v6 in gprs_pdpaddr2str() and showed "invalid" for these addresses. Depends: libosmocore Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 --- M include/osmocom/sgsn/gprs_sgsn.h M src/sgsn/sgsn_ctrl.c M src/sgsn/sgsn_vty.c 3 files changed, 26 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/25649/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 4 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:07:28 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:07:28 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c File src/sgsn/sgsn_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c at 164 PS1, Line 164: strcpy(str, "IPv4 "); > I assume what you don't want here are the unused calls to strcpy/inet_ntop. [?] Hmm I thought I already explained that in a previous comment but I don't see it here, maybe I erased it without noticing. Anyway, here it is: I don't want either to spend twice the amount of static memory for no good reason. Hence why the buffer can be shared, there's no real need to have 2 buffers. So basically you leave the "str" buffer as it was before, and you simply use "str" everywhere. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 4 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 18:07:28 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: keith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:29:34 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:29:34 +0000 Subject: Change in osmo-ggsn[master]: Introduce program gtp-echo-responder In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 ) Change subject: Introduce program gtp-echo-responder ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 Gerrit-Change-Number: 25652 Gerrit-PatchSet: 3 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 30 Sep 2021 18:29:34 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:33:43 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 18:33:43 +0000 Subject: Change in libosmocore[master]: refactor stat_item: get rid of FIFO and "skipped" error In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25464 ) Change subject: refactor stat_item: get rid of FIFO and "skipped" error ...................................................................... refactor stat_item: get rid of FIFO and "skipped" error Intead of attempting to store all distinct values of a reporting period, just store min, max, last as well as a sum and N of each reporting period. This gets rid of error messages like DLSTATS ERROR stat_item.c:285 num_bts:oml_connected: 44 stats values skipped while at the same time more accurately reporting the max value for each reporting period. (So far stats_item only reports the max value; keep that part unchanged, as shown in stats_test.c.) With the other so far unused values (min, sum), we are ready to also report the minimum value as well as an average value per reporting period in the future, if/when our stats reporter allows for it. Store the complete record of the previous reporting period. So far we only compare the 'max' value, but like this we are ready to also see changes in min, last and average value between reporting periods. This patch breaks API by removing: - struct members osmo_stats_item.stats_next_id, .last_offs and .values[] - struct osmo_stats_item_value - osmo_stat_item_get_next() - osmo_stat_item_discard() - osmo_stat_item_discard_all() and by making struct osmo_stats_item opaque. In libosmocore, we do have a policy of never breaking API. But since the above should never be accessed by users of the osmo_stats_item API -- or if they are, would no longer yield useful results, we decided to make an exception in this case. The alternative would be to introduce a new osmo_stats_item2 API and maintaining an unused legacy osmo_stats_item forever, but we decided that the effort is not worth it. There are no known users of the removed items. Related: SYS#5542 Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b --- M TODO-RELEASE M include/osmocom/core/stat_item.h M src/Makefile.am M src/stat_item.c A src/stat_item_internal.h M src/stats.c M src/vty/stats_vty.c M src/vty/utils.c M tests/Makefile.am M tests/stats/stats_test.c M tests/stats/stats_test.err 11 files changed, 364 insertions(+), 328 deletions(-) Approvals: laforge: Looks good to me, approved daniel: Looks good to me, but someone else must approve pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index c8966cd..0f202e3 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -15,4 +15,8 @@ libosmosim osim_card_{reset,close} New API libosmocore struct rate_ctr_group, osmo_stat_item_group_desc ABI breakage due to new struct members libosmgsm kdf functions New API -libosmocore osmo_stat_item ABI + API breakage due to new struct members +libosmocore osmo_stat_item API breakage: remove members stats_next_id, last_offs and values[], no users should exist. +libosmocore osmo_stat_item API breakage: remove functions osmo_stat_item_get_next(), osmo_stat_item_discard(), osmo_stat_item_discard_all(), no users should exist. +libosmocore osmo_stat_item_value API breakage: struct definition removed, because no known users exist / no users should exist. +libosmocore osmo_stat_item ABI breakage: struct osmo_stat_item made opaque. +libosmocore osmo_stat_item No FIFO buffer of values used anymore, the "skipped values" error is no longer possible. diff --git a/include/osmocom/core/stat_item.h b/include/osmocom/core/stat_item.h index e600ecd..7f6857c 100644 --- a/include/osmocom/core/stat_item.h +++ b/include/osmocom/core/stat_item.h @@ -14,36 +14,16 @@ #define OSMO_STAT_ITEM_NOVALUE_ID 0 #define OSMO_STAT_ITEM_NO_UNIT NULL -/*! Individual entry in value FIFO */ -struct osmo_stat_item_value { - int32_t id; /*!< identifier of value */ - int32_t value; /*!< actual value */ -}; - -/*! data we keep for each actual item */ -struct osmo_stat_item { - /*! back-reference to the item description */ - const struct osmo_stat_item_desc *desc; - /* internal use by stats API (stats.c): the id of the next value to - * be read from the FIFO. If accessing osmo_stat_item directly, without - * the stats API, store this value elsewhere. */ - int32_t stats_next_id; - /* internal use by stats API: indicate if the last value sent to - * reporters was actually the last value in the FIFO. This may not be - * the case, as always a max of 1 or more values gets sent (OS#5215) */ - bool stats_last_sent_was_max; - /*! the index of the last value written to the FIFO */ - int16_t last_offs; - /*! value FIFO */ - struct osmo_stat_item_value values[0]; -}; +/*! data we keep for each actual item. Access via API functions only. + * (This struct was made opaque after libosmocore 1.5.1)*/ +struct osmo_stat_item; /*! Statistics item description */ struct osmo_stat_item_desc { const char *name; /*!< name of the item */ const char *description;/*!< description of the item */ const char *unit; /*!< unit of a value */ - unsigned int num_values;/*!< number of values to store in FIFO */ + unsigned int num_values;/*!< DEPRECATED, this value is ignored after libosmocore version 1.5.1 */ int32_t default_value; /*!< default value */ }; @@ -102,15 +82,9 @@ const struct osmo_stat_item *osmo_stat_item_get_by_name( const struct osmo_stat_item_group *statg, const char *name); -int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, int32_t *value); +int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item); -/*! Get the last (freshest) value */ -static int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item); - -int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id); - -int osmo_stat_item_discard_all(int32_t *next_id) - OSMO_DEPRECATED("Use osmo_stat_item_discard with item-specific next_id instead"); +void osmo_stat_item_flush(struct osmo_stat_item *item); typedef int (*osmo_stat_item_handler_t)( struct osmo_stat_item_group *, struct osmo_stat_item *, void *); @@ -122,12 +96,20 @@ int osmo_stat_item_for_each_group(osmo_stat_item_group_handler_t handle_group, void *data); -static inline int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item) -{ - return item->values[item->last_offs].value; -} - void osmo_stat_item_reset(struct osmo_stat_item *item); void osmo_stat_item_group_reset(struct osmo_stat_item_group *statg); +const struct osmo_stat_item_desc *osmo_stat_item_get_desc(struct osmo_stat_item *item); + +/* DEPRECATION: up until libosmocore 1.5.1, this API also defined + * - struct osmo_stat_item_value + * - osmo_stat_item_get_next() + * - osmo_stat_item_discard() + * - osmo_stat_item_discard_all() + * Despite our principle of never breaking API compatibility, we have decided to remove these, because there are no + * known users. These items were never practically used/usable outside of libosmocore since the generic stats reporter + * (stats.c) was introduced. + * We also decided to make struct osmo_stat_item opaque to allow future changes of the struct without API breakage. + */ + /*! @} */ diff --git a/src/Makefile.am b/src/Makefile.am index 3c589e6..328d2c7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -58,7 +58,13 @@ endif BUILT_SOURCES = crc8gen.c crc16gen.c crc32gen.c crc64gen.c -EXTRA_DIST = conv_acc_sse_impl.h conv_acc_neon_impl.h crcXXgen.c.tpl + +EXTRA_DIST = \ + conv_acc_sse_impl.h \ + conv_acc_neon_impl.h \ + crcXXgen.c.tpl \ + stat_item_internal.h \ + $(NULL) libosmocore_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined diff --git a/src/stat_item.c b/src/stat_item.c index 1788746..59f5935 100644 --- a/src/stat_item.c +++ b/src/stat_item.c @@ -54,20 +54,105 @@ */ /* Struct overview: - * Each osmo_stat_item is attached to an osmo_stat_item_group, which is - * attached to the global osmo_stat_item_groups list. * - * osmo_stat_item_groups - * / \ - * group1 group2 - * / \ - * item1 item2 - * | - * values - * / \ - * 1 2 - * |-id |-id - * '-value '-value + * Group and item descriptions: + * Each group description exists once as osmo_stat_item_group_desc, + * each such group description lists N osmo_stat_item_desc, i.e. describes N stat items. + * + * Actual stats: + * The global osmo_stat_item_groups llist contains all group instances, each points at a group description. + * This list mixes all types of groups in a single llist, where each instance points at its group desc and has an index. + * There are one or more instances of each group, each storing stats for a distinct object (for example, one description + * for a BTS group, and any number of BTS instances with independent stats). A group is identified by a group index nr + * and possibly also a given name for that particular index (e.g. in osmo-mgw, a group instance is named + * "virtual-trunk-0" and can be looked up by that name instead of its more or less arbitrary group index number). + * + * Each group instance contains one osmo_stat_item instance per global stat item description. + * Each osmo_stat_item keeps track of the values for the current reporting period (min, last, max, sum, n), + * and also stores the set of values reported at the end of the previous reporting period. + * + * const osmo_stat_item_group_desc foo + * +-- group_name_prefix = "foo" + * +-- item_desc[] (array of osmo_stat_item_desc) + * +-- osmo_stat_item_desc bar + * | +-- name = "bar" + * | +-- description + * | +-- unit + * | +-- default_value + * | + * +-- osmo_stat_item_desc: baz + * +-- ... + * + * const osmo_stat_item_group_desc moo + * +-- group_name_prefix = "moo" + * +-- item_desc[] + * +-- osmo_stat_item_desc goo + * | +-- name = "goo" + * | +-- description + * | +-- unit + * | +-- default_value + * | + * +-- osmo_stat_item_desc: loo + * +-- ... + * + * osmo_stat_item_groups (llist of osmo_stat_item_group) + * | + * +-- group: foo[0] + * | +-- desc --> osmo_stat_item_group_desc foo + * | +-- idx = 0 + * | +-- name = NULL (no given name for this group instance) + * | +-- items[] + * | | + * | [0] --> osmo_stat_item instance for "bar" + * | | +-- desc --> osmo_stat_item_desc bar (see above) + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | | + * | [1] --> osmo_stat_item instance for "baz" + * | | +-- desc --> osmo_stat_item_desc baz + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | . + * | : + * | + * +-- group: foo[1] + * | +-- desc --> osmo_stat_item_group_desc foo + * | +-- idx = 1 + * | +-- name = "special-foo" (instance can be looked up by this index-name) + * | +-- items[] + * | | + * | [0] --> osmo_stat_item instance for "bar" + * | | +-- desc --> osmo_stat_item_desc bar + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | | + * | [1] --> osmo_stat_item instance for "baz" + * | | +-- desc --> osmo_stat_item_desc baz + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | . + * | : + * | + * +-- group: moo[0] + * | +-- desc --> osmo_stat_item_group_desc moo + * | +-- idx = 0 + * | +-- name = NULL + * | +-- items[] + * | | + * | [0] --> osmo_stat_item instance for "goo" + * | | +-- desc --> osmo_stat_item_desc goo + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | | + * | [1] --> osmo_stat_item instance for "loo" + * | | +-- desc --> osmo_stat_item_desc loo + * | | +-- value.{min, last, max, n, sum} + * | | +-- reported.{min, last, max, n, sum} + * | . + * | : + * . + * : + * */ #include @@ -80,6 +165,8 @@ #include #include +#include + /*! global list of stat_item groups */ static LLIST_HEAD(osmo_stat_item_groups); @@ -98,9 +185,8 @@ unsigned int idx) { unsigned int group_size; - unsigned long items_size = 0; unsigned int item_idx; - void *items; + struct osmo_stat_item *items; struct osmo_stat_item_group *group; @@ -117,46 +203,25 @@ group->desc = group_desc; group->idx = idx; - /* Get combined size of all items */ + items = talloc_array(group, struct osmo_stat_item, group_desc->num_items); + OSMO_ASSERT(items); for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { - unsigned int size; - size = sizeof(struct osmo_stat_item) + - sizeof(struct osmo_stat_item_value) * - group_desc->item_desc[item_idx].num_values; - /* Align to pointer size */ - size = (size + sizeof(void *) - 1) & ~(sizeof(void *) - 1); - - /* Store offsets into the item array */ - group->items[item_idx] = (void *)items_size; - - items_size += size; - } - - items = talloc_zero_size(group, items_size); - if (!items) { - talloc_free(group); - return NULL; - } - - /* Update item pointers */ - for (item_idx = 0; item_idx < group_desc->num_items; item_idx++) { - struct osmo_stat_item *item = (struct osmo_stat_item *) - ((uint8_t *)items + (unsigned long)group->items[item_idx]); - unsigned int i; - + struct osmo_stat_item *item = &items[item_idx]; + const struct osmo_stat_item_desc *item_desc = &group_desc->item_desc[item_idx]; group->items[item_idx] = item; - item->last_offs = group_desc->item_desc[item_idx].num_values - 1; - item->stats_next_id = 1; - item->desc = &group_desc->item_desc[item_idx]; - - for (i = 0; i <= item->last_offs; i++) { - item->values[i].value = group_desc->item_desc[item_idx].default_value; - item->values[i].id = OSMO_STAT_ITEM_NOVALUE_ID; - } + *item = (struct osmo_stat_item){ + .desc = item_desc, + .value = { + .n = 0, + .last = item_desc->default_value, + .min = item_desc->default_value, + .max = item_desc->default_value, + .sum = 0, + }, + }; } llist_add(&group->list, &osmo_stat_item_groups); - return group; } @@ -195,8 +260,7 @@ */ void osmo_stat_item_inc(struct osmo_stat_item *item, int32_t value) { - int32_t oldvalue = item->values[item->last_offs].value; - osmo_stat_item_set(item, oldvalue + value); + osmo_stat_item_set(item, item->value.last + value); } /*! Descrease the stat_item to the given value. @@ -207,8 +271,7 @@ */ void osmo_stat_item_dec(struct osmo_stat_item *item, int32_t value) { - int32_t oldvalue = item->values[item->last_offs].value; - osmo_stat_item_set(item, oldvalue - value); + osmo_stat_item_set(item, item->value.last - value); } /*! Set the a given stat_item to the given value. @@ -219,89 +282,37 @@ */ void osmo_stat_item_set(struct osmo_stat_item *item, int32_t value) { - int32_t id = item->values[item->last_offs].id + 1; - if (id == OSMO_STAT_ITEM_NOVALUE_ID) - id++; - - item->last_offs += 1; - if (item->last_offs >= item->desc->num_values) - item->last_offs = 0; - - item->values[item->last_offs].value = value; - item->values[item->last_offs].id = id; + item->value.last = value; + if (item->value.n == 0) { + /* No values recorded yet, clamp min and max to this first value. */ + item->value.min = item->value.max = value; + /* Overwrite any cruft remaining in value.sum */ + item->value.sum = value; + item->value.n = 1; + } else { + item->value.min = OSMO_MIN(item->value.min, value); + item->value.max = OSMO_MAX(item->value.max, value); + item->value.sum += value; + item->value.n++; + } } -/*! Retrieve the next value from the osmo_stat_item object. - * If a new value has been set, it is returned. The next_id is used to decide - * which value to return. - * On success, *next_id is updated to refer to the next unread value. If - * values have been missed due to FIFO overflow, *next_id is incremented by - * (1 + num_lost). - * This way, the osmo_stat_item object can be kept stateless from the reader's - * perspective and therefore be used by several backends simultaneously. - * - * \param val the osmo_stat_item object - * \param next_id identifies the next value to be read - * \param value a pointer to store the value - * \returns the increment of the index (0: no value has been read, - * 1: one value has been taken, - * (1+n): n values have been skipped, one has been taken) +/*! Indicate that a reporting period has elapsed, and prepare the stat item for a new period of collecting min/max/avg. + * \param item Stat item to flush. */ -int osmo_stat_item_get_next(const struct osmo_stat_item *item, int32_t *next_id, - int32_t *value) +void osmo_stat_item_flush(struct osmo_stat_item *item) { - const struct osmo_stat_item_value *next_value; - const struct osmo_stat_item_value *item_value = NULL; - int id_delta; - int next_offs; + item->reported = item->value; - next_offs = item->last_offs; - next_value = &item->values[next_offs]; + /* Indicate a new reporting period: no values have been received, but the previous value.last remains unchanged + * for the case that an entire period elapses without a new value appearing. */ + item->value.n = 0; + item->value.sum = 0; - while (next_value->id - *next_id >= 0 && - next_value->id != OSMO_STAT_ITEM_NOVALUE_ID) - { - item_value = next_value; - - next_offs -= 1; - if (next_offs < 0) - next_offs = item->desc->num_values - 1; - if (next_offs == item->last_offs) - break; - next_value = &item->values[next_offs]; - } - - if (!item_value) - /* All items have been read */ - return 0; - - *value = item_value->value; - - id_delta = item_value->id + 1 - *next_id; - - *next_id = item_value->id + 1; - - if (id_delta > 1) { - LOGP(DLSTATS, LOGL_ERROR, "%s: %d stats values skipped\n", item->desc->name, id_delta - 1); - } - - return id_delta; -} - -/*! Skip/discard all values of this item and update \a next_id accordingly */ -int osmo_stat_item_discard(const struct osmo_stat_item *item, int32_t *next_id) -{ - int discarded = item->values[item->last_offs].id + 1 - *next_id; - *next_id = item->values[item->last_offs].id + 1; - - return discarded; -} - -/*! Skip all values of all items and update \a next_id accordingly */ -int osmo_stat_item_discard_all(int32_t *next_id) -{ - LOGP(DLSTATS, LOGL_ERROR, "osmo_stat_item_discard_all is deprecated (no-op)\n"); - return 0; + /* Also for the case that an entire period elapses without any osmo_stat_item_set(), put the min and max to the + * last value. As soon as one osmo_stat_item_set() occurs, these are both set to the new value (when n is still + * zero from above). */ + item->value.min = item->value.max = item->value.last; } /*! Initialize the stat item module. Call this once from your program. @@ -415,21 +426,20 @@ return rc; } +/*! Get the last (freshest) value. */ +int32_t osmo_stat_item_get_last(const struct osmo_stat_item *item) +{ + return item->value.last; +} /*! Remove all values of a stat item * \param[in] item stat item to reset */ void osmo_stat_item_reset(struct osmo_stat_item *item) { - unsigned int i; - - item->last_offs = item->desc->num_values - 1; - item->stats_next_id = 1; - - for (i = 0; i <= item->last_offs; i++) { - item->values[i].value = item->desc->default_value; - item->values[i].id = OSMO_STAT_ITEM_NOVALUE_ID; - } + item->value.sum = 0; + item->value.n = 0; + item->value.last = item->value.min = item->value.max = item->desc->default_value; } /*! Reset all osmo stat items in a group @@ -444,4 +454,11 @@ osmo_stat_item_reset(item); } } + +/*! Return the description for an osmo_stat_item. */ +const struct osmo_stat_item_desc *osmo_stat_item_get_desc(struct osmo_stat_item *item) +{ + return item->desc; +} + /*! @} */ diff --git a/src/stat_item_internal.h b/src/stat_item_internal.h new file mode 100644 index 0000000..9ede8c4 --- /dev/null +++ b/src/stat_item_internal.h @@ -0,0 +1,35 @@ +/*! \file stat_item_internal.h + * internal definitions for the osmo_stat_item API */ +#pragma once + +/*! \addtogroup osmo_stat_item + * @{ + */ + +struct osmo_stat_item_period { + /*! Number of osmo_stat_item_set() that occurred during the reporting period, zero if none. */ + uint32_t n; + /*! Smallest value seen in a reporting period. */ + int32_t min; + /*! Most recent value passed to osmo_stat_item_set(), or the item->desc->default_value if none. */ + int32_t last; + /*! Largest value seen in a reporting period. */ + int32_t max; + /*! Sum of all values passed to osmo_stat_item_set() in the reporting period. */ + int64_t sum; +}; + +/*! data we keep for each actual item */ +struct osmo_stat_item { + /*! back-reference to the item description */ + const struct osmo_stat_item_desc *desc; + + /*! Current reporting period / current value. */ + struct osmo_stat_item_period value; + + /*! The results of the previous reporting period. According to these, the stats reporter decides whether to + * re-send values or omit an unchanged value from a report. */ + struct osmo_stat_item_period reported; +}; + +/*! @} */ diff --git a/src/stats.c b/src/stats.c index f06515d..5dac242 100644 --- a/src/stats.c +++ b/src/stats.c @@ -101,6 +101,8 @@ #define TRACE_ENABLED(probe) (0) #endif /* HAVE_SYSTEMTAP */ +#include + #define STATS_DEFAULT_INTERVAL 5 /* secs */ #define STATS_DEFAULT_BUFLEN 256 @@ -235,28 +237,11 @@ talloc_free(srep); } -static int osmo_stats_discard_item(struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) -{ - return osmo_stat_item_discard(item, &item->stats_next_id); -} - -static int osmo_stats_discard_group(struct osmo_stat_item_group *statg, void *sctx_) -{ - return osmo_stat_item_for_each_item(statg, &osmo_stats_discard_item, NULL); -} - -static int osmo_stats_discard_all() -{ - return osmo_stat_item_for_each_group(&osmo_stats_discard_group, NULL); -} - -/*! Initilize the stats reporting module; call this once in your program +/*! Initialize the stats reporting module; call this once in your program. * \param[in] ctx Talloc context from which stats related memory is allocated */ void osmo_stats_init(void *ctx) { osmo_stats_ctx = ctx; - osmo_stats_discard_all(); - is_initialised = 1; start_timer(); } @@ -708,43 +693,33 @@ struct osmo_stat_item_group *statg, struct osmo_stat_item *item, void *sctx_) { struct osmo_stats_reporter *srep; - int32_t value; - bool have_value; - - have_value = osmo_stat_item_get_next(item, &item->stats_next_id, &value) > 0; - if (!have_value) { - /* Send the last value in case a flush is requested */ - value = osmo_stat_item_get_last(item); - - /* Also send it in case a different max value was sent - * previously (OS#5215) */ - if (!item->stats_last_sent_was_max) - have_value = 1; - } else { - int32_t next_val; - /* If we have multiple values only send the max */ - while (osmo_stat_item_get_next(item, &item->stats_next_id, &next_val) > 0) - value = OSMO_MAX(value, next_val); - } - - item->stats_last_sent_was_max = (osmo_stat_item_get_last(item) == value); + int32_t prev_reported_value = item->reported.max; + int32_t new_value = item->value.max; llist_for_each_entry(srep, &osmo_stats_reporter_list, list) { if (!srep->running) continue; - if (!have_value && !srep->force_single_flush) + /* If no new stat values have been set in the current reporting period, skip resending the value. + * However, if the previously sent value is not the same as the current value, then do send the changed + * value (while n == 0, the last value from the previous reporting period is in item->value.max == .last + * == .min, which was put in new_value above). + * Also if the stats reporter is set to resend all values, also do resend the current value regardless + * of repetitions. + */ + if ((!item->value.n && new_value == prev_reported_value) + && !srep->force_single_flush) continue; if (!osmo_stats_reporter_check_config(srep, statg->idx, statg->desc->class_id)) continue; - osmo_stats_reporter_send_item(srep, statg, - item->desc, value); - + osmo_stats_reporter_send_item(srep, statg, item->desc, new_value); } + osmo_stat_item_flush(item); + return 0; } @@ -818,7 +793,6 @@ osmo_stat_item_for_each_group(osmo_stat_item_group_handler, NULL); /* global actions */ - osmo_stats_discard_all(); flush_all_reporters(); TRACE(LIBOSMOCORE_STATS_DONE()); diff --git a/src/vty/stats_vty.c b/src/vty/stats_vty.c index c9ae0fb..17e7190 100644 --- a/src/vty/stats_vty.c +++ b/src/vty/stats_vty.c @@ -475,10 +475,11 @@ { struct vty *vty = sctx_; - char *name = osmo_asciidoc_escape(item->desc->name); - char *description = osmo_asciidoc_escape(item->desc->description); + const struct osmo_stat_item_desc *desc = osmo_stat_item_get_desc(item); + char *name = osmo_asciidoc_escape(desc->name); + char *description = osmo_asciidoc_escape(desc->description); char *group_name_prefix = osmo_asciidoc_escape(statg->desc->group_name_prefix); - char *unit = osmo_asciidoc_escape(item->desc->unit); + char *unit = osmo_asciidoc_escape(desc->unit); /* | Name | Reference | Description | Unit | */ vty_out(vty, "| %s | <<%s_%s>> | %s | %s%s", diff --git a/src/vty/utils.c b/src/vty/utils.c index 1137f2b..4501c66 100644 --- a/src/vty/utils.c +++ b/src/vty/utils.c @@ -247,12 +247,11 @@ { struct vty_out_context *vctx = vctx_; struct vty *vty = vctx->vty; - const char *unit = - item->desc->unit != OSMO_STAT_ITEM_NO_UNIT ? - item->desc->unit : ""; + const struct osmo_stat_item_desc *desc = osmo_stat_item_get_desc(item); + const char *unit = (desc->unit != OSMO_STAT_ITEM_NO_UNIT) ? desc->unit : ""; vty_out(vty, " %s%s: %8" PRIi32 " %s%s", - vctx->prefix, item->desc->description, + vctx->prefix, desc->description, osmo_stat_item_get_last(item), unit, VTY_NEWLINE); diff --git a/tests/Makefile.am b/tests/Makefile.am index 22591fb..0880561 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -87,6 +87,7 @@ stats_stats_test_SOURCES = stats/stats_test.c stats_stats_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la +stats_stats_test_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/src a5_a5_test_SOURCES = a5/a5_test.c a5_a5_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libgsmint.la diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index 9489e60..dea2bf7 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -29,6 +29,8 @@ #include #include +#include + #include #include @@ -88,11 +90,10 @@ struct osmo_stat_item_group *sgrp2; const struct osmo_stat_item *sitem1, *sitem2; - int rc; int32_t value; - int32_t next_id_a = 1; - int32_t next_id_b = 1; int i; + int64_t sum1; + int64_t sum2; OSMO_ASSERT(statg != NULL); @@ -117,124 +118,144 @@ OSMO_ASSERT(sitem2 != sitem1); OSMO_ASSERT(sitem2 == osmo_stat_item_group_get_item(statg, TEST_B_ITEM)); + /* No value set yet, expecting default value from osmo_stat_item_desc definition above. */ value = osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); OSMO_ASSERT(value == -1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); - + /* No value set yet, expecting new value in all fields */ osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 1); - + sum1 = 1; value = osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); OSMO_ASSERT(value == 1); + OSMO_ASSERT(sitem1->value.n == 1); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 1); + OSMO_ASSERT(sitem1->value.max == 1); + OSMO_ASSERT(sitem1->value.sum == 1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); - + sum2 = 0; for (i = 2; i <= 32; i++) { osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), i); + sum1 += i; osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + i); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == i); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + i); + sum2 += 1000 + i; } + OSMO_ASSERT(sitem1->value.n == 32); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 32); + OSMO_ASSERT(sitem1->value.max == 32); + OSMO_ASSERT(sitem1->value.sum == sum1); + + OSMO_ASSERT(sitem2->value.n == 31); + OSMO_ASSERT(sitem2->value.min == 1002); + OSMO_ASSERT(sitem2->value.last == 1032); + OSMO_ASSERT(sitem2->value.max == 1032); + OSMO_ASSERT(sitem2->value.sum == sum2); /* check if dec & inc is working */ osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 42); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 42); + sum1 += 42; + OSMO_ASSERT(sitem1->value.n == 33); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 42); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 42); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == sum1); osmo_stat_item_dec(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 21); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 21); + sum1 += 42 - 21; + OSMO_ASSERT(sitem1->value.n == 34); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 21); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 21); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == sum1); osmo_stat_item_inc(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 21); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 42); + sum1 += 42; + OSMO_ASSERT(sitem1->value.n == 35); + OSMO_ASSERT(sitem1->value.min == 1); + OSMO_ASSERT(sitem1->value.last == 42); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 42); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == sum1); - /* Keep 2 in FIFO */ - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 33); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + 33); + /* Test item flush, reporting period elapsing */ + osmo_stat_item_flush(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == 42); + OSMO_ASSERT(sitem1->value.last == 42); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 42); + OSMO_ASSERT(sitem1->value.max == 42); + OSMO_ASSERT(sitem1->value.sum == 0); - for (i = 34; i <= 64; i++) { - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), i); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + i); + /* Still see the previous reporting period in reported.* */ + OSMO_ASSERT(sitem1->reported.n == 35); + OSMO_ASSERT(sitem1->reported.min == 1); + OSMO_ASSERT(sitem1->reported.last == 42); + OSMO_ASSERT(sitem1->reported.max == 42); + OSMO_ASSERT(sitem1->reported.sum == sum1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == i-1); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + i-1); - } - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 64); - - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + 64); - - /* Overrun FIFOs */ - for (i = 65; i <= 96; i++) { - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), i); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), 1000 + i); - } - - fprintf(stderr, "Skipping %d values\n", 93 - 65); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 93 - 65 + 1); - OSMO_ASSERT(value == 93); - - for (i = 94; i <= 96; i++) { - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == i); - } - - fprintf(stderr, "Skipping %d values\n", 90 - 65); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 90 - 65 + 1); - OSMO_ASSERT(value == 1000 + 90); - - for (i = 91; i <= 96; i++) { - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_B_ITEM), &next_id_b, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 1000 + i); - } - - /* Test Discard (single item) */ + /* After a flush, the first item replaces the last, min and max */ osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 97); - rc = osmo_stat_item_discard(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a); - OSMO_ASSERT(rc == 1); + OSMO_ASSERT(sitem1->value.n == 1); + OSMO_ASSERT(sitem1->value.min == 97); + OSMO_ASSERT(sitem1->value.last == 97); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 97); + OSMO_ASSERT(sitem1->value.max == 97); + OSMO_ASSERT(sitem1->value.sum == 97); - rc = osmo_stat_item_discard(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a); - OSMO_ASSERT(rc == 0); + /* ...and still see the previous reporting period in reported.* */ + OSMO_ASSERT(sitem1->reported.n == 35); + OSMO_ASSERT(sitem1->reported.min == 1); + OSMO_ASSERT(sitem1->reported.last == 42); + OSMO_ASSERT(sitem1->reported.max == 42); + OSMO_ASSERT(sitem1->reported.sum == sum1); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); + /* If an entire reporting period elapses without a new value, the last seen value remains. */ + osmo_stat_item_flush(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); + osmo_stat_item_flush(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == 97); + OSMO_ASSERT(sitem1->value.last == 97); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 97); + OSMO_ASSERT(sitem1->value.max == 97); + OSMO_ASSERT(sitem1->value.sum == 0); - osmo_stat_item_set(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), 98); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 1); - OSMO_ASSERT(value == 98); + /* now the previous reporting period got turned around */ + OSMO_ASSERT(sitem1->reported.n == 0); + OSMO_ASSERT(sitem1->reported.min == 97); + OSMO_ASSERT(sitem1->reported.last == 97); + OSMO_ASSERT(sitem1->reported.max == 97); + OSMO_ASSERT(sitem1->reported.sum == 0); - rc = osmo_stat_item_get_next(osmo_stat_item_group_get_item(statg, TEST_A_ITEM), &next_id_a, &value); - OSMO_ASSERT(rc == 0); + /* Another empty reporting period, everything remained the same. */ + osmo_stat_item_flush(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == 97); + OSMO_ASSERT(sitem1->value.last == 97); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == 97); + OSMO_ASSERT(sitem1->value.max == 97); + OSMO_ASSERT(sitem1->value.sum == 0); + OSMO_ASSERT(sitem1->reported.n == 0); + OSMO_ASSERT(sitem1->reported.min == 97); + OSMO_ASSERT(sitem1->reported.last == 97); + OSMO_ASSERT(sitem1->reported.max == 97); + OSMO_ASSERT(sitem1->reported.sum == 0); + + /* Test Reset, place back to default value. The previously reported value remains the same. */ + osmo_stat_item_reset(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)); + OSMO_ASSERT(sitem1->value.n == 0); + OSMO_ASSERT(sitem1->value.min == -1); + OSMO_ASSERT(sitem1->value.last == -1); + OSMO_ASSERT(osmo_stat_item_get_last(osmo_stat_item_group_get_item(statg, TEST_A_ITEM)) == -1); + OSMO_ASSERT(sitem1->value.max == -1); + OSMO_ASSERT(sitem1->value.sum == 0); + OSMO_ASSERT(sitem1->reported.n == 0); + OSMO_ASSERT(sitem1->reported.min == 97); + OSMO_ASSERT(sitem1->reported.last == 97); + OSMO_ASSERT(sitem1->reported.max == 97); + OSMO_ASSERT(sitem1->reported.sum == 0); osmo_stat_item_group_free(statg); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index 92d6ce1..a890e0f 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -1,7 +1,3 @@ -Skipping 28 values -DLSTATS ERROR item.a: 28 stats values skipped -Skipping 25 values -DLSTATS ERROR item.b: 25 stats values skipped Start test: test_reporting DLGLOBAL ERROR counter group 'ctr-test:one' already exists for index 2, instead using index 3. This is a software bug that needs fixing. DLGLOBAL ERROR 'ctr-test.one_dot' is not a valid counter group identifier -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I137992a5479fc39bbceb6c6c2af9c227bd33b39b Gerrit-Change-Number: 25464 Gerrit-PatchSet: 7 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Reviewer: laforge Gerrit-Reviewer: neels Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:33:43 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 18:33:43 +0000 Subject: Change in libosmocore[master]: refactor stat_item: report only changed values In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25465 ) Change subject: refactor stat_item: report only changed values ...................................................................... refactor stat_item: report only changed values Change the functionality of skipping unchanged values: instead of looking up whether new values have been set on a stat item, rather remember the last reported value and skip reporting identical values. stats_test.c shows that previously, a stat item reported a value of 10 again, even though the previous report had already sent a value of 10. That's just because the value 10 was explicitly set again, internally. >From a perspective of preserving all data points, it could make sense to send consecutive identical values. But since we already collapse all data points per reporting period into a max, that is pointless. Related: SYS#5542 Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b --- M TODO-RELEASE M src/stats.c M tests/stats/stats_test.c M tests/stats/stats_test.err 4 files changed, 9 insertions(+), 14 deletions(-) Approvals: laforge: Looks good to me, but someone else must approve neels: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/TODO-RELEASE b/TODO-RELEASE index 0f202e3..ead2c50 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -20,3 +20,4 @@ libosmocore osmo_stat_item_value API breakage: struct definition removed, because no known users exist / no users should exist. libosmocore osmo_stat_item ABI breakage: struct osmo_stat_item made opaque. libosmocore osmo_stat_item No FIFO buffer of values used anymore, the "skipped values" error is no longer possible. +libosmocore stats reporting for osmo_stat_item, values are now never repeated from one stats report to the next. diff --git a/src/stats.c b/src/stats.c index 5dac242..28a3ab3 100644 --- a/src/stats.c +++ b/src/stats.c @@ -700,15 +700,11 @@ if (!srep->running) continue; - /* If no new stat values have been set in the current reporting period, skip resending the value. - * However, if the previously sent value is not the same as the current value, then do send the changed - * value (while n == 0, the last value from the previous reporting period is in item->value.max == .last - * == .min, which was put in new_value above). - * Also if the stats reporter is set to resend all values, also do resend the current value regardless - * of repetitions. + /* If the previously reported value is the same as the current value, skip resending the value. + * However, if the stats reporter is set to resend all values, do resend the current value regardless of + * repetitions. */ - if ((!item->value.n && new_value == prev_reported_value) - && !srep->force_single_flush) + if (new_value == prev_reported_value && !srep->force_single_flush) continue; if (!osmo_stats_reporter_check_config(srep, diff --git a/tests/stats/stats_test.c b/tests/stats/stats_test.c index dea2bf7..3aa1f52 100644 --- a/tests/stats/stats_test.c +++ b/tests/stats/stats_test.c @@ -443,10 +443,10 @@ osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); do_report(0, 2); - fprintf(stderr, "report (group 1, item 1 update twice):\n"); + fprintf(stderr, "report (group 1, item 1 update twice, with same value):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 10); - do_report(0, 2); + do_report(0, 0); fprintf(stderr, "report (group 1, item 1 update twice, check max):\n"); osmo_stat_item_set(osmo_stat_item_group_get_item(statg1, TEST_A_ITEM), 20); diff --git a/tests/stats/stats_test.err b/tests/stats/stats_test.err index a890e0f..1e604d1 100644 --- a/tests/stats/stats_test.err +++ b/tests/stats/stats_test.err @@ -114,10 +114,8 @@ test2: item p= g=test.one i=1 n=item.a v=10 u=ma test1: item p= g=test.one i=1 n=item.a v=10 u=ma reported: 0 counter vals, 2 stat item vals -report (group 1, item 1 update twice): - test2: item p= g=test.one i=1 n=item.a v=10 u=ma - test1: item p= g=test.one i=1 n=item.a v=10 u=ma -reported: 0 counter vals, 2 stat item vals +report (group 1, item 1 update twice, with same value): +reported: 0 counter vals, 0 stat item vals report (group 1, item 1 update twice, check max): test2: item p= g=test.one i=1 n=item.a v=20 u=ma test1: item p= g=test.one i=1 n=item.a v=20 u=ma -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I8f4cf34dfed17e0879716fa2cbeee137c158978b Gerrit-Change-Number: 25465 Gerrit-PatchSet: 7 Gerrit-Owner: neels 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 Thu Sep 30 18:33:44 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 18:33:44 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings In-Reply-To: References: Message-ID: neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... cosmetic: get rid of 3 deprecation warnings Some deprecated functions are still used in libosmocore .c code. Use OSMO_DEPRECATED_OUTSIDE() to get rid of those "resident warnings". Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a --- M include/osmocom/core/counter.h M include/osmocom/gsm/ipa.h M include/osmocom/gsm/lapdm.h 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved fixeria: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/core/counter.h b/include/osmocom/core/counter.h index dc62791..0d56bc4 100644 --- a/include/osmocom/core/counter.h +++ b/include/osmocom/core/counter.h @@ -31,7 +31,7 @@ } /*! Get current value of counter */ -OSMO_DEPRECATED("Implement as osmo_stat_item instead") +OSMO_DEPRECATED_OUTSIDE("Implement as osmo_stat_item instead") static inline unsigned long osmo_counter_get(struct osmo_counter *ctr) { return ctr->value; diff --git a/include/osmocom/gsm/ipa.h b/include/osmocom/gsm/ipa.h index 93cb1bf..851b58e 100644 --- a/include/osmocom/gsm/ipa.h +++ b/include/osmocom/gsm/ipa.h @@ -29,7 +29,7 @@ int ipa_ccm_idtag_parse(struct tlv_parsed *dec, unsigned char *buf, int len) OSMO_DEPRECATED("Use ipa_ccm_id_{get,resp}_parse instead"); int ipa_ccm_idtag_parse_off(struct tlv_parsed *dec, unsigned char *buf, int len, const int len_offset) - OSMO_DEPRECATED("Use ipa_ccm_id_{get,resp}_parse instead"); + OSMO_DEPRECATED_OUTSIDE("Use ipa_ccm_id_{get,resp}_parse instead"); /* parse payload of IPA CCM ID GET into a osmocom TLV style representation */ int ipa_ccm_id_get_parse(struct tlv_parsed *dec, const uint8_t *buf, unsigned int len); diff --git a/include/osmocom/gsm/lapdm.h b/include/osmocom/gsm/lapdm.h index 633df1a..0e99743 100644 --- a/include/osmocom/gsm/lapdm.h +++ b/include/osmocom/gsm/lapdm.h @@ -90,7 +90,7 @@ 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_init3() instead"); + OSMO_DEPRECATED_OUTSIDE("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, -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 Gerrit-PatchSet: 2 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 Thu Sep 30 18:35:07 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 18:35:07 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... Patch Set 2: > Patch Set 1: > > Shouldn't those be migrated to new APIs then? maybe, i doubt it though; but it's certainly not useful to get compilation warnings constantly if no-one bothered to fix libosmocore callers when deprecating that API... -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 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: Thu, 30 Sep 2021 18:35:07 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:36:06 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:36:06 +0000 Subject: Change in osmo-ggsn[master]: Introduce program gtp-echo-responder In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 to look at the new patch set (#4). Change subject: Introduce program gtp-echo-responder ...................................................................... Introduce program gtp-echo-responder This is a small standalone program (under MIT license, hence cannot make use of libosmocore) whose only purpose is to answer GTPC (v1 and v2) Echo Request messages with Echo Reply ones, with information provided from the command line. A small python script companion is provided to easily test the program. Related: SYS#5598 Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 --- M Makefile.am M configure.ac M contrib/osmo-ggsn.spec.in M debian/control M debian/copyright A debian/gtp-echo-responder.install A utils/Makefile.am A utils/gtp_echo_responder.c A utils/gtp_echo_responder_test.py 9 files changed, 621 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/52/25652/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 Gerrit-Change-Number: 25652 Gerrit-PatchSet: 4 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:37:17 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:37:17 +0000 Subject: Change in libosmocore[master]: cosmetic: get rid of 3 deprecation warnings In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/25641 ) Change subject: cosmetic: get rid of 3 deprecation warnings ...................................................................... Patch Set 2: So IIUC we are hiding the issue here then. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/25641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: I6e79acc87be37ac1aaec900e737e41450b46826a Gerrit-Change-Number: 25641 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: Thu, 30 Sep 2021 18:37: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 Sep 30 18:38:58 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:38:58 +0000 Subject: Change in osmo-ggsn[master]: Introduce program gtp-echo-responder In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 to look at the new patch set (#5). Change subject: Introduce program gtp-echo-responder ...................................................................... Introduce program gtp-echo-responder This is a small standalone program (under MIT license, hence cannot make use of libosmocore) whose only purpose is to answer GTPC (v1 and v2) Echo Request messages with Echo Reply ones, with information provided from the command line. A small python script companion is provided to easily test the program. Related: SYS#5598 Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 --- M Makefile.am M configure.ac M contrib/osmo-ggsn.spec.in M debian/control M debian/copyright A debian/gtp-echo-responder.install A utils/Makefile.am A utils/gtp_echo_responder.c A utils/gtp_echo_responder_test.py 9 files changed, 619 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/52/25652/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 Gerrit-Change-Number: 25652 Gerrit-PatchSet: 5 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:44:33 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 18:44:33 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:rsl_connected In-Reply-To: References: Message-ID: neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25507 ) Change subject: stat: add bts.N.num_trx:rsl_connected ...................................................................... Patch Set 3: @osmith, maybe another thing that the linter shouldn't care about? anyone having an opinion to the contrary? -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 Gerrit-Change-Number: 25507 Gerrit-PatchSet: 3 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 18:44:33 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:46:00 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 18:46:00 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: Hello Jenkins Builder, laforge, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 to look at the new patch set (#5). Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... VTY: Don't display 'PDP Address: invalid' for IPv4v6 We were not handling the case of PDP_TYPE_N_IETF_IPv4v6 in gprs_pdpaddr2str() and showed "invalid" for these addresses. Depends: libosmocore Change-Id: I1f82f9d8fc13dcc4474760329bd74ae9685b9031 Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 --- M include/osmocom/sgsn/gprs_sgsn.h M src/sgsn/sgsn_ctrl.c M src/sgsn/sgsn_vty.c 3 files changed, 24 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/49/25649/5 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:46:10 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 18:46:10 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c File src/sgsn/sgsn_vty.c: https://gerrit.osmocom.org/c/osmo-sgsn/+/25649/1/src/sgsn/sgsn_vty.c at 164 PS1, Line 164: strcpy(str, "IPv4 "); > Hmm I thought I already explained that in a previous comment but I don't see it here, maybe I erased [?] Ah yeah. right. Of course, the two buffers were from when I considering concat-ing the two strings and returning that. of course the way it turned out, it's not needed. doh. -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-CC: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 18:46:10 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: keith Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:47:40 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 18:47:40 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:total In-Reply-To: References: Message-ID: Hello Jenkins Builder, pespin, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 to look at the new patch set (#4). Change subject: stat: add bts.N.num_trx:total ...................................................................... stat: add bts.N.num_trx:total This is similar to bsc.0.num_trx:total but per single BTS. Related: SYS#5542 Related: I5be1cb470930354c4561cbed301bc50a32484ed9 (osmo-ttcn3-hacks) Depends: I137992a5479fc39bbceb6c6c2af9c227bd33b39b (libosmocore) Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 --- M TODO-RELEASE M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts.c 4 files changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/06/25506/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I283d38e7a8c032e274a5bd2fa150ec2c9a7157b4 Gerrit-Change-Number: 25506 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: pespin Gerrit-CC: fixeria Gerrit-CC: osmith Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:47:55 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:47:55 +0000 Subject: Change in osmo-ggsn[master]: Introduce program gtp-echo-responder In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 to look at the new patch set (#6). Change subject: Introduce program gtp-echo-responder ...................................................................... Introduce program gtp-echo-responder This is a small standalone program (under MIT license, hence cannot make use of libosmocore) whose only purpose is to answer GTPC (v1 and v2) Echo Request messages with Echo Reply ones, with information provided from the command line. A small python script companion is provided to easily test the program. Related: SYS#5598 Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 --- M Makefile.am M configure.ac M contrib/osmo-ggsn.spec.in M debian/control M debian/copyright A debian/gtp-echo-responder.install A utils/Makefile.am A utils/gtp_echo_responder.c A utils/gtp_echo_responder_test.py 9 files changed, 618 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/52/25652/6 -- To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/25652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-Change-Id: Ibdd6d8f6920571db0c60cf8b3b25d541b15ad3f1 Gerrit-Change-Number: 25652 Gerrit-PatchSet: 6 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 18:49:26 2021 From: gerrit-no-reply at lists.osmocom.org (pespin) Date: Thu, 30 Sep 2021 18:49:26 +0000 Subject: Change in osmo-sgsn[master]: VTY: Don't display 'PDP Address: invalid' for IPv4v6 In-Reply-To: References: Message-ID: pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 ) Change subject: VTY: Don't display 'PDP Address: invalid' for IPv4v6 ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/c/osmo-sgsn/+/25649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-Change-Id: Id36b7520677e4a0af40d05dc503b26d1b0b74a26 Gerrit-Change-Number: 25649 Gerrit-PatchSet: 5 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 18:49:26 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 19:28:23 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 19:28:23 +0000 Subject: Change in osmo-msc[master]: smpp: Fix help string in vty for "alert-notifications" In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/25603 ) Change subject: smpp: Fix help string in vty for "alert-notifications" ...................................................................... smpp: Fix help string in vty for "alert-notifications" Without the 'no' prefix, this command is about enabling, not disabling Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 --- M src/libmsc/smpp_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve diff --git a/src/libmsc/smpp_vty.c b/src/libmsc/smpp_vty.c index 9026f6c..31e2090 100644 --- a/src/libmsc/smpp_vty.c +++ b/src/libmsc/smpp_vty.c @@ -501,7 +501,7 @@ DEFUN(cfg_esme_alert_notif, cfg_esme_alert_notif_cmd, "alert-notifications", - "Disable sending of SMPP Alert Notifications for this ESME") + "Enable sending of SMPP Alert Notifications for this ESME") { struct osmo_smpp_acl *acl = vty->index; -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/25603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I3019a0d9271e73030b9d7cd555761e17358ec812 Gerrit-Change-Number: 25603 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 Sep 30 19:29:19 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 19:29:19 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix dsp-trace-flags In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix dsp-trace-flags ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 19:29: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 Sep 30 19:29:45 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 19:29:45 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix show dsp-trace-flags In-Reply-To: References: Message-ID: laforge has uploaded a new patch set (#2) to the change originally created by Hoernchen. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix show dsp-trace-flags ...................................................................... lc15, oc2g, sysmo: fix show dsp-trace-flags This was colliding with the global "show trx" command introduced a few years ago, and prevented both command from working. Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Related: OS#5080 --- M src/osmo-bts-lc15/lc15bts_vty.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-sysmo/sysmobts_vty.c 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/18/25618/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen 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 Sep 30 19:29:57 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 19:29:57 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix show dsp-trace-flags In-Reply-To: References: Message-ID: laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix show dsp-trace-flags ...................................................................... Patch Set 2: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 Gerrit-PatchSet: 2 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-Comment-Date: Thu, 30 Sep 2021 19:29: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 Sep 30 19:30:00 2021 From: gerrit-no-reply at lists.osmocom.org (laforge) Date: Thu, 30 Sep 2021 19:30:00 +0000 Subject: Change in osmo-bts[master]: lc15, oc2g, sysmo: fix show dsp-trace-flags In-Reply-To: References: Message-ID: laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/25618 ) Change subject: lc15, oc2g, sysmo: fix show dsp-trace-flags ...................................................................... lc15, oc2g, sysmo: fix show dsp-trace-flags This was colliding with the global "show trx" command introduced a few years ago, and prevented both command from working. Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Related: OS#5080 --- M src/osmo-bts-lc15/lc15bts_vty.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-sysmo/sysmobts_vty.c 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: laforge: Looks good to me, approved; Verified Jenkins Builder: Verified diff --git a/src/osmo-bts-lc15/lc15bts_vty.c b/src/osmo-bts-lc15/lc15bts_vty.c index be6a4f8..5efbfcc 100644 --- a/src/osmo-bts-lc15/lc15bts_vty.c +++ b/src/osmo-bts-lc15/lc15bts_vty.c @@ -140,7 +140,7 @@ /* runtime */ DEFUN(show_dsp_trace_f, show_dsp_trace_f_cmd, - "show trx <0-0> dsp-trace-flags", + "show dsp-trace-flags trx <0-0>", SHOW_TRX_STR "Display the current setting of the DSP trace flags") { int trx_nr = atoi(argv[0]); diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index d69225a..ae7cd12 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -133,7 +133,7 @@ /* runtime */ DEFUN(show_dsp_trace_f, show_dsp_trace_f_cmd, - "show trx <0-0> dsp-trace-flags", + "show dsp-trace-flags trx <0-0>", SHOW_TRX_STR "Display the current setting of the DSP trace flags") { int trx_nr = atoi(argv[0]); diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index a8e7401..2e85335 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -226,7 +226,7 @@ } DEFUN(show_dsp_trace_f, show_dsp_trace_f_cmd, - "show trx <0-0> dsp-trace-flags", + "show dsp-trace-flags trx <0-0>", SHOW_TRX_STR "Display the current setting of the DSP trace flags") { int trx_nr = atoi(argv[0]); -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I57f9515292f7bd906599e2cc277542bfaf3b657b Gerrit-Change-Number: 25618 Gerrit-PatchSet: 3 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge Gerrit-Reviewer: pespin Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 19:47:18 2021 From: gerrit-no-reply at lists.osmocom.org (neels) Date: Thu, 30 Sep 2021 19:47:18 +0000 Subject: Change in osmo-bsc[master]: stat: add bts.N.num_trx:rsl_connected 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/+/25507 to look at the new patch set (#4). Change subject: stat: add bts.N.num_trx:rsl_connected ...................................................................... stat: add bts.N.num_trx:rsl_connected Controversy: this duplicates bts.N.rsl_connected. I would like to add this duplication for consistency, since we now have these counters: bsc.0.num_trx:rsl_connected bsc.0.num_trx:total bts.N.num_trx:total and the old bts.N.rsl_connected which does not fit well with above naming scheme. Any user will be justified to expect a stat named bts.N.num_trx:rsl_connected as well. Determine bts.N.num_trx:rsl_connected in the new function bsc_update_connection_stats(), where the other num_trx:* are set. Related: SYS#5542 Related: I5be1cb470930354c4561cbed301bc50a32484ed9 (osmo-ttcn3-hacks) Depends: I137992a5479fc39bbceb6c6c2af9c227bd33b39b (libosmocore) Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bsc_stats.c M src/osmo-bsc/bts.c 3 files changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/07/25507/4 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I55b55159fe13d937e441d8c2ed915734463e1154 Gerrit-Change-Number: 25507 Gerrit-PatchSet: 4 Gerrit-Owner: neels Gerrit-Reviewer: Jenkins Builder Gerrit-CC: pespin Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 23:36:16 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 23:36:16 +0000 Subject: Change in osmo-bsc[master]: Add vty command to manually force MS Uplink Power References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25653 ) Change subject: Add vty command to manually force MS Uplink Power ...................................................................... Add vty command to manually force MS Uplink Power Change-Id: Ie2642299ea696358db5822571f1f722b5e8f76b9 --- M src/osmo-bsc/bsc_vty.c 1 file changed, 27 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/53/25653/1 diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 5ccd784..8977a08 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1884,6 +1884,32 @@ return CMD_SUCCESS; } +DEFUN(lchan_set_mspower, lchan_set_mspower_cmd, + "bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> ms-power <5-40>\n", + BTS_NR_TRX_TS_SS_STR2 + "Manually force MS Uplink Power Level in dBm on the lchan (for testing)\n") +{ + struct gsm_bts_trx_ts *ts; + struct gsm_lchan *lchan; + int ss_nr = atoi(argv[3]); + ts = vty_get_ts(vty, argv[0], argv[1], argv[2]); + if (!ts) + return CMD_WARNING; + + if (ss_nr >= ts->max_primary_lchans) { + vty_out(vty, "%% Invalid sub-slot number for this timeslot type%s", VTY_NEWLINE); + return CMD_WARNING; + } + + lchan = &ts->lchan[ss_nr]; + if (!lchan->fi) + return CMD_WARNING; + + lchan->ms_power = ms_pwr_ctl_lvl(ts->trx->bts->band, atoi(argv[4])); + rsl_chan_ms_power_ctrl(lchan); + return CMD_SUCCESS; +} + DEFUN(vamos_modify_lchan, vamos_modify_lchan_cmd, "bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> modify (vamos|non-vamos) " TSC_ARGS_OPT, BTS_NR_TRX_TS_SS_STR2 @@ -3402,6 +3428,7 @@ install_element(ENABLE_NODE, &lchan_mdcx_cmd); install_element(ENABLE_NODE, &lchan_set_borken_cmd); install_element(ENABLE_NODE, &lchan_reassign_cmd); + install_element(ENABLE_NODE, &lchan_set_mspower_cmd); install_element(ENABLE_NODE, &handover_subscr_conn_cmd); install_element(ENABLE_NODE, &assignment_subscr_conn_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie2642299ea696358db5822571f1f722b5e8f76b9 Gerrit-Change-Number: 25653 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 23:36:17 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 23:36:17 +0000 Subject: Change in osmo-bsc[master]: Implement MS Uplink Power Control Loop. References: Message-ID: keith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25654 ) Change subject: Implement MS Uplink Power Control Loop. ...................................................................... Implement MS Uplink Power Control Loop. * Adds vty option dyn-bsc for ms-power-control -> mode * Imports power_control.c from osmo-bts project. * Removes unused C/I code from power_control. This patch then calls the power loop on receipt of measurement reports and updates the MS Power Level accordingly. Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e --- M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/power_control.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/osmo_bsc_main.c A src/osmo-bsc/power_control.c 9 files changed, 330 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/25654/1 diff --git a/include/osmocom/bsc/debug.h b/include/osmocom/bsc/debug.h index 4ad61b4..a3cad68 100644 --- a/include/osmocom/bsc/debug.h +++ b/include/osmocom/bsc/debug.h @@ -29,6 +29,7 @@ DCBS, DLCS, DRESET, + DLOOP, Debug_LastEntry, }; diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 03f210f..f86503b 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -665,6 +665,19 @@ #define INTERF_DBM_UNKNOWN 0 #define INTERF_BAND_UNKNOWN 0xff +/* Measurement pre-processing state */ +struct gsm_power_ctrl_meas_proc_state { + /* Number of measurements processed */ + unsigned int meas_num; + /* Algorithm specific data */ + union { + struct { + /* Scaled up 100 times average value */ + int Avg100; + } ewma; + }; +}; + struct gsm_lchan { /* The TS that we're part of */ struct gsm_bts_trx_ts *ts; @@ -808,6 +821,10 @@ /* Actual reported interference band index, or INTERF_BAND_UNKNOWN if this lchan was not included in the most * recent Resource Indication. */ uint8_t interf_band; + + struct gsm_power_ctrl_meas_proc_state rxlev_meas_proc; + /* Number of SACCH blocks to skip in Power Loop */ + int skip_block_num; }; /* One Timeslot in a TRX */ @@ -1330,6 +1347,9 @@ GSM_PWR_CTRL_MODE_STATIC, /* Send MS/BS Power [Parameters] IEs (dynamic mode) */ GSM_PWR_CTRL_MODE_DYN_BTS, + /* Do not send MS/BS Power IEs and use BSC Power Loop */ + GSM_PWR_CTRL_MODE_DYN_BSC, + }; /* MS/BS Power Control Parameters */ diff --git a/include/osmocom/bsc/power_control.h b/include/osmocom/bsc/power_control.h new file mode 100644 index 0000000..d43b48e --- /dev/null +++ b/include/osmocom/bsc/power_control.h @@ -0,0 +1,7 @@ +#pragma once + +#include +#include +#include + +int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, struct gsm_meas_rep *mr); diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index 8991697..19af569 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -106,6 +106,7 @@ smscb.c \ cbch_scheduler.c \ cbsp_link.c \ + power_control.c \ $(NULL) libbsc_la_LIBADD = \ diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index fb8e386..bdf32bd 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -55,6 +55,7 @@ #include #include #include +#include static void send_lchan_signal(int sig_no, struct gsm_lchan *lchan, struct gsm_meas_rep *resp) @@ -1339,6 +1340,8 @@ LOGP(DRSL, LOGL_DEBUG, "%s: meas_rep_count++=%d meas_rep_last_seen_nr=%u\n", gsm_lchan_name(mr->lchan), mr->lchan->meas_rep_count, mr->lchan->meas_rep_last_seen_nr); + lchan_ms_pwr_ctrl(msg->lchan, mr); + print_meas_rep(msg->lchan, mr); send_lchan_signal(S_LCHAN_MEAS_REP, msg->lchan, mr); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 8977a08..4775ff6 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1356,6 +1356,12 @@ return CMD_WARNING; } + if (bts->ms_power_ctrl.mode == GSM_PWR_CTRL_MODE_DYN_BSC) { + vty_out(vty, "%% Not Sending default MS/BS Power control parameters " + "because BTS%d is using dyn-bsc mode%s", bts_nr, VTY_NEWLINE); + return CMD_WARNING; + } + if (bts->model->power_ctrl_send_def_params == NULL) { vty_out(vty, "%% Sending default MS/BS Power control parameters " "for BTS%d is not implemented%s", bts_nr, VTY_NEWLINE); diff --git a/src/osmo-bsc/bts_vty.c b/src/osmo-bsc/bts_vty.c index fb11520..460e14a 100644 --- a/src/osmo-bsc/bts_vty.c +++ b/src/osmo-bsc/bts_vty.c @@ -2915,10 +2915,11 @@ DEFUN_USRATTR(cfg_power_ctrl_mode, cfg_power_ctrl_mode_cmd, X(BSC_VTY_ATTR_NEW_LCHAN), - "mode (static|dyn-bts) [reset]", + "mode (static|dyn-bts|dyn-bsc) [reset]", "Power control mode\n" "Instruct the MS/BTS to use a static power level\n" "Power control to be performed dynamically by the BTS itself\n" + "Power control to be performed dynamically at this BSC\n" "Reset to default parameters for the given mode\n") { struct gsm_power_ctrl_params *params = vty->index; @@ -2935,6 +2936,13 @@ params->mode = GSM_PWR_CTRL_MODE_STATIC; else if (strcmp(argv[0], "dyn-bts") == 0) params->mode = GSM_PWR_CTRL_MODE_DYN_BTS; + else if (strcmp(argv[0], "dyn-bsc") == 0) { + if (params->dir == GSM_PWR_CTRL_DIR_DL) { + vty_out(vty, "%% mode dyn-bsc not supported for Downlink.%s", VTY_NEWLINE); + return CMD_WARNING; + } + params->mode = GSM_PWR_CTRL_MODE_DYN_BSC; + } return CMD_SUCCESS; } @@ -3139,6 +3147,11 @@ int upper = atoi(argv[2]); struct gsm_power_ctrl_meas_params *meas_params; + if (params->mode == GSM_PWR_CTRL_MODE_DYN_BSC) { + vty_out(vty, "%% C/I based power loop not possible in dyn-bsc mode!%s", VTY_NEWLINE); + return CMD_WARNING; + } + if (params->dir != GSM_PWR_CTRL_DIR_UL) { vty_out(vty, "%% C/I based power loop only possible in Uplink!%s", VTY_NEWLINE); return CMD_WARNING; @@ -3962,8 +3975,10 @@ cfg_out(" bs-power static %u%s", cp->bs_power_val_db, VTY_NEWLINE); break; case GSM_PWR_CTRL_MODE_DYN_BTS: + case GSM_PWR_CTRL_MODE_DYN_BSC: cfg_out("%s%s", node_name, VTY_NEWLINE); - cfg_out(" mode dyn-bts%s", VTY_NEWLINE); + cfg_out(" mode %s%s", + cp->mode == GSM_PWR_CTRL_MODE_DYN_BTS ? "dyn-bts" : "dyn-bsc", VTY_NEWLINE); if (cp->dir == GSM_PWR_CTRL_DIR_DL) cfg_out(" bs-power dyn-max %u%s", cp->bs_power_max_db, VTY_NEWLINE); @@ -3975,7 +3990,8 @@ /* Measurement processing / averaging parameters */ config_write_power_ctrl_meas(vty, indent + 1, &cp->rxlev_meas, "rxlev", ""); config_write_power_ctrl_meas(vty, indent + 1, &cp->rxqual_meas, "rxqual", ""); - if (cp->dir == GSM_PWR_CTRL_DIR_UL && is_osmobts(bts)) { + if (cp->dir == GSM_PWR_CTRL_DIR_UL && is_osmobts(bts) + && cp->mode == GSM_PWR_CTRL_MODE_DYN_BTS) { config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_fr_meas, "ci", " fr-efr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_hr_meas, "ci", " hr"); config_write_power_ctrl_meas(vty, indent + 1, &cp->ci_amr_fr_meas, "ci", " amr-fr"); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 395a60e..d651024 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -855,6 +855,12 @@ .description = "RESET/ACK on A and Lb interfaces", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [DLOOP] = { + .name = "DLOOP", + .description = "Control loops", + .color = "\033[0;34m", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; static int filter_fn(const struct log_context *ctx, struct log_target *tar) diff --git a/src/osmo-bsc/power_control.c b/src/osmo-bsc/power_control.c new file mode 100644 index 0000000..7279050 --- /dev/null +++ b/src/osmo-bsc/power_control.c @@ -0,0 +1,267 @@ +/* MS Power Control Loop L1 */ + +/* (C) 2014 by Holger Hans Peter Freyther + * (C) 2020-2021 by sysmocom - s.m.f.c. GmbH + * Author: Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +/* We don't want to deal with floating point, so we scale up */ +#define EWMA_SCALE_FACTOR 100 +/* EWMA_SCALE_FACTOR/2 = +50: Round to nearest value when downscaling, otherwise floor() is applied. */ +#define EWMA_ROUND_FACTOR (EWMA_SCALE_FACTOR / 2) + +/* Base Low-Pass Single-Pole IIR Filter (EWMA) formula: + * + * Avg[n] = a * Val[n] + (1 - a) * Avg[n - 1] + * + * where parameter 'a' determines how much weight of the latest measurement value + * 'Val[n]' carries vs the weight of the accumulated average 'Avg[n - 1]'. The + * value of 'a' is usually a float in range 0 .. 1, so: + * + * - value 0.5 gives equal weight to both 'Val[n]' and 'Avg[n - 1]'; + * - value 1.0 means no filtering at all (pass through); + * - value 0.0 makes no sense. + * + * Further optimization: + * + * Avg[n] = a * Val[n] + Avg[n - 1] - a * Avg[n - 1] + * ^^^^^^ ^^^^^^^^^^ + * + * a) this can be implemented in C using '+=' operator: + * + * Avg += a * Val - a * Avg + * Avg += a * (Val - Avg) + * + * b) everything is scaled up by 100 to avoid floating point stuff: + * + * Avg100 += A * (Val - Avg) + * + * where 'Avg100' is 'Avg * 100' and 'A' is 'a * 100'. + * + * For more details, see: + * + * https://en.wikipedia.org/wiki/Moving_average + * https://en.wikipedia.org/wiki/Low-pass_filter#Simple_infinite_impulse_response_filter + * https://tomroelandts.com/articles/low-pass-single-pole-iir-filter + */ +static int do_pf_ewma(const struct gsm_power_ctrl_meas_params *mp, + struct gsm_power_ctrl_meas_proc_state *mps, + const int Val) +{ + const uint8_t A = mp->ewma.alpha; + int *Avg100 = &mps->ewma.Avg100; + + /* We don't have 'Avg[n - 1]' if this is the first run */ + if (mps->meas_num++ == 0) { + *Avg100 = Val * EWMA_SCALE_FACTOR; + return Val; + } + + *Avg100 += A * (Val - (*Avg100 + EWMA_ROUND_FACTOR) / EWMA_SCALE_FACTOR); + return (*Avg100 + EWMA_ROUND_FACTOR) / EWMA_SCALE_FACTOR; +} + +/* Calculate target RxLev value from lower/upper thresholds */ +#define CALC_TARGET(mp) \ + ((mp).lower_thresh + (mp).upper_thresh) / 2 + +static int do_avg_algo(const struct gsm_power_ctrl_meas_params *mp, + struct gsm_power_ctrl_meas_proc_state *mps, + const int val) +{ + int val_avg; + switch (mp->algo) { + case GSM_PWR_CTRL_MEAS_AVG_ALGO_OSMO_EWMA: + val_avg = do_pf_ewma(mp, mps, val); + break; + /* TODO: implement other pre-processing methods */ + case GSM_PWR_CTRL_MEAS_AVG_ALGO_NONE: + default: + /* No filtering (pass through) */ + val_avg = val; + } + return val_avg; +} +/* Calculate a 'delta' value (for the given MS/BS power control parameters) + * to be applied to the current Tx power level to approach the target level. */ +static int calc_delta_rxlev(const struct gsm_power_ctrl_params *params, const uint8_t rxlev) +{ + int delta; + + /* Check if RxLev is within the threshold window */ + if (rxlev >= params->rxlev_meas.lower_thresh && + rxlev <= params->rxlev_meas.upper_thresh) + return 0; + + /* How many dBs measured power should be increased (+) or decreased (-) + * to reach expected power. */ + delta = CALC_TARGET(params->rxlev_meas) - rxlev; + + /* Don't ever change more than PWR_{LOWER,RAISE}_MAX_DBM during one loop + * iteration, i.e. reduce the speed at which the MS transmit power can + * change. A higher value means a lower level (and vice versa) */ + if (delta > params->inc_step_size_db) + delta = params->inc_step_size_db; + else if (delta < -params->red_step_size_db) + delta = -params->red_step_size_db; + + return delta; +} + +/* Shall we skip current block based on configured interval? */ +static bool ctrl_interval_skip_block(const struct gsm_power_ctrl_params *params, + struct gsm_meas_rep *mr, struct gsm_lchan *lchan) +{ + /* Power control interval: how many blocks do we skip? */ + if (lchan->skip_block_num-- > 0) + return true; + + /* Can we be sure if ONE Report is always going to correspond + * to ONE SACCH block at the BTS? - If not this is as approximation + * but it should not hurt. */ + + /* Reset the number of SACCH blocks to be skipped: + * ctrl_interval=0 => 0 blocks to skip, + * ctrl_interval=1 => 1 blocks to skip, + * ctrl_interval=2 => 3 blocks to skip, + * so basically ctrl_interval * 2 - 1. */ + lchan->skip_block_num = params->ctrl_interval * 2 - 1; + return false; +} + +int lchan_ms_pwr_ctrl(struct gsm_lchan *lchan, struct gsm_meas_rep *mr) +{ + struct gsm_bts_trx *trx = lchan->ts->trx; + struct gsm_bts *bts = trx->bts; + enum gsm_band band = bts->band; + const struct gsm_power_ctrl_params *params = &bts->ms_power_ctrl; + int8_t new_power_lvl; /* TS 05.05 power level */ + int8_t ms_dbm, new_dbm, current_dbm, bsc_max_dbm; + uint8_t rxlev_avg; + // int16_t ul_lqual_cb_avg; + uint8_t ms_power_lvl = ms_pwr_ctl_lvl(band, mr->ms_l1.pwr); + int8_t ul_rssi_dbm; + bool ignore; + + if (bts->ms_power_ctrl.mode != GSM_PWR_CTRL_MODE_DYN_BSC) + return 0; + + /* If we are sure DTx is active on Uplink, + * use the '-SUB', otherwise '-FULL': */ + if (bts->dtxu == GSM48_DTX_SHALL_BE_USED) + ul_rssi_dbm = rxlev2dbm(mr->ul.sub.rx_lev); + else + ul_rssi_dbm = rxlev2dbm(mr->ul.full.rx_lev); + + if (params == NULL) + return 0; + /* Not doing the power loop here if we are not handling it */ + if (params->mode != GSM_PWR_CTRL_MODE_DYN_BSC) + return 0; + + /* Shall we skip current block based on configured interval? */ + if (ctrl_interval_skip_block(params, mr, lchan)) + return 0; + + ms_dbm = ms_pwr_dbm(band, ms_power_lvl); + if (ms_dbm < 0) { + LOGPLCHAN(lchan, DLOOP, LOGL_NOTICE, + "Failed to calculate dBm for power ctl level %" PRIu8 " on band %s\n", + ms_power_lvl, gsm_band_name(band)); + return 0; + } + + bsc_max_dbm = bts->ms_max_power; + rxlev_avg = do_avg_algo(¶ms->rxlev_meas, &lchan->rxlev_meas_proc, dbm2rxlev(ul_rssi_dbm)); + new_dbm = ms_dbm + calc_delta_rxlev(params, rxlev_avg); + + /* Make sure new_dbm is never negative. ms_pwr_ctl_lvl() can later on + cope with any unsigned dbm value, regardless of band minimal value. */ + if (new_dbm < 0) + new_dbm = 0; + /* Don't ask for smaller ms power level than the one set by ms max power for this BTS */ + if (new_dbm > bsc_max_dbm) + new_dbm = bsc_max_dbm; + + new_power_lvl = ms_pwr_ctl_lvl(band, new_dbm); + if (new_power_lvl < 0) { + LOGPLCHAN(lchan, DLOOP, LOGL_NOTICE, + "Failed to retrieve power level for %" PRId8 " dBm on band %d\n", + new_dbm, band); + return 0; + } + + current_dbm = ms_pwr_dbm(band, lchan->ms_power); + + /* In this Power Control Loop, we infer a new good MS Power Level based + * on the previous MS Power Level announced by the MS (not the previous + * one we requested!) together with the related computed measurements. + * Hence, and since we allow for several good MS Power Levels falling into our + * thresholds, we could finally converge into an oscillation loop where + * the MS bounces between 2 different correct MS Power levels all the + * time, due to the fact that we "accept" and "request back" whatever + * good MS Power Level we received from the MS, but at that time the MS + * will be transmitting using the previous MS Power Level we + * requested, which we will later "accept" and "request back" on next loop + * iteration. As a result MS effectively bounces between those 2 MS + * Power Levels. + * In order to fix this permanent oscillation, if current MS_PWR used/announced + * by MS is good ("ms_dbm == new_dbm", hence within thresholds and no change + * required) but has higher Tx power than the one we last requested, we ignore + * it and keep requesting for one with lower Tx power. This way we converge to + * the lowest good Tx power avoiding oscillating over values within thresholds. + */ + ignore = (ms_dbm == new_dbm && ms_dbm > current_dbm); + + if (lchan->ms_power == new_power_lvl || ignore) { + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "Keeping MS power at control level %d (%d dBm): " + "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm\n", + new_power_lvl, new_dbm, ms_power_lvl, bsc_max_dbm, ul_rssi_dbm, rxlev2dbm(rxlev_avg), + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh)); + return 0; + } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, "%s MS power control level %d (%d dBm) => %d (%d dBm): " + "ms-pwr-lvl[curr %" PRIu8 ", max %" PRIu8 "], RSSI[curr %d, avg %d, thresh %d..%d] dBm\n", + (new_dbm > current_dbm) ? "Raising" : "Lowering", + lchan->ms_power, current_dbm, new_power_lvl, new_dbm, ms_power_lvl, + bsc_max_dbm, ul_rssi_dbm, rxlev2dbm(rxlev_avg), + rxlev2dbm(params->rxlev_meas.lower_thresh), rxlev2dbm(params->rxlev_meas.upper_thresh)); + + /* store the resulting new MS power level in the lchan */ + lchan->ms_power = new_power_lvl; + rsl_chan_ms_power_ctrl(lchan); + + return 1; + +} + -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e Gerrit-Change-Number: 25654 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 23:37:22 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 23:37:22 +0000 Subject: Change in osmo-bsc[master]: Implement MS Uplink Power Control Loop. In-Reply-To: References: Message-ID: keith has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/25654 ) Change subject: Implement MS Uplink Power Control Loop. ...................................................................... Patch Set 1: Can you take a look Vadim, thanks. -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e Gerrit-Change-Number: 25654 Gerrit-PatchSet: 1 Gerrit-Owner: keith Gerrit-Reviewer: fixeria Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 30 Sep 2021 23:37:22 +0000 Gerrit-HasComments: No Gerrit-Has-Labels: No Gerrit-MessageType: comment -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Sep 30 23:43:19 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 23:43:19 +0000 Subject: Change in osmo-bsc[master]: Implement MS Uplink Power Control Loop. In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25654 to look at the new patch set (#2). Change subject: Implement MS Uplink Power Control Loop. ...................................................................... Implement MS Uplink Power Control Loop. * Adds vty option dyn-bsc for ms-power-control -> mode * Imports power_control.c from osmo-bts project. * Removes unused C/I code from power_control. This patch then calls the power loop on receipt of measurement reports and updates the MS Power Level accordingly. Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e --- M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/power_control.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/osmo_bsc_main.c A src/osmo-bsc/power_control.c 9 files changed, 327 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/25654/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e Gerrit-Change-Number: 25654 Gerrit-PatchSet: 2 Gerrit-Owner: keith 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 Sep 30 23:50:39 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 23:50:39 +0000 Subject: Change in osmo-bsc[master]: Implement MS Uplink Power Control Loop. In-Reply-To: References: Message-ID: Hello Jenkins Builder, fixeria, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25654 to look at the new patch set (#3). Change subject: Implement MS Uplink Power Control Loop. ...................................................................... Implement MS Uplink Power Control Loop. * Adds vty option dyn-bsc for ms-power-control -> mode * Imports power_control.c from osmo-bts project. * Removes unused C/I code from power_control. This patch then calls the power loop on receipt of measurement reports and updates the MS Power Level accordingly. Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e --- M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/power_control.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_vty.c M src/osmo-bsc/osmo_bsc_main.c A src/osmo-bsc/power_control.c M tests/osmo-bsc.vty M tests/power_ctrl.vty 11 files changed, 329 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/54/25654/3 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ibc307e758697eb5ca3fb86622f35709d6077db9e Gerrit-Change-Number: 25654 Gerrit-PatchSet: 3 Gerrit-Owner: keith 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 Sep 30 23:52:20 2021 From: gerrit-no-reply at lists.osmocom.org (keith) Date: Thu, 30 Sep 2021 23:52:20 +0000 Subject: Change in osmo-bsc[master]: Add vty command to manually force MS Uplink Power In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/c/osmo-bsc/+/25653 to look at the new patch set (#2). Change subject: Add vty command to manually force MS Uplink Power ...................................................................... Add vty command to manually force MS Uplink Power Change-Id: Ie2642299ea696358db5822571f1f722b5e8f76b9 --- M src/osmo-bsc/bsc_vty.c M tests/osmo-bsc.vty 2 files changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/53/25653/2 -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/25653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: Ie2642299ea696358db5822571f1f722b5e8f76b9 Gerrit-Change-Number: 25653 Gerrit-PatchSet: 2 Gerrit-Owner: keith Gerrit-Reviewer: Jenkins Builder Gerrit-MessageType: newpatchset -------------- next part -------------- An HTML attachment was scrubbed... URL: