OM2000: Send ALTCRQ for SuperChannel after receiving IS Enable Req Ack
When the BTS is configured to use a SuperChannel and it is using a unix domain socket based transport towards the L2TP daemon, then we must instruct the L2TP daemon to instruct the SIU to change the Abis Lower Transport Mode using the ALTCRQ / ALTCRP L2TP signalling. Change-Id: I672bfaa09c42fbeb0c8459f24b2222b952de954b
This commit is contained in:
parent
dd22a30d75
commit
ce49258a12
|
@ -729,6 +729,7 @@ struct gsm_bts {
|
|||
struct om2k_mo om2k_mo;
|
||||
struct gsm_abis_mo mo;
|
||||
} tf;
|
||||
uint32_t use_superchannel:1;
|
||||
} rbs2000;
|
||||
struct {
|
||||
uint8_t bts_type;
|
||||
|
|
|
@ -1654,6 +1654,7 @@ static void om2k_mo_st_wait_cfg_res(struct osmo_fsm_inst *fi, uint32_t event, vo
|
|||
|
||||
static void om2k_mo_st_wait_enable_accept(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||
{
|
||||
struct om2k_mo_fsm_priv *omfp = fi->priv;
|
||||
struct om2k_decoded_msg *omd = data;
|
||||
|
||||
switch (omd->msg_type) {
|
||||
|
@ -1661,6 +1662,9 @@ static void om2k_mo_st_wait_enable_accept(struct osmo_fsm_inst *fi, uint32_t eve
|
|||
osmo_fsm_inst_state_chg(fi, OM2K_ST_ERROR, 0, 0);
|
||||
break;
|
||||
case OM2K_MSGT_ENABLE_REQ_ACK:
|
||||
if (omfp->mo->addr.class == OM2K_MO_CLS_IS &&
|
||||
omfp->trx->bts->rbs2000.use_superchannel)
|
||||
e1inp_ericsson_set_altc(omfp->trx->bts->oml_link->ts->line, 1);
|
||||
osmo_fsm_inst_state_chg(fi, OM2K_ST_WAIT_ENABLE_RES,
|
||||
OM2K_TIMEOUT, 0);
|
||||
}
|
||||
|
|
|
@ -417,6 +417,29 @@ DEFUN(cfg_om2k_con_path_conc, cfg_om2k_con_path_conc_cmd,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(cfg_bts_alt_mode, cfg_bts_alt_mode_cmd,
|
||||
"abis-lower-transport (single-timeslot|super-channel)",
|
||||
"Configure thee Abis Lower Transport\n"
|
||||
"Single Timeslot (classic Abis)\n"
|
||||
"SuperChannel (Packet Abis)\n")
|
||||
{
|
||||
struct gsm_bts *bts = vty->index;
|
||||
struct con_group *cg;
|
||||
|
||||
if (bts->type != GSM_BTS_TYPE_RBS2000) {
|
||||
vty_out(vty, "%% Command only works for RBS2000%s",
|
||||
VTY_NEWLINE);
|
||||
return CMD_WARNING;
|
||||
}
|
||||
|
||||
if (!strcmp(argv[0], "super-channel"))
|
||||
bts->rbs2000.use_superchannel = 1;
|
||||
else
|
||||
bts->rbs2000.use_superchannel = 0;
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(cfg_bts_is_conn_list, cfg_bts_is_conn_list_cmd,
|
||||
"is-connection-list (add|del) <0-2047> <0-2047> <0-255>",
|
||||
"Interface Switch Connection List\n"
|
||||
|
@ -548,6 +571,9 @@ void abis_om2k_config_write_bts(struct vty *vty, struct gsm_bts *bts)
|
|||
VTY_NEWLINE);
|
||||
dump_con_group(vty, cgrp);
|
||||
}
|
||||
if (bts->rbs2000.use_superchannel)
|
||||
vty_out(vty, " abis-lower-transport super-channel%s",
|
||||
VTY_NEWLINE);
|
||||
}
|
||||
|
||||
int abis_om2k_vty_init(void)
|
||||
|
@ -575,6 +601,7 @@ int abis_om2k_vty_init(void)
|
|||
install_element(OM2K_CON_GROUP_NODE, &cfg_om2k_con_path_conc_cmd);
|
||||
|
||||
install_element(BTS_NODE, &cfg_bts_is_conn_list_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_alt_mode_cmd);
|
||||
install_element(BTS_NODE, &cfg_om2k_con_group_cmd);
|
||||
install_element(BTS_NODE, &del_om2k_con_group_cmd);
|
||||
|
||||
|
|
Loading…
Reference in New Issue