arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/32076 )
Change subject: common: Fix nack message cause ......................................................................
common: Fix nack message cause
Give more specific causes than NM_NACK_OBJINST_UNKN
Related: OS#5961 Related: OS#5967 Change-Id: I1ad47e2ba362e2ce676757310df8cc70641343a7 --- M src/common/oml.c 1 file changed, 25 insertions(+), 8 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/76/32076/1
diff --git a/src/common/oml.c b/src/common/oml.c index 06b2b15..1212c9c 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1627,12 +1627,14 @@ case NM_OC_BASEB_TRANSC: case NM_OC_CHANNEL: case NM_OC_GPRS_NSVC: - if (obj_inst->trx_nr >= bts->num_trx) - *c = NM_NACK_OBJINST_UNKN; + if (obj_inst->trx_nr >= bts->num_trx) { + *c = NM_NACK_PARAM_RANGE; return NULL; - if (!(trx = gsm_bts_trx_num(bts, obj_inst->trx_nr))) - *c = NM_NACK_OBJINST_UNKN; + } + if (!(trx = gsm_bts_trx_num(bts, obj_inst->trx_nr))) { + *c = NM_NACK_TRXNR_UNKN; return NULL; + } break; } /* Other cases, set mo */ @@ -1648,8 +1650,7 @@ break; case NM_OC_CHANNEL: if (obj_inst->ts_nr >= TRX_NR_TS) - *c = NM_NACK_OBJINST_UNKN; - return NULL; + goto objclass_invalid; mo = &trx->ts[obj_inst->ts_nr].mo; break; case NM_OC_SITE_MANAGER: @@ -1663,12 +1664,15 @@ break; case NM_OC_GPRS_NSVC: if (obj_inst->trx_nr >= ARRAY_SIZE(bts->gprs.nsvc)) - *c = NM_NACK_OBJINST_UNKN; - return NULL; + goto objclass_invalid; mo = &bts->gprs.nsvc[obj_inst->trx_nr].mo; break; } return mo; + +objclass_invalid: + *c = NM_NACK_OBJCLASS_INVAL; + return NULL; }
/* obtain the in-memory data structure of a given object instance */