aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-07-02 21:53:32 +0200
committerHarald Welte <laforge@gnumonks.org>2012-07-05 15:31:05 +0200
commit5f8a3149fe6a80e3aa73c4f99808d418f52e9f01 (patch)
tree83492f2880125100c79de39222f0b1ae4279bc0e /src/osmo-bts-sysmo
parenteda6c2636031eedfb701011a3882d4ca54228ad6 (diff)
sysmobts: avoid sending duplicate RSL CHAN ACT ACK
This is just an intermediary hack, until we get proper lchan manager threads...
Diffstat (limited to 'src/osmo-bts-sysmo')
-rw-r--r--src/osmo-bts-sysmo/oml.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index b1b0aa13..2a9b0a34 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -467,9 +467,12 @@ static int lchan_act_compl_cb(struct msgb *l1_msg, void *data)
case GsmL1_Sapi_TchF:
case GsmL1_Sapi_TchH:
time = bts_model_get_time(lchan->ts->trx->bts);
- if (lchan->state == LCHAN_S_ACTIVE)
- rsl_tx_chan_act_ack(lchan, time);
- else
+ if (lchan->state == LCHAN_S_ACTIVE) {
+ /* Hack: we simply only use one direction to
+ * avoid sending two ACKs for one activate */
+ if (ic->dir == GsmL1_Dir_TxDownlink)
+ rsl_tx_chan_act_ack(lchan, time);
+ } else
rsl_tx_chan_act_nack(lchan, RSL_ERR_EQUIPMENT_FAIL);
break;
default: