pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-bsc/+/30602 )
Change subject: vty: Add check against sensible default value for Ny1 ......................................................................
vty: Add check against sensible default value for Ny1
Related: OS#5475 Change-Id: If3f96a6bd4f9ae32b6421de43c1c5a5d64482089 --- M include/osmocom/bsc/bts.h M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c 3 files changed, 23 insertions(+), 0 deletions(-)
Approvals: pespin: Looks good to me, approved msuraev: Looks good to me, but someone else must approve Jenkins Builder: Verified
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 1a84a0e..4faf5f2 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -829,3 +829,5 @@
enum gsm_bts_type_variant str2btsvariant(const char *arg); const char *btsvariant2str(enum gsm_bts_type_variant v); + +bool gsm_bts_check_ny1(const struct gsm_bts *bts); diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 9be2454..ab3e6a0 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -532,6 +532,9 @@ } }
+ if (!gsm_bts_check_ny1(bts)) + return -EINVAL; + return 0; }
@@ -1717,3 +1720,20 @@ .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; +} diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 14451f8..9fdbf43 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -92,6 +92,7 @@ msgb_tv_put(msgb, NM_ATT_BTS_AIR_TIMER, osmo_tdef_get(bts->network->T_defs, 3105, OSMO_TDEF_MS, -1)/10);
/* NY1 (3GPP TS 12.21 sec 9.4.37), number of retransmissions of physical config */ + gsm_bts_check_ny1(bts); msgb_tv_put(msgb, NM_ATT_NY1, osmo_tdef_get(bts->network->T_defs, -3105, OSMO_TDEF_CUSTOM, -1));
/* BCCH ARFCN (3GPP TS 12.21 sec 9.4.8) */