aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/abis_nm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osmo-bsc/abis_nm.c')
-rw-r--r--src/osmo-bsc/abis_nm.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c
index 7f919a43b..25b2c38d4 100644
--- a/src/osmo-bsc/abis_nm.c
+++ b/src/osmo-bsc/abis_nm.c
@@ -673,14 +673,15 @@ static int abis_nm_rx_lmt_event(struct msgb *mb)
}
/* From a received OML message, determine the matching struct gsm_bts_trx_ts instance.
- * Note that the BTS-TRX-TS numbers received in the FOM header do not correspond to the local bts->nr and
- * bts->trx->nr. Rather, the trx is identified by the e1inp_sign_link* found in msg->dst, and the TS is
- * then obtained by the FOM header's TS number. */
+ * Note that the BTS-TRX-TS numbers received in the FOM header do not correspond
+ * to the local bts->nr. Rather, the BTS is identified by the e1inp_sign_link*
+ * found in msg->dst which points to OML connection and thus to its 1st TRX, and the
+ * TRX and TS is then obtained by the FOM header's TS number. */
struct gsm_bts_trx_ts *abis_nm_get_ts(const struct msgb *oml_msg)
{
struct abis_om_fom_hdr *foh = msgb_l3(oml_msg);
struct e1inp_sign_link *sign_link = oml_msg->dst;
- struct gsm_bts_trx *trx = sign_link->trx;
+ struct gsm_bts_trx *trx = gsm_bts_trx_by_nr(sign_link->trx->bts, foh->obj_inst.trx_nr);
uint8_t ts_nr = foh->obj_inst.ts_nr;
if (!trx) {
LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for sign_link without trx\n",
@@ -699,8 +700,7 @@ static int abis_nm_rx_opstart_ack(struct msgb *mb)
{
struct abis_om_fom_hdr *foh = msgb_l3(mb);
struct e1inp_sign_link *sign_link = mb->dst;
- struct gsm_bts_trx *trx = sign_link->trx;
- DEBUGPFOH(DNM, foh, "bts=%u trx=%u Opstart ACK\n", trx->bts->nr, trx->nr);
+ DEBUGPFOH(DNM, foh, "bts=%u Opstart ACK\n", sign_link->trx->bts->nr);
osmo_signal_dispatch(SS_NM, S_NM_OPSTART_ACK, mb);
return 0;
}