From 4454350b4278e8a471aa93de2c1146c70a491bbf Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 8 Sep 2023 03:21:23 +0700 Subject: oml: ipacc: parse Object Version from SW Activated Report Change-Id: I39105096a6b29bd7e4fb15287653074527c3e024 Related: OS#4505 --- src/osmo-bsc/bts_ipaccess_nanobts.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 941fe557e..24966a73d 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -199,6 +199,7 @@ static int sw_activ_rep(struct msgb *mb) struct e1inp_sign_link *sign_link = mb->dst; struct gsm_bts *bts = sign_link->trx->bts; struct gsm_abis_mo *mo; + struct tlv_parsed tp; if (!is_ipa_abisip_bts(bts)) return 0; @@ -209,6 +210,20 @@ static int sw_activ_rep(struct msgb *mb) return -ENOENT; } + if (abis_nm_tlv_parse(&tp, bts, &foh->data[0], msgb_l3len(mb) - sizeof(*foh)) < 0) { + LOGPFOH(DNM, LOGL_ERROR, foh, "%s(): tlv_parse failed\n", __func__); + return -EINVAL; + } + + mo->ipaccess.obj_version = 0; /* implicit default */ + if (TLVP_PRES_LEN(&tp, NM_ATT_IPACC_OBJ_VERSION, 1)) { + /* nanoBTS may report several Object Versions; the first one will + * be used by default unless requested explicitly before OPSTARTing. */ + mo->ipaccess.obj_version = *TLVP_VAL(&tp, NM_ATT_IPACC_OBJ_VERSION); + LOGPFOH(DNM, LOGL_INFO, foh, "IPA Object Version is %u (default)\n", + mo->ipaccess.obj_version); + } + osmo_fsm_inst_dispatch(mo->fi, NM_EV_SW_ACT_REP, NULL); return 0; } -- cgit v1.2.3