aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-11-27 14:24:08 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-11-27 14:26:39 +0100
commitf56d56c439034c8b8bc7eb0843ba5ee1cf2400e5 (patch)
tree0c8a16404c6494315564baed536690182af74d59
parented9d643036d159bcd6dca0d7af47e6691b572a8a (diff)
sysmobts: Activate the BCCH silently have have state set to active
Use the lchan->rel_act_kind field for the BCCH activatiob by OML. The lchan's should be marked as active but no event should be sent to the BSC. This is mostly like the PCU. We can now remove the secnd argument from lchan_activate.
-rw-r--r--include/osmo-bts/rsl.h1
-rw-r--r--src/osmo-bts-sysmo/oml.c11
-rw-r--r--src/osmo-bts-sysmo/sysmobts_vty.c4
3 files changed, 9 insertions, 7 deletions
diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h
index ede9edc8..4f600741 100644
--- a/include/osmo-bts/rsl.h
+++ b/include/osmo-bts/rsl.h
@@ -8,6 +8,7 @@
enum {
LCHAN_REL_ACT_RSL,
LCHAN_REL_ACT_PCU,
+ LCHAN_REL_ACT_OML,
};
int down_rsl(struct gsm_bts_trx *trx, struct msgb *msg);
diff --git a/src/osmo-bts-sysmo/oml.c b/src/osmo-bts-sysmo/oml.c
index 4c63fd5b..395dcbc8 100644
--- a/src/osmo-bts-sysmo/oml.c
+++ b/src/osmo-bts-sysmo/oml.c
@@ -180,7 +180,7 @@ static int compl_cb_send_oml_msg(struct msgb *l1_msg, void *data)
}
#endif
-int lchan_activate(struct gsm_lchan *lchan, enum gsm_lchan_state lchan_state);
+int lchan_activate(struct gsm_lchan *lchan);
static int opstart_compl(struct gsm_abis_mo *mo, struct msgb *l1_msg)
{
@@ -204,7 +204,8 @@ static int opstart_compl(struct gsm_abis_mo *mo, struct msgb *l1_msg)
if (mo->obj_class == NM_OC_CHANNEL && mo->obj_inst.trx_nr == 0 &&
mo->obj_inst.ts_nr == 0) {
DEBUGP(DL1C, "====> trying to activate lchans of BCCH\n");
- lchan_activate(&mo->bts->c0->ts[0].lchan[4], LCHAN_S_NONE);
+ mo->bts->c0->ts[0].lchan[4].rel_act_kind = LCHAN_REL_ACT_OML;
+ lchan_activate(&mo->bts->c0->ts[0].lchan[4]);
}
/* Send OPSTART ack */
@@ -924,14 +925,14 @@ static void enqueue_sapi_act_cmd(struct gsm_lchan *lchan, int sapi, int dir)
queue_sapi_command(lchan, cmd);
}
-int lchan_activate(struct gsm_lchan *lchan, enum gsm_lchan_state lchan_state)
+int lchan_activate(struct gsm_lchan *lchan)
{
struct gsm_bts_role_bts *btsb = lchan->ts->trx->bts->role;
struct femtol1_hdl *fl1h = trx_femtol1_hdl(lchan->ts->trx);
const struct lchan_sapis *s4l = &sapis_for_lchan[lchan->type];
unsigned int i;
- lchan_set_state(lchan, lchan_state);
+ lchan_set_state(lchan, LCHAN_S_ACT_REQ);
if (!llist_empty(&lchan->sapi_cmds))
LOGP(DL1C, LOGL_ERROR,
@@ -1539,7 +1540,7 @@ int bts_model_rsl_chan_act(struct gsm_lchan *lchan, struct tlv_parsed *tp)
//uint8_t type = *TLVP_VAL(tp, RSL_IE_ACT_TYPE);
lchan->sacch_deact = 0;
- lchan_activate(lchan, LCHAN_S_ACT_REQ);
+ lchan_activate(lchan);
return 0;
}
diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c
index 3dfd6f79..cd51a962 100644
--- a/src/osmo-bts-sysmo/sysmobts_vty.c
+++ b/src/osmo-bts-sysmo/sysmobts_vty.c
@@ -48,7 +48,7 @@
#include "utils.h"
-extern int lchan_activate(struct gsm_lchan *lchan, enum gsm_lchan_state lchan_state);
+extern int lchan_activate(struct gsm_lchan *lchan);
extern int lchan_deactivate(struct gsm_lchan *lchan);
#define TRX_STR "Transceiver related commands\n" "TRX number\n"
@@ -403,7 +403,7 @@ DEFUN(activate_lchan, activate_lchan_cmd,
struct gsm_lchan *lchan = &ts->lchan[lchan_nr];
if (!strcmp(argv[2], "activate"))
- lchan_activate(lchan, LCHAN_S_ACT_REQ);
+ lchan_activate(lchan);
else
lchan_deactivate(lchan);