diff options
author | arehbein <arehbein@sysmocom.de> | 2022-12-16 23:28:41 +0100 |
---|---|---|
committer | pespin <pespin@sysmocom.de> | 2023-01-23 09:59:36 +0000 |
commit | fd6b81a042af7554f594dc8eabc5299794a75110 (patch) | |
tree | a7c5179c9d79b894cbd5f3bea2ff5f3f99eca093 /src/osmo-bsc/bts.c | |
parent | 9ff26123b3d6055fd124934d0a2bbecc70a9a24a (diff) |
vty: Add check against sensible default value for Ny1
Related: OS#5475
Change-Id: If3f96a6bd4f9ae32b6421de43c1c5a5d64482089
Diffstat (limited to 'src/osmo-bsc/bts.c')
-rw-r--r-- | src/osmo-bsc/bts.c | 20 |
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; +} |