diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 53b30bfa0..4380f162c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -28,7 +28,9 @@ osmo-build-dep.sh libosmocore "" '--disable-doxygen --enable-gnutls' verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]") # Check for wrong use of osmo_bts_has_feature (OS#5538) -bts_features_wrong_use="$(grep -r -n 'osmo_bts_has_feature.*->model->features' | grep -v 'jenkins.sh')" || true +bts_features_wrong_use="$(grep -r -n 'osmo_bts_has_feature.*->model->features' \ + | grep -v 'jenkins.sh' \ + | grep -v 'intentional check against bts model')" || true if [ -n "$bts_features_wrong_use" ]; then set +x echo diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 62f62b6a6..b7009940f 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -613,6 +613,20 @@ static int parse_attr_resp_info_attr(struct gsm_bts *bts, const struct gsm_bts_t LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: feature '%s' is" " supported\n", osmo_bts_features_name(i)); } + + /* Add features from the BTS model: nanobts may support more + * features than it reports, since we extend the enum of + * features for osmo-bts. */ + if (bts->type == GSM_BTS_TYPE_NANOBTS) { + for (i = 0; i < _NUM_BTS_FEAT; i++) { + if (osmo_bts_has_feature(&bts->model->features, i) /* intentional check against bts model */ + && !osmo_bts_has_feature(&bts->features, i)) { + LOGPMO(&bts->mo, DNM, LOGL_NOTICE, "Get Attributes Response: feature '%s' is" + " assumed to be supported\n", osmo_bts_features_name(i)); + osmo_bts_set_feature(&bts->features, i); + } + } + } } /* Parse Attribute Response Info content for 3GPP TS 52.021 ยง9.4.28 Manufacturer Dependent State */