path: root/src/common
diff options
authorHarald Welte <laforge@gnumonks.org>2014-08-25 19:01:24 +0200
committerHarald Welte <laforge@gnumonks.org>2014-08-25 19:01:24 +0200
commit11b14fd6624a012cb6bdc49f2dea970f02fda653 (patch)
tree0793a3a3eba54b8b229597e550836eb8f0a9a941 /src/common
parent9e873335ec6c77df8a3ffa9fe041d8dfa4ac4ece (diff)
tx_power: Check actual TRX output power against intended value
We use the completion call-back from L1 to compare the instructed TRX board output power with the actual value as reported back from L1. Right now we only print an error message in case the values disagree. In the future we might want to either use that value as part of our calculation or send an OML alarm report to the BSC.
Diffstat (limited to 'src/common')
1 files changed, 18 insertions, 0 deletions
diff --git a/src/common/tx_power.c b/src/common/tx_power.c
index 27b24250..d8c90b2b 100644
--- a/src/common/tx_power.c
+++ b/src/common/tx_power.c
@@ -182,6 +182,24 @@ static void power_ramp_timer_cb(void *_trx)
/* Instruct L1 to apply new effective TRX output power required */
bts_model_change_power(trx, p_trxout_eff_mdBm);
+/* BTS model call-back once one a call to bts_model_change_power()
+ * completes, indicating actual L1 transmit power */
+void power_trx_change_compl(struct gsm_bts_trx *trx, int p_trxout_cur_mdBm)
+ struct trx_power_params *tpp = &trx->power_params;
+ int p_trxout_should_mdBm;
+ p_trxout_should_mdBm = get_p_trxout_eff_mdBm(trx, tpp->p_total_tgt_mdBm);
+ /* for now we simply write an error message, but in the future
+ * we might use the value (again) as part of our math? */
+ if (p_trxout_cur_mdBm != p_trxout_should_mdBm) {
+ LOGP(DL1C, LOGL_ERROR, "bts_model notifies us of %u mdBm TRX "
+ "output power. However, it should be %u mdBm!\n",
+ p_trxout_cur_mdBm, p_trxout_should_mdBm);
+ }
/* and do another step... */
power_ramp_do_step(trx, 0);