This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/25386 ) Change subject: WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field ...................................................................... WIP: TA loop: Take into account UL SACCH 'Actual Timing advance' field First step improving and reworking TA loop: * Move trigger of the loop to similar place done by BS/MS Power Control Loop, that is, upon receivial of UL SACCH block, which contains information about the TA used to transmit the block encode in L1SACCH Header. Hence, from computed received TOA and TA used when transmitting from the MS, we can infer the desired TA to be used by the MS, which will send back to it later during DL SACCH block. This new method also permits changing TA quicker, since we have more confidence that the TA we request is aligned with the one used to transmit, and we don't simply increment/decrement based on the value we request to transmit. Related: SYS#5371 Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc --- M include/osmo-bts/ta_control.h M src/common/l1sap.c M src/common/measurement.c M src/common/ta_control.c M tests/ta_control/ta_control_test.c M tests/ta_control/ta_control_test.ok 6 files changed, 291 insertions(+), 258 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/86/25386/1 diff --git a/include/osmo-bts/ta_control.h b/include/osmo-bts/ta_control.h index 168f14a..bf99331 100644 --- a/include/osmo-bts/ta_control.h +++ b/include/osmo-bts/ta_control.h @@ -2,4 +2,4 @@ #include <osmo-bts/gsm_data.h> -void lchan_ms_ta_ctrl(struct gsm_lchan *lchan); +void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256); diff --git a/src/common/l1sap.c b/src/common/l1sap.c index e9d58ce..c2c651a 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -53,6 +53,7 @@ #include <osmo-bts/bts_model.h> #include <osmo-bts/handover.h> #include <osmo-bts/power_control.h> +#include <osmo-bts/ta_control.h> #include <osmo-bts/msg_utils.h> #include <osmo-bts/pcuif_proto.h> #include <osmo-bts/cbch.h> @@ -1632,6 +1633,7 @@ lchan->meas.l1_info.ta = l1_hdr->ta; lchan->meas.flags |= LC_UL_M_F_L1_VALID; + lchan_ms_ta_ctrl(lchan, l1_hdr->ta, data_ind->ta_offs_256bits); lchan_ms_pwr_ctrl(lchan, l1_hdr->ms_pwr, data_ind->rssi, data_ind->lqual_cb); lchan_bs_pwr_ctrl(lchan, (const struct gsm48_hdr *) &data[5]); } else diff --git a/src/common/measurement.c b/src/common/measurement.c index 4c49dc9..a4cc668 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -10,7 +10,6 @@ #include <osmo-bts/measurement.h> #include <osmo-bts/scheduler.h> #include <osmo-bts/rsl.h> -#include <osmo-bts/ta_control.h> /* Tables as per TS 45.008 Section 8.3 */ static const uint8_t ts45008_83_tch_f[] = { 52, 53, 54, 55, 56, 57, 58, 59 }; @@ -739,11 +738,6 @@ lchan_meas_compute_extended(lchan); - /* Compute new ta_req value. This has to be done here since the value - * in lchan->meas.num_ul_meas together with lchan->meas.ms_toa256 - * is needed for the computation. */ - lchan_ms_ta_ctrl(lchan); - lchan->meas.num_ul_meas = 0; /* return 1 to indicate that the computation has been done and the next diff --git a/src/common/ta_control.c b/src/common/ta_control.c index ccb60e2..a89c1a6 100644 --- a/src/common/ta_control.c +++ b/src/common/ta_control.c @@ -29,22 +29,63 @@ #define TA_MIN 0 #define TA_MAX 63 -void lchan_ms_ta_ctrl(struct gsm_lchan *lchan) -{ - int16_t toa256 = lchan->meas.ms_toa256; +//TODO: make configurable over osmo-bts VTY? Pass it BSC->BTS? +#define TA_MAX_INC_STEP 2 +#define TA_MAX_DEC_STEP 2 - if (toa256 < -TOA256_9OPERCENT && lchan->rqd_ta > TA_MIN) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "TOA is too early (%d), now lowering TA from %d to %d\n", - toa256, lchan->rqd_ta, lchan->rqd_ta - 1); - lchan->rqd_ta--; - } else if (toa256 > TOA256_9OPERCENT && lchan->rqd_ta < TA_MAX) { - LOGPLCHAN(lchan, DLOOP, LOGL_INFO, - "TOA is too late (%d), now raising TA from %d to %d\n", - toa256, lchan->rqd_ta, lchan->rqd_ta + 1); - lchan->rqd_ta++; - } else + +/*! compute the new "Ordered Timing Advance" communicated to the MS and store it in lchan. + * \param lchan logical channel for which to compute (and in which to store) new power value. + * \param[in] ms_tx_ta The TA used by the MS and reported in L1SACCH, see struct gsm_sacch_l1_hdr field "ta". + * \param[in] toa256 Timing advance offset (in 1/256th bits) computed at Rx side + */ +void lchan_ms_ta_ctrl(struct gsm_lchan *lchan, uint8_t ms_tx_ta, int16_t toa256) +{ + int16_t new_ta; + /* Shall we skip current block based on configured interval? */ + //TODO: implement P_CON_INTERVAL for TA loop + + + //TODO: we could do averaging as per some config nsomewhere? + + //TODO: Ad + int16_t delta_ta = toa256/256; + if (toa256 >= 0) { + if ((toa256 - (256 * delta_ta)) > TOA256_9OPERCENT) + delta_ta++; + if (delta_ta > TA_MAX_INC_STEP) + delta_ta = TA_MAX_INC_STEP; + } else { + if ((toa256 - (256 * delta_ta)) < -TOA256_9OPERCENT) + delta_ta--; + if (delta_ta < TA_MAX_DEC_STEP) + delta_ta = TA_MAX_DEC_STEP; + } + + new_ta = ms_tx_ta + delta_ta; + + /* Make sure new_ta is never negative: */ + if (new_ta < TA_MIN) + new_ta = TA_MIN; + + /* Don't ask for out of range TA: */ + if (new_ta > TA_MAX) + new_ta = TA_MAX; + + if (lchan->rqd_ta == (uint8_t)new_ta) { LOGPLCHAN(lchan, DLOOP, LOGL_DEBUG, - "TOA is correct (%d), keeping current TA of %d\n", - toa256, lchan->rqd_ta); + "Keeping current TA at %u: TOA was %d\n", + lchan->rqd_ta, toa256); + return; + } + + LOGPLCHAN(lchan, DLOOP, LOGL_INFO, + "%s TA %u => %u: TOA was too %s (%d)\n", + (uint8_t)new_ta > lchan->rqd_ta ? "Raising" : "Lowering", + lchan->rqd_ta, (uint8_t)new_ta, + (uint8_t)new_ta > lchan->rqd_ta ? "late" : "early", + toa256); + + /* store the resulting new TA in the lchan */ + lchan->rqd_ta = (uint8_t)new_ta; } diff --git a/tests/ta_control/ta_control_test.c b/tests/ta_control/ta_control_test.c index 2e981b3..12305cb 100644 --- a/tests/ta_control/ta_control_test.c +++ b/tests/ta_control/ta_control_test.c @@ -35,9 +35,6 @@ uint8_t rqd_ta_before; int16_t toa256 = toa256_start; - /* Arbitrary value, high enough so that a computation can happen. */ - lchan.meas.num_ul_meas = 10; - printf("toa256_start = %u / 256 = %u, steps = %u\n", toa256_start, toa256_start / 256, steps); @@ -49,8 +46,7 @@ rqd_ta_before = lchan.rqd_ta; - lchan.meas.ms_toa256 = toa256; - lchan_ms_ta_ctrl(&lchan); + lchan_ms_ta_ctrl(&lchan, rqd_ta_before, toa256); rqd_ta_after = lchan.rqd_ta; toa256 -= (rqd_ta_after - rqd_ta_before) * 256; diff --git a/tests/ta_control/ta_control_test.ok b/tests/ta_control/ta_control_test.ok index 8ebe5d5..79de8ad 100644 --- a/tests/ta_control/ta_control_test.ok +++ b/tests/ta_control/ta_control_test.ok @@ -2,81 +2,81 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4096 / 256 = 16 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3840 / 256 = 15 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3840 / 256 = 15 lchan.rqd_ta (after) = 2 toa256 (after) = 3584 / 256 = 14 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3584 / 256 = 14 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3328 / 256 = 13 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3328 / 256 = 13 lchan.rqd_ta (after) = 4 toa256 (after) = 3072 / 256 = 12 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 3072 / 256 = 12 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2816 / 256 = 11 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2816 / 256 = 11 lchan.rqd_ta (after) = 6 toa256 (after) = 2560 / 256 = 10 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2560 / 256 = 10 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2304 / 256 = 9 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2304 / 256 = 9 lchan.rqd_ta (after) = 8 toa256 (after) = 2048 / 256 = 8 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 2048 / 256 = 8 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1792 / 256 = 7 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1792 / 256 = 7 lchan.rqd_ta (after) = 10 toa256 (after) = 1536 / 256 = 6 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1536 / 256 = 6 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1280 / 256 = 5 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1280 / 256 = 5 lchan.rqd_ta (after) = 12 toa256 (after) = 1024 / 256 = 4 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 1024 / 256 = 4 - lchan.rqd_ta (after) = 13 - toa256 (after) = 768 / 256 = 3 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 768 / 256 = 3 lchan.rqd_ta (after) = 14 toa256 (after) = 512 / 256 = 2 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 512 / 256 = 2 - lchan.rqd_ta (after) = 15 - toa256 (after) = 256 / 256 = 1 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 + lchan.rqd_ta (after) = 16 + toa256 (after) = 0 / 256 = 0 Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 256 / 256 = 1 + lchan.rqd_ta (before) = 16 + toa256 (before) = 0 / 256 = 0 lchan.rqd_ta (after) = 16 toa256 (after) = 0 / 256 = 0 Step #16 @@ -105,78 +105,78 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 4000 / 256 = 15 - lchan.rqd_ta (after) = 1 - toa256 (after) = 3744 / 256 = 14 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 3744 / 256 = 14 lchan.rqd_ta (after) = 2 toa256 (after) = 3488 / 256 = 13 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 3488 / 256 = 13 - lchan.rqd_ta (after) = 3 - toa256 (after) = 3232 / 256 = 12 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 3232 / 256 = 12 lchan.rqd_ta (after) = 4 toa256 (after) = 2976 / 256 = 11 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 2976 / 256 = 11 - lchan.rqd_ta (after) = 5 - toa256 (after) = 2720 / 256 = 10 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 2720 / 256 = 10 lchan.rqd_ta (after) = 6 toa256 (after) = 2464 / 256 = 9 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 2464 / 256 = 9 - lchan.rqd_ta (after) = 7 - toa256 (after) = 2208 / 256 = 8 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 2208 / 256 = 8 lchan.rqd_ta (after) = 8 toa256 (after) = 1952 / 256 = 7 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 1952 / 256 = 7 - lchan.rqd_ta (after) = 9 - toa256 (after) = 1696 / 256 = 6 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 1696 / 256 = 6 lchan.rqd_ta (after) = 10 toa256 (after) = 1440 / 256 = 5 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 1440 / 256 = 5 - lchan.rqd_ta (after) = 11 - toa256 (after) = 1184 / 256 = 4 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 1184 / 256 = 4 lchan.rqd_ta (after) = 12 toa256 (after) = 928 / 256 = 3 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 928 / 256 = 3 - lchan.rqd_ta (after) = 13 - toa256 (after) = 672 / 256 = 2 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 672 / 256 = 2 lchan.rqd_ta (after) = 14 toa256 (after) = 416 / 256 = 1 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 416 / 256 = 1 lchan.rqd_ta (after) = 15 toa256 (after) = 160 / 256 = 0 +Step #8 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #9 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #10 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #11 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #12 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #13 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 +Step #14 + lchan.rqd_ta (before) = 15 + toa256 (before) = 160 / 256 = 0 + lchan.rqd_ta (after) = 15 + toa256 (after) = 160 / 256 = 0 Step #15 lchan.rqd_ta (before) = 15 toa256 (before) = 160 / 256 = 0 @@ -358,241 +358,241 @@ Step #0 lchan.rqd_ta (before) = 0 toa256 (before) = 12345 / 256 = 48 - lchan.rqd_ta (after) = 1 - toa256 (after) = 12089 / 256 = 47 -Step #1 - lchan.rqd_ta (before) = 1 - toa256 (before) = 12089 / 256 = 47 lchan.rqd_ta (after) = 2 toa256 (after) = 11833 / 256 = 46 -Step #2 +Step #1 lchan.rqd_ta (before) = 2 toa256 (before) = 11833 / 256 = 46 - lchan.rqd_ta (after) = 3 - toa256 (after) = 11577 / 256 = 45 -Step #3 - lchan.rqd_ta (before) = 3 - toa256 (before) = 11577 / 256 = 45 lchan.rqd_ta (after) = 4 toa256 (after) = 11321 / 256 = 44 -Step #4 +Step #2 lchan.rqd_ta (before) = 4 toa256 (before) = 11321 / 256 = 44 - lchan.rqd_ta (after) = 5 - toa256 (after) = 11065 / 256 = 43 -Step #5 - lchan.rqd_ta (before) = 5 - toa256 (before) = 11065 / 256 = 43 lchan.rqd_ta (after) = 6 toa256 (after) = 10809 / 256 = 42 -Step #6 +Step #3 lchan.rqd_ta (before) = 6 toa256 (before) = 10809 / 256 = 42 - lchan.rqd_ta (after) = 7 - toa256 (after) = 10553 / 256 = 41 -Step #7 - lchan.rqd_ta (before) = 7 - toa256 (before) = 10553 / 256 = 41 lchan.rqd_ta (after) = 8 toa256 (after) = 10297 / 256 = 40 -Step #8 +Step #4 lchan.rqd_ta (before) = 8 toa256 (before) = 10297 / 256 = 40 - lchan.rqd_ta (after) = 9 - toa256 (after) = 10041 / 256 = 39 -Step #9 - lchan.rqd_ta (before) = 9 - toa256 (before) = 10041 / 256 = 39 lchan.rqd_ta (after) = 10 toa256 (after) = 9785 / 256 = 38 -Step #10 +Step #5 lchan.rqd_ta (before) = 10 toa256 (before) = 9785 / 256 = 38 - lchan.rqd_ta (after) = 11 - toa256 (after) = 9529 / 256 = 37 -Step #11 - lchan.rqd_ta (before) = 11 - toa256 (before) = 9529 / 256 = 37 lchan.rqd_ta (after) = 12 toa256 (after) = 9273 / 256 = 36 -Step #12 +Step #6 lchan.rqd_ta (before) = 12 toa256 (before) = 9273 / 256 = 36 - lchan.rqd_ta (after) = 13 - toa256 (after) = 9017 / 256 = 35 -Step #13 - lchan.rqd_ta (before) = 13 - toa256 (before) = 9017 / 256 = 35 lchan.rqd_ta (after) = 14 toa256 (after) = 8761 / 256 = 34 -Step #14 +Step #7 lchan.rqd_ta (before) = 14 toa256 (before) = 8761 / 256 = 34 - lchan.rqd_ta (after) = 15 - toa256 (after) = 8505 / 256 = 33 -Step #15 - lchan.rqd_ta (before) = 15 - toa256 (before) = 8505 / 256 = 33 lchan.rqd_ta (after) = 16 toa256 (after) = 8249 / 256 = 32 -Step #16 +Step #8 lchan.rqd_ta (before) = 16 toa256 (before) = 8249 / 256 = 32 - lchan.rqd_ta (after) = 17 - toa256 (after) = 7993 / 256 = 31 -Step #17 - lchan.rqd_ta (before) = 17 - toa256 (before) = 7993 / 256 = 31 lchan.rqd_ta (after) = 18 toa256 (after) = 7737 / 256 = 30 -Step #18 +Step #9 lchan.rqd_ta (before) = 18 toa256 (before) = 7737 / 256 = 30 - lchan.rqd_ta (after) = 19 - toa256 (after) = 7481 / 256 = 29 -Step #19 - lchan.rqd_ta (before) = 19 - toa256 (before) = 7481 / 256 = 29 lchan.rqd_ta (after) = 20 toa256 (after) = 7225 / 256 = 28 -Step #20 +Step #10 lchan.rqd_ta (before) = 20 toa256 (before) = 7225 / 256 = 28 - lchan.rqd_ta (after) = 21 - toa256 (after) = 6969 / 256 = 27 -Step #21 - lchan.rqd_ta (before) = 21 - toa256 (before) = 6969 / 256 = 27 lchan.rqd_ta (after) = 22 toa256 (after) = 6713 / 256 = 26 -Step #22 +Step #11 lchan.rqd_ta (before) = 22 toa256 (before) = 6713 / 256 = 26 - lchan.rqd_ta (after) = 23 - toa256 (after) = 6457 / 256 = 25 -Step #23 - lchan.rqd_ta (before) = 23 - toa256 (before) = 6457 / 256 = 25 lchan.rqd_ta (after) = 24 toa256 (after) = 6201 / 256 = 24 -Step #24 +Step #12 lchan.rqd_ta (before) = 24 toa256 (before) = 6201 / 256 = 24 - lchan.rqd_ta (after) = 25 - toa256 (after) = 5945 / 256 = 23 -Step #25 - lchan.rqd_ta (before) = 25 - toa256 (before) = 5945 / 256 = 23 lchan.rqd_ta (after) = 26 toa256 (after) = 5689 / 256 = 22 -Step #26 +Step #13 lchan.rqd_ta (before) = 26 toa256 (before) = 5689 / 256 = 22 - lchan.rqd_ta (after) = 27 - toa256 (after) = 5433 / 256 = 21 -Step #27 - lchan.rqd_ta (before) = 27 - toa256 (before) = 5433 / 256 = 21 lchan.rqd_ta (after) = 28 toa256 (after) = 5177 / 256 = 20 -Step #28 +Step #14 lchan.rqd_ta (before) = 28 toa256 (before) = 5177 / 256 = 20 - lchan.rqd_ta (after) = 29 - toa256 (after) = 4921 / 256 = 19 -Step #29 - lchan.rqd_ta (before) = 29 - toa256 (before) = 4921 / 256 = 19 lchan.rqd_ta (after) = 30 toa256 (after) = 4665 / 256 = 18 -Step #30 +Step #15 lchan.rqd_ta (before) = 30 toa256 (before) = 4665 / 256 = 18 - lchan.rqd_ta (after) = 31 - toa256 (after) = 4409 / 256 = 17 -Step #31 - lchan.rqd_ta (before) = 31 - toa256 (before) = 4409 / 256 = 17 lchan.rqd_ta (after) = 32 toa256 (after) = 4153 / 256 = 16 -Step #32 +Step #16 lchan.rqd_ta (before) = 32 toa256 (before) = 4153 / 256 = 16 - lchan.rqd_ta (after) = 33 - toa256 (after) = 3897 / 256 = 15 -Step #33 - lchan.rqd_ta (before) = 33 - toa256 (before) = 3897 / 256 = 15 lchan.rqd_ta (after) = 34 toa256 (after) = 3641 / 256 = 14 -Step #34 +Step #17 lchan.rqd_ta (before) = 34 toa256 (before) = 3641 / 256 = 14 - lchan.rqd_ta (after) = 35 - toa256 (after) = 3385 / 256 = 13 -Step #35 - lchan.rqd_ta (before) = 35 - toa256 (before) = 3385 / 256 = 13 lchan.rqd_ta (after) = 36 toa256 (after) = 3129 / 256 = 12 -Step #36 +Step #18 lchan.rqd_ta (before) = 36 toa256 (before) = 3129 / 256 = 12 - lchan.rqd_ta (after) = 37 - toa256 (after) = 2873 / 256 = 11 -Step #37 - lchan.rqd_ta (before) = 37 - toa256 (before) = 2873 / 256 = 11 lchan.rqd_ta (after) = 38 toa256 (after) = 2617 / 256 = 10 -Step #38 +Step #19 lchan.rqd_ta (before) = 38 toa256 (before) = 2617 / 256 = 10 - lchan.rqd_ta (after) = 39 - toa256 (after) = 2361 / 256 = 9 -Step #39 - lchan.rqd_ta (before) = 39 - toa256 (before) = 2361 / 256 = 9 lchan.rqd_ta (after) = 40 toa256 (after) = 2105 / 256 = 8 -Step #40 +Step #20 lchan.rqd_ta (before) = 40 toa256 (before) = 2105 / 256 = 8 - lchan.rqd_ta (after) = 41 - toa256 (after) = 1849 / 256 = 7 -Step #41 - lchan.rqd_ta (before) = 41 - toa256 (before) = 1849 / 256 = 7 lchan.rqd_ta (after) = 42 toa256 (after) = 1593 / 256 = 6 -Step #42 +Step #21 lchan.rqd_ta (before) = 42 toa256 (before) = 1593 / 256 = 6 - lchan.rqd_ta (after) = 43 - toa256 (after) = 1337 / 256 = 5 -Step #43 - lchan.rqd_ta (before) = 43 - toa256 (before) = 1337 / 256 = 5 lchan.rqd_ta (after) = 44 toa256 (after) = 1081 / 256 = 4 -Step #44 +Step #22 lchan.rqd_ta (before) = 44 toa256 (before) = 1081 / 256 = 4 - lchan.rqd_ta (after) = 45 - toa256 (after) = 825 / 256 = 3 -Step #45 - lchan.rqd_ta (before) = 45 - toa256 (before) = 825 / 256 = 3 lchan.rqd_ta (after) = 46 toa256 (after) = 569 / 256 = 2 -Step #46 +Step #23 lchan.rqd_ta (before) = 46 toa256 (before) = 569 / 256 = 2 - lchan.rqd_ta (after) = 47 - toa256 (after) = 313 / 256 = 1 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #24 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #25 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #26 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #27 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #28 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #29 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #30 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #31 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #32 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #33 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #34 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #35 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #36 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #37 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #38 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #39 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #40 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #41 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #42 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #43 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #44 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #45 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 +Step #46 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 + lchan.rqd_ta (after) = 48 + toa256 (after) = 57 / 256 = 0 Step #47 - lchan.rqd_ta (before) = 47 - toa256 (before) = 313 / 256 = 1 + lchan.rqd_ta (before) = 48 + toa256 (before) = 57 / 256 = 0 lchan.rqd_ta (after) = 48 toa256 (after) = 57 / 256 = 0 Step #48 -- To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/25386 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Change-Id: I2d0f128c8dcac93ee382283a1c91fca76623b8fc Gerrit-Change-Number: 25386 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210906/b60f2157/attachment.htm>