aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-07-22 01:29:54 +0200
committerneels <nhofmeyr@sysmocom.de>2021-07-22 12:15:36 +0000
commita46cd05e938ee5d454903086b5643f5e70bb5d4f (patch)
tree1d8bf951b4d9bfa3ac6ea5f94f51ce3d93a3425d
parentdf420dbe74c596b5ce00d738bde77eeeed71a354 (diff)
RES IND: allow empty Resource Information IE
If all channels of a BTS are in use and there are no interference ratings to be reported, the Resource Information IE may be empty. Do not log this as an error, it is not something that needs operator attention. Related: SYS#5313 Change-Id: I75b851ef1269674f43db3fb3a48518e76182d7f0
-rw-r--r--src/osmo-bsc/abis_rsl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c
index f6ae19a89..02037e177 100644
--- a/src/osmo-bsc/abis_rsl.c
+++ b/src/osmo-bsc/abis_rsl.c
@@ -1492,7 +1492,7 @@ static int rsl_rx_resource_indication(struct msgb *msg)
}
}
- res_info_ie = TLVP_GET_MINLEN(&tp, RSL_IE_RESOURCE_INFO, 2);
+ res_info_ie = TLVP_GET(&tp, RSL_IE_RESOURCE_INFO);
if (!res_info_ie) {
LOGP(DRSL, LOGL_ERROR, "Rx Resource Indication: missing Resource Info IE\n");
return -ENOENT;
@@ -1510,7 +1510,9 @@ static int rsl_rx_resource_indication(struct msgb *msg)
return -EINVAL;
}
- /* Now iterate the reported levels and update corresponding lchans */
+ /* Now iterate the reported levels and update corresponding lchans.
+ * Note that an empty res_info_ie can also make sense, if no lchans are idle and no interference ratings are
+ * present. The practical effect of the message then is to invalidate previous interference ratings. */
for (i = 0; i < res_info_ie->len; i += 2) {
struct gsm_bts *bts = trx->bts;
uint8_t chan_nr = res_info_ie->val[i];