From f34e669a797bdead46cb0f228bb1a5943a314ab7 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 17 Nov 2016 16:40:17 +0100 Subject: HACK: re-activate dynamic PDCH after activation failure Change-Id: Iaa6ace3da2439610e12804bdd1b3186c1d269be6 --- openbsc/src/libbsc/abis_rsl.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c index b37c75552..dc50a480d 100644 --- a/openbsc/src/libbsc/abis_rsl.c +++ b/openbsc/src/libbsc/abis_rsl.c @@ -1274,6 +1274,7 @@ static int rsl_rx_chan_act_nack(struct msgb *msg) { struct abis_rsl_dchan_hdr *dh = msgb_l2(msg); struct tlv_parsed tp; + struct gsm_bts_trx_ts *ts = msg->lchan->ts; osmo_timer_del(&msg->lchan->act_timer); @@ -1298,12 +1299,17 @@ static int rsl_rx_chan_act_nack(struct msgb *msg) TLVP_LEN(&tp, RSL_IE_CAUSE)); msg->lchan->error_cause = *cause; if (*cause != RSL_ERR_RCH_ALR_ACTV_ALLOC) { - rsl_lchan_mark_broken(msg->lchan, "NACK on activation"); + //rsl_lchan_mark_broken(msg->lchan, "NACK on activation"); } else rsl_rf_chan_release(msg->lchan, 1, SACCH_DEACTIVATE); } else { - rsl_lchan_mark_broken(msg->lchan, "NACK on activation no IE"); + //rsl_lchan_mark_broken(msg->lchan, "NACK on activation no IE"); + } + if (ts->pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH) { + enum gsm_phys_chan_config want = ts->dyn.pchan_want; + ts->dyn.pchan_want = ts->dyn.pchan_is; + dyn_ts_switchover_start(ts, want); } LOGPC(DRSL, LOGL_ERROR, "\n"); -- cgit v1.2.3