aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/rsl.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2014-01-23 16:00:11 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-03-10 13:38:07 +0100
commit8ade45e795d1ee531423d529dfa2c441ece1196a (patch)
tree8c31c34dd28ece47104246de80f3ec5c27ef513a /src/common/rsl.c
parent3058854535f08e12f6d8dd4f35490ecef40b3040 (diff)
handover: Set basic values for handover, remember the activation reason
Introduce the handover.h/handover.c and initialize handover parameters in OML and remember the activation through RSL.
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r--src/common/rsl.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index c97dd8a3..6b683bd5 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -45,6 +45,7 @@
#include <osmo-bts/bts_model.h>
#include <osmo-bts/measurement.h>
#include <osmo-bts/pcu_if.h>
+#include <osmo-bts/handover.h>
//#define FAKE_CIPH_MODE_COMPL
@@ -736,6 +737,12 @@ static int rsl_rx_chan_activ(struct msgb *msg)
memset(&lchan->encr, 0, sizeof(lchan->encr));
/* 9.3.9 Handover Reference */
+ if ((type == RSL_ACT_INTER_ASYNC ||
+ type == RSL_ACT_INTER_SYNC) &&
+ TLVP_PRESENT(&tp, RSL_IE_HANDO_REF)) {
+ lchan->ho.active = HANDOVER_ENABLED;
+ lchan->ho.ref = *TLVP_VAL(&tp, RSL_IE_HANDO_REF);
+ }
/* 9.3.4 BS Power */
if (TLVP_PRESENT(&tp, RSL_IE_BS_POWER))
@@ -832,6 +839,9 @@ static int rsl_rx_rf_chan_rel(struct gsm_lchan *lchan)
msgb_queue_flush(&lchan->dl_tch_queue);
}
+ /* release handover state */
+ handover_reset(lchan);
+
lchan->rel_act_kind = LCHAN_REL_ACT_RSL;
rc = bts_model_rsl_chan_rel(lchan);