pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-bts/+/41787?usp=email )
Change subject: ta_control: Move skip_block logic to helper function
......................................................................
ta_control: Move skip_block logic to helper function
This makes it more similar to code in power_control.c.
Change-Id: I174f2f941fbedbe0793cc0b93d01e53e23328cf2
---
M src/common/ta_control.c
1 file changed, 21 insertions(+), 10 deletions(-)
Approvals:
fixeria: Looks good to me, but someone else must approve
dexter: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/common/ta_control.c b/src/common/ta_control.c
index 6fe409a..c3e4d67 100644
--- a/src/common/ta_control.c
+++ b/src/common/ta_control.c
@@ -22,6 +22,9 @@
/* Related specs: 3GPP TS 45.010 sections 5.5, 5.6 */
+#include <stdint.h>
+#include <stdbool.h>
+
#include <osmo-bts/gsm_data.h>
#include <osmo-bts/bts_trx.h>
#include <osmo-bts/logging.h>
@@ -39,6 +42,22 @@
#define TA_MAX_DEC_STEP 2
+/* Shall we skip current block based on configured interval? */
+static bool ctrl_interval_skip_block(struct gsm_lchan *lchan)
+{
+ /* TA control interval: how many blocks do we skip? */
+ if (lchan->ta_ctrl.skip_block_num-- > 0)
+ return true;
+
+ /* Reset the number of SACCH blocks to be skipped:
+ * ctrl_interval=0 => 0 blocks to skip,
+ * ctrl_interval=1 => 1 blocks to skip,
+ * ctrl_interval=2 => 3 blocks to skip,
+ * so basically ctrl_interval * 2 - 1. */
+ lchan->ta_ctrl.skip_block_num = lchan->ts->trx->ta_ctrl_interval * 2 -
1;
+ return false;
+}
+
/*! 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".
@@ -47,19 +66,11 @@
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? */
-
- /* TA control interval: how many blocks do we skip? */
- if (lchan->ta_ctrl.skip_block_num-- > 0)
+ if (ctrl_interval_skip_block(lchan))
return;
- /* Reset the number of SACCH blocks to be skipped:
- * ctrl_interval=0 => 0 blocks to skip,
- * ctrl_interval=1 => 1 blocks to skip,
- * ctrl_interval=2 => 3 blocks to skip,
- * so basically ctrl_interval * 2 - 1. */
- lchan->ta_ctrl.skip_block_num = lchan->ts->trx->ta_ctrl_interval * 2 -
1;
-
int16_t delta_ta = toa256/256;
if (toa256 >= 0) {
if ((toa256 - (256 * delta_ta)) > TOA256_THRESH)
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41787?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I174f2f941fbedbe0793cc0b93d01e53e23328cf2
Gerrit-Change-Number: 41787
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>