aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/bts.c
diff options
context:
space:
mode:
authorarehbein <arehbein@sysmocom.de>2022-12-16 23:28:41 +0100
committerpespin <pespin@sysmocom.de>2023-01-23 09:59:36 +0000
commitfd6b81a042af7554f594dc8eabc5299794a75110 (patch)
treea7c5179c9d79b894cbd5f3bea2ff5f3f99eca093 /src/osmo-bsc/bts.c
parent9ff26123b3d6055fd124934d0a2bbecc70a9a24a (diff)
vty: Add check against sensible default value for Ny1
Diffstat (limited to 'src/osmo-bsc/bts.c')
-rw-r--r--src/osmo-bsc/bts.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 9be245406..ab3e6a053 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -532,6 +532,9 @@ __attribute__((weak)) int gsm_bts_check_cfg(struct gsm_bts *bts)
}
}
+ if (!gsm_bts_check_ny1(bts))
+ return -EINVAL;
+
return 0;
}
@@ -1717,3 +1720,20 @@ const struct osmo_stat_item_group_desc bts_statg_desc = {
.num_items = ARRAY_SIZE(bts_stat_desc),
.item_desc = bts_stat_desc,
};
+
+/* Return 'true' if and only if Ny1 satisfies network requirements */
+bool gsm_bts_check_ny1(const struct gsm_bts *bts)
+{
+ unsigned long T3105, ny1, ny1_recommended;
+ T3105 = osmo_tdef_get(bts->network->T_defs, 3105, OSMO_TDEF_MS, -1);
+ ny1 = osmo_tdef_get(bts->network->T_defs, -3105, OSMO_TDEF_CUSTOM, -1);
+ if (!(T3105 * ny1 > GSM_T3124_MAX + GSM_NY1_REQ_DELTA)) {
+ /* See comment for GSM_NY1_DEFAULT */
+ ny1_recommended = (GSM_T3124_MAX + GSM_NY1_REQ_DELTA)/T3105 + 1;
+ LOGP(DNM, LOGL_ERROR, "Value of Ny1 should be higher. "
+ "Is: %lu, lowest recommendation: %lu\n",
+ ny1, ny1_recommended);
+ return false;
+ }
+ return true;
+}