fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/27411 )
Change subject: osmo-bts-trx: new rate counter 'trx_sched:dl_fh_cache_miss' ......................................................................
osmo-bts-trx: new rate counter 'trx_sched:dl_fh_cache_miss'
This new rate counter allows to monitor the efficiency of the radio carrier cache used for routing Downlink bursts when baseband frequency hoppong is in use.
Change-Id: Ie6da829e47298476267c8df2dcedafad564cbbb4 Related: SYS#5855 --- M src/osmo-bts-trx/l1_if.h M src/osmo-bts-trx/main.c M src/osmo-bts-trx/scheduler_trx.c 3 files changed, 8 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/11/27411/1
diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h index 50369d9..18d84c2 100644 --- a/src/osmo-bts-trx/l1_if.h +++ b/src/osmo-bts-trx/l1_if.h @@ -30,6 +30,7 @@ enum { BTSTRX_CTR_SCHED_DL_MISS_FN, BTSTRX_CTR_SCHED_DL_FH_NO_CARRIER, + BTSTRX_CTR_SCHED_DL_FH_CACHE_MISS, BTSTRX_CTR_SCHED_UL_FH_NO_CARRIER, };
diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c index 5d680f0..75b15fe 100644 --- a/src/osmo-bts-trx/main.c +++ b/src/osmo-bts-trx/main.c @@ -70,6 +70,10 @@ "trx_sched:dl_fh_no_carrier", "Frequency hopping: no carrier found for a Downlink burst (check hopping parameters)" }, + [BTSTRX_CTR_SCHED_DL_FH_CACHE_MISS] = { + "trx_sched:dl_fh_cache_miss", + "Frequency hopping: no Downlink carrier found in cache (lookup performed)" + }, [BTSTRX_CTR_SCHED_UL_FH_NO_CARRIER] = { "trx_sched:ul_fh_no_carrier", "Frequency hopping: no carrier found for an Uplink burst (check hopping parameters)" diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 8118223..3a6418b 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -148,9 +148,12 @@ if (ts->fh_trx_list[idx] != NULL) return ts->fh_trx_list[idx]->pinst;
+ struct bts_trx_priv *priv = (struct bts_trx_priv *) ts->trx->bts->model_priv; + /* The "cache" may not be filled yet, lookup the transceiver */ llist_for_each_entry(trx, &ts->trx->bts->trx_list, list) { if (trx->arfcn == ts->hopping.arfcn_list[idx]) { + rate_ctr_inc2(priv->ctrs, BTSTRX_CTR_SCHED_DL_FH_CACHE_MISS); ts->fh_trx_list[idx] = trx; return trx->pinst; } @@ -160,7 +163,6 @@ "for a Downlink burst (fn=%u, tn=%u, " SCHED_FH_PARAMS_FMT ")\n", br->fn, br->tn, SCHED_FH_PARAMS_VALS(ts));
- struct bts_trx_priv *priv = (struct bts_trx_priv *) ts->trx->bts->model_priv; rate_ctr_inc2(priv->ctrs, BTSTRX_CTR_SCHED_DL_FH_NO_CARRIER);
return NULL;