summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-11-17 16:40:17 +0100
committerAlexander Couzens <lynxis@fe80.eu>2017-03-13 10:35:47 +0100
commitaa7568c1cf0ffc17cada5a436ccd77fa9db21a1f (patch)
treed39e09dc0e66b18e5446691a43a607a88c4adb47
parent2c2a9611ea8fc9bec74ef0167c575ad3f297e396 (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 ef6c897..4175a2c 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -1295,6 +1295,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);
@@ -1319,12 +1320,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");