summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-11-17 16:40:17 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2017-02-24 15:18:20 +0100
commitf34e669a797bdead46cb0f228bb1a5943a314ab7 (patch)
tree2cc1d313002dfd6fb52ab89faffadf84ffcfa234
parent82f70e8580f13e8232f5bfe2b50a24026bbda13a (diff)
HACK: re-activate dynamic PDCH after activation failure
-rw-r--r--openbsc/src/libbsc/abis_rsl.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index b37c755..dc50a48 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");