Implement VTY configuration to control Early Classmark Sending
The SI3 rest octests contain a flag that indicates if early classmark sending is allowed in this cell or not. So far we always set this to one, now it is configurable using the 'early-classmark-sending' command at the VTY node. Change-Id: Ia0b1cc5ab45673f3da70c59ae8917eba343f9862
This commit is contained in:
parent
6c4382b998
commit
42def7205b
|
@ -803,6 +803,7 @@ struct gsm_bts {
|
|||
uint16_t scramble_list[MAX_EARFCN_LIST];
|
||||
} data;
|
||||
} si_common;
|
||||
bool early_classmark_allowed;
|
||||
|
||||
/* do we use static (user-defined) system information messages? (bitmask) */
|
||||
uint32_t si_mode_static;
|
||||
|
|
|
@ -274,6 +274,9 @@ static void bts_dump_vty(struct vty *vty, struct gsm_bts *bts)
|
|||
bts->si_common.chan_desc.bs_ag_blks_res, VTY_NEWLINE);
|
||||
vty_out(vty, "System Information present: 0x%08x, static: 0x%08x%s",
|
||||
bts->si_valid, bts->si_mode_static, VTY_NEWLINE);
|
||||
vty_out(vty, "Early Classmark Sending: %s%s",
|
||||
bts->early_classmark_allowed ? "allowed" : "forbidden",
|
||||
VTY_NEWLINE);
|
||||
if (is_ipaccess_bts(bts))
|
||||
vty_out(vty, " Unit ID: %u/%u/0, OML Stream ID 0x%02x%s",
|
||||
bts->ip_access.site_id, bts->ip_access.bts_id,
|
||||
|
@ -641,6 +644,8 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts)
|
|||
VTY_NEWLINE);
|
||||
}
|
||||
}
|
||||
vty_out(vty, " early-classmark-sending %s%s",
|
||||
bts->early_classmark_allowed ? "allowed" : "forbidden", VTY_NEWLINE);
|
||||
switch (bts->type) {
|
||||
case GSM_BTS_TYPE_NANOBTS:
|
||||
case GSM_BTS_TYPE_OSMO_SYSMO:
|
||||
|
@ -2674,6 +2679,23 @@ DEFUN(cfg_bts_si_static, cfg_bts_si_static_cmd,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(cfg_bts_early_cm, cfg_bts_early_cm_cmd,
|
||||
"early-classmark-sending (allowed|forbidden)",
|
||||
"Early Classmark Sending\n"
|
||||
"Early Classmark Sending is allowed\n"
|
||||
"Early Classmark Sending is forbidden\n")
|
||||
{
|
||||
struct gsm_bts *bts = vty->index;
|
||||
int rc, type;
|
||||
|
||||
if (!strcmp(argv[0], "allowed"))
|
||||
bts->early_classmark_allowed = true;
|
||||
else
|
||||
bts->early_classmark_allowed = false;
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(cfg_bts_neigh_mode, cfg_bts_neigh_mode_cmd,
|
||||
"neighbor-list mode (automatic|manual|manual-si5)",
|
||||
"Neighbor List\n" "Mode of Neighbor List generation\n"
|
||||
|
@ -3955,6 +3977,7 @@ int bsc_vty_init(const struct log_info *cat, struct gsm_network *network)
|
|||
install_element(BTS_NODE, &cfg_bts_pag_free_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_si_mode_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_si_static_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_early_cm_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_neigh_mode_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_neigh_cmd);
|
||||
install_element(BTS_NODE, &cfg_bts_si5_neigh_cmd);
|
||||
|
@ -4029,6 +4052,7 @@ int bsc_vty_init(const struct log_info *cat, struct gsm_network *network)
|
|||
abis_nm_vty_init();
|
||||
abis_om2k_vty_init();
|
||||
e1inp_vty_init();
|
||||
osmo_fsm_vty_add_cmds();
|
||||
|
||||
bsc_vty_init_extra();
|
||||
|
||||
|
|
|
@ -764,6 +764,8 @@ static int generate_si3(uint8_t *output, struct gsm_bts *bts)
|
|||
} else {
|
||||
si_info.si2quater_indicator = 0;
|
||||
}
|
||||
si_info.early_cm_ctrl = bts->early_classmark_allowed;
|
||||
|
||||
/* SI3 Rest Octets (10.5.2.34), containing
|
||||
CBQ, CELL_RESELECT_OFFSET, TEMPORARY_OFFSET, PENALTY_TIME
|
||||
Power Offset, 2ter Indicator, Early Classmark Sending,
|
||||
|
|
Loading…
Reference in New Issue