Change in osmo-bsc[master]: fix inp_sig_cb(): notify all timeslots of all TRXes on OML S_L_INP_TE...

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

fixeria gerrit-no-reply at lists.osmocom.org
Sat Nov 30 21:52:08 UTC 2019


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/16352 )


Change subject: fix inp_sig_cb(): notify all timeslots of all TRXes on OML S_L_INP_TEI_DN
......................................................................

fix inp_sig_cb(): notify all timeslots of all TRXes on OML S_L_INP_TEI_DN

When running a multi-trx setup, upon stopping osmo-bts one can see:

DCHAN ERROR lchan_fsm.c:80 lchan(0-1-7-TCH_F-0)[0x612000010120]{UNUSED}:
            (type=NONE) lchan allocation failed in state UNUSED: LCHAN_EV_TS_ERROR
DCHAN ERROR lchan_fsm.c:144 lchan(0-1-7-TCH_F-0)[0x612000010120]{UNUSED}:
            (type=NONE) lchan activation failed
	    (lchan allocation failed in state UNUSED: LCHAN_EV_TS_ERROR)

These messages appear only for trx->nr > 0, and the problem is in
inp_sig_cb(): when the main OML link goes down, we should notify
all timeslots *of all TRXes*, not only TRX0.

FIXME: how can we distinguish the main OML link from per-TRX ones?

Change-Id: I3dc657ac5a2c5334747bd4f4db1a658acb323942
---
M src/osmo-bsc/osmo_bsc_main.c
1 file changed, 5 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/52/16352/1

diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c
index da2914d..5c65c4c 100644
--- a/src/osmo-bsc/osmo_bsc_main.c
+++ b/src/osmo-bsc/osmo_bsc_main.c
@@ -333,6 +333,7 @@
 {
 	struct input_signal_data *isd = signal_data;
 	struct gsm_bts_trx *trx = isd->trx;
+	struct gsm_bts_trx *cur_trx;
 	/* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */
 	const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, };
 	const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, };
@@ -351,7 +352,6 @@
 		if (isd->link_type == E1INP_SIGN_OML) {
 			/* TODO: this is required for the Nokia BTS, hopping is configured
 			   during OML, other MA is not set.  */
-			struct gsm_bts_trx *cur_trx;
 			/* was static in system_information.c */
 			extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts);
 			uint8_t ca[20];
@@ -379,7 +379,10 @@
 
 		if (isd->link_type == E1INP_SIGN_OML) {
 			rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_OML_FAIL]);
-			all_ts_dispatch_event(trx, TS_EV_OML_DOWN);
+			/* Notify all timeslots of all TRXes that the OML link is gone.
+			 * FIXME: what about per-TRX OML links? */
+			llist_for_each_entry(cur_trx, &trx->bts->trx_list, list)
+				all_ts_dispatch_event(cur_trx, TS_EV_OML_DOWN);
 		} else if (isd->link_type == E1INP_SIGN_RSL) {
 			rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_RSL_FAIL]);
 			acc_ramp_abort(&trx->bts->acc_ramp);

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/16352
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: I3dc657ac5a2c5334747bd4f4db1a658acb323942
Gerrit-Change-Number: 16352
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <axilirator at gmail.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191130/4bd6d355/attachment.htm>


More information about the gerrit-log mailing list