Change in osmo-bts[master]: MS/BS Power Control Loop: Fix downscaling averaging bug
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
Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire...
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
Change in osmo-bts[master]: MS/BS Power Control Loop: Do RxLEV meas avg & delta calculations dire...
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, >ci_meas_proc, ul_lqual_cb); - ul_rssi_dbm_avg = do_avg_algo(>rxlev_meas, >rxlev_meas_proc, ul_rssi_dbm); + rxlev_avg = do_avg_algo(>rxlev_meas, >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 @@
Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ttcn3-hacks[master]: bsc: add TC_stat_num_msc_connected* tests
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: jobs/gerrit-lint.yml: add lint jobs
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: lint: checkpatch_osmo.sh: ignore LONG_LINE_*
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-ci[master]: OBS: remove {osmo-gsm-manuals, osmo-trx}-debian8
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-gsm-manuals[master]: d/patches/build-for-debian8.patch: remove
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: d/patches/build-for-debian8.patch: remove
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ...
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
Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo for RxQual meas
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
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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
Change in osmo-trx[master]: cosmetic: Fix typo in comment
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
Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO
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
Change in osmo-trx[master]: computeCI(): Constify read-only variable
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
Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant
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: I9b426d01a282f572c0b915c542dce4c60475 --- 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 ) { + 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: I9b426d01a282f572c0b915c542dce4c60475 Gerrit-Change-Number: 25318 Gerrit-PatchSet: 1 Gerrit-Owner: pespin Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-Reviewer: laforge Gerrit-MessageType: merged
Change in osmo-trx[master]: computeCI(): Constify param and pass it as reference
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 ) { 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
Change in osmo-trx[master]: detectBurst(): constify parameter
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 , - signalVector , CorrelationSequence *sync, + signalVector , 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
Change in osmo-trx[master]: detectBurst(): Clear downsampling code path
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 = +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, >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
Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: computeCI(): Constify read-only variable
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant
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: I9b426d01a282f572c0b915c542dce4c60475 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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: computeCI(): Constify param and pass it as reference
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: detectBurst(): constify parameter
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: detectBurst(): Clear downsampling code path
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params
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
Change in osmo-bsc[master]: MS Power Control Loop: Support set up of C/I parameters for osmo-bts
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: laforge Gerrit-MessageType: comment
Change in libosmocore[master]: gsm_08_58.h: Extend IPA Power Control Params IEs to pass C/I params
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@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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: BS Power Control Loop: Support EWMA average algo
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(>rxlev_meas, >rxlev_meas_proc, rxlev2dbm(rxlev)); - + dl_rssi_dbm = rxlev2dbm(rxlev); + dl_rssi_dbm_avg = do_avg_algo(>rxlev_meas, >rxlev_meas_proc, dl_rssi_dbm); + rxqual_avg = do_avg_algo(>rxqual_meas, >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) -
Change in osmo-bts[master]: BS Power Control Loop: Increase attenuation if RxQual is better than ...
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
Change in osmo-bts[master]: MS Power Control Loop: Improve logging
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
Change in osmo-bts[master]: MS Power Control Loop: Support EWMA algorithm for C/I measurements
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(>rxlev_meas, - >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, >ci_meas_proc, ul_lqual_cb); + ul_rssi_dbm_avg = do_avg_algo(>rxlev_meas, >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(>rxlev_meas, >rxlev_meas_proc, rxlev2dbm(rxlev)); + /* If RxQual >
Change in osmo-bsc[master]: osmo_bsc_main: integrate MGW pooling into osmo-bsc
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower
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(>features, BTS_FEAT_ACCH_TEMP_OVP))) + return; + + memcpy(, >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*) ); +} + /* 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
Change in osmo-bsc[master]: bty_vty: add VTY settungs for temporary overpower
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame
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
Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase
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, _state->ul_ft, + amr_is_cmr, chan_state->codec, chan_state->codecs, _state->ul_ft, _state->ul_cmr, _errors, _bits_total, _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
Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft
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
Change in osmo-bts[master]: sched_lchan_tch_x: use ul_cmr and ul_ft when generating RTP bad frame
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: sched_lchan_tch_x: use functions to determine AMR tranmssion phase
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@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 + 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
Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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@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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2: don't use llist_for_each when freeing an element
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
Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure
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
Change in libosmocore[master]: gprs_ns2_sns: rework sns clean up
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS DEL procedures
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
Change in libosmocore[master]: gprs_ns2: gprs_ns2_free_bind() should remove itself before removing n...
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(>nsvc)) { - nsvc = llist_first_entry(>nsvc, struct gprs_ns2_vc, blist); - gprs_ns2_free_nsvc(nsvc); - } - if (gprs_ns2_is_ip_bind(bind)) { llist_for_each_entry(nse, >nsi->nse, list) { gprs_ns2_sns_del_bind(nse, bind); } } + /* prevent recursive free() because of events user/fsm */ + while (!llist_empty(>nsvc)) { + nsvc = llist_first_entry(>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
Change in libosmocore[master]: gprs_ns2: dont use llist_for_each when freeing an element
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
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
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
Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure
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
Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events
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
Change in libosmocore[master]: gprs_ns2_sns: implement outbound SNS ADD procedures
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@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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: daniel Gerrit-MessageType: comment
Change in libosmocore[master]: gprs_ns2_sns: implement local change weight procedure
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@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@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@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@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 + 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
Change in libosmocore[master]: gprs_ns2: dont use llist_for_each when freeing an element
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@680 PS1, Line 680: while (!llist_empty(>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@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@1584 PS1, Line 1584: while (!llist_empty(>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 + 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
Change in libosmocore[master]: gprs_ns2: move sns_event into internal.h to direct emit events
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment
Change in osmo-trx[master]: cosmetic: Fix typo in comment
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-mgw[master]: mgcp_client: fix typo in doxygen comment
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
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: pespin Comment-In-Reply-To: dexter Gerrit-MessageType: comment
Change in osmo-mgw[master]: mgcp_client: fix typo in doxygen comment
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: dexter Gerrit-MessageType: comment
Change in osmo-mgw[master]: mgcp_client: fix typo in doxygen comment
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
Change in osmo-bts[master]: sched_lchan_tch_x: do not use cmr as ft
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@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 + 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
Change in osmo-bts[master]: MS Power Control Loop: Take C/I into account
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@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 + Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
Change in osmo-trx[master]: computeCI(): Rename verbose repeated getter to constant
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: I9b426d01a282f572c0b915c542dce4c60475 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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: detectBurst(): Clear downsampling code path
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: detectBurst(): constify parameter
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: computeCI(): Constify read-only variable
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: detectGeneralBurst(): Increase log level about clipping to INFO
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
Change in osmo-trx[master]: cosmetic: Fix typo in comment
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 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment