ASCI: Add selection reason for VGCS/VBS channels
"enum lchan_select_reason" gets a new selection reason: "SELECT_FOR_VGCS" The selection "direction" can also be changed via VTY. Change-Id: I6b96d0a1df68efa5858b98297ebe0944b1473aaf Related: OS#4852
This commit is contained in:
parent
4827437a26
commit
2436f40b4c
|
@ -523,6 +523,7 @@ struct gsm_bts {
|
||||||
bool chan_alloc_chan_req_reverse;
|
bool chan_alloc_chan_req_reverse;
|
||||||
bool chan_alloc_assignment_reverse;
|
bool chan_alloc_assignment_reverse;
|
||||||
bool chan_alloc_handover_reverse;
|
bool chan_alloc_handover_reverse;
|
||||||
|
bool chan_alloc_vgcs_reverse;
|
||||||
|
|
||||||
/* Whether to use dynamic allocation mode for assignment */
|
/* Whether to use dynamic allocation mode for assignment */
|
||||||
bool chan_alloc_assignment_dynamic;
|
bool chan_alloc_assignment_dynamic;
|
||||||
|
|
|
@ -5,6 +5,7 @@ enum lchan_select_reason {
|
||||||
SELECT_FOR_MS_CHAN_REQ,
|
SELECT_FOR_MS_CHAN_REQ,
|
||||||
SELECT_FOR_ASSIGNMENT,
|
SELECT_FOR_ASSIGNMENT,
|
||||||
SELECT_FOR_HANDOVER,
|
SELECT_FOR_HANDOVER,
|
||||||
|
SELECT_FOR_VGCS,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const struct value_string lchan_select_reason_names[];
|
extern const struct value_string lchan_select_reason_names[];
|
||||||
|
|
|
@ -549,6 +549,7 @@ DEFUN_ATTR(cfg_bts_challoc_mode_all,
|
||||||
bts->chan_alloc_chan_req_reverse = reverse;
|
bts->chan_alloc_chan_req_reverse = reverse;
|
||||||
bts->chan_alloc_assignment_reverse = reverse;
|
bts->chan_alloc_assignment_reverse = reverse;
|
||||||
bts->chan_alloc_handover_reverse = reverse;
|
bts->chan_alloc_handover_reverse = reverse;
|
||||||
|
bts->chan_alloc_vgcs_reverse = reverse;
|
||||||
bts->chan_alloc_assignment_dynamic = false;
|
bts->chan_alloc_assignment_dynamic = false;
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
|
@ -557,7 +558,7 @@ DEFUN_ATTR(cfg_bts_challoc_mode_all,
|
||||||
DEFUN_ATTR(cfg_bts_challoc_mode,
|
DEFUN_ATTR(cfg_bts_challoc_mode,
|
||||||
cfg_bts_challoc_mode_cmd,
|
cfg_bts_challoc_mode_cmd,
|
||||||
CHAN_ALLOC_CMD
|
CHAN_ALLOC_CMD
|
||||||
" mode (set-all|chan-req|assignment|handover) "
|
" mode (set-all|chan-req|assignment|handover|vgcs-vbs) "
|
||||||
CHAN_ALLOC_ASC_DSC,
|
CHAN_ALLOC_ASC_DSC,
|
||||||
CHAN_ALLOC_DESC
|
CHAN_ALLOC_DESC
|
||||||
"Channel allocation mode\n"
|
"Channel allocation mode\n"
|
||||||
|
@ -565,6 +566,7 @@ DEFUN_ATTR(cfg_bts_challoc_mode,
|
||||||
"Channel allocation for CHANNEL REQUEST (RACH)\n"
|
"Channel allocation for CHANNEL REQUEST (RACH)\n"
|
||||||
"Channel allocation for assignment\n"
|
"Channel allocation for assignment\n"
|
||||||
"Channel allocation for handover\n"
|
"Channel allocation for handover\n"
|
||||||
|
"Channel allocation for VGCS/VBS\n"
|
||||||
CHAN_ALLOC_ASC_DSC_DESC,
|
CHAN_ALLOC_ASC_DSC_DESC,
|
||||||
CMD_ATTR_IMMEDIATE)
|
CMD_ATTR_IMMEDIATE)
|
||||||
{
|
{
|
||||||
|
@ -580,6 +582,8 @@ DEFUN_ATTR(cfg_bts_challoc_mode,
|
||||||
}
|
}
|
||||||
if (set_all || !strcmp(argv[0], "handover"))
|
if (set_all || !strcmp(argv[0], "handover"))
|
||||||
bts->chan_alloc_handover_reverse = reverse;
|
bts->chan_alloc_handover_reverse = reverse;
|
||||||
|
if (set_all || !strcmp(argv[0], "vgcs-vbs"))
|
||||||
|
bts->chan_alloc_vgcs_reverse = reverse;
|
||||||
|
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -4424,6 +4428,9 @@ static void config_write_bts_single(struct vty *vty, struct gsm_bts *bts)
|
||||||
vty_out(vty, " channel allocator mode handover %s%s",
|
vty_out(vty, " channel allocator mode handover %s%s",
|
||||||
bts->chan_alloc_handover_reverse ? "descending" : "ascending",
|
bts->chan_alloc_handover_reverse ? "descending" : "ascending",
|
||||||
VTY_NEWLINE);
|
VTY_NEWLINE);
|
||||||
|
vty_out(vty, " channel allocator mode vgcs-vbs %s%s",
|
||||||
|
bts->chan_alloc_vgcs_reverse ? "descending" : "ascending",
|
||||||
|
VTY_NEWLINE);
|
||||||
if (bts->chan_alloc_avoid_interf)
|
if (bts->chan_alloc_avoid_interf)
|
||||||
vty_out(vty, " channel allocator avoid-interference 1%s", VTY_NEWLINE);
|
vty_out(vty, " channel allocator avoid-interference 1%s", VTY_NEWLINE);
|
||||||
if (bts->chan_alloc_tch_signalling_policy == BTS_TCH_SIGNALLING_NEVER)
|
if (bts->chan_alloc_tch_signalling_policy == BTS_TCH_SIGNALLING_NEVER)
|
||||||
|
|
|
@ -41,6 +41,7 @@ const struct value_string lchan_select_reason_names[] = {
|
||||||
OSMO_VALUE_STRING(SELECT_FOR_MS_CHAN_REQ),
|
OSMO_VALUE_STRING(SELECT_FOR_MS_CHAN_REQ),
|
||||||
OSMO_VALUE_STRING(SELECT_FOR_ASSIGNMENT),
|
OSMO_VALUE_STRING(SELECT_FOR_ASSIGNMENT),
|
||||||
OSMO_VALUE_STRING(SELECT_FOR_HANDOVER),
|
OSMO_VALUE_STRING(SELECT_FOR_HANDOVER),
|
||||||
|
OSMO_VALUE_STRING(SELECT_FOR_VGCS),
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -349,6 +350,9 @@ struct gsm_lchan *lchan_avail_by_type(struct gsm_bts *bts,
|
||||||
case SELECT_FOR_HANDOVER:
|
case SELECT_FOR_HANDOVER:
|
||||||
chan_alloc_reverse = bts->chan_alloc_handover_reverse;
|
chan_alloc_reverse = bts->chan_alloc_handover_reverse;
|
||||||
break;
|
break;
|
||||||
|
case SELECT_FOR_VGCS:
|
||||||
|
chan_alloc_reverse = bts->chan_alloc_vgcs_reverse;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate an array with pointers to all timeslots of a BTS */
|
/* Allocate an array with pointers to all timeslots of a BTS */
|
||||||
|
|
|
@ -177,6 +177,7 @@ OsmoBSC(config-net-bts)# channel allocator mode ?
|
||||||
chan-req Channel allocation for CHANNEL REQUEST (RACH)
|
chan-req Channel allocation for CHANNEL REQUEST (RACH)
|
||||||
assignment Channel allocation for assignment
|
assignment Channel allocation for assignment
|
||||||
handover Channel allocation for handover
|
handover Channel allocation for handover
|
||||||
|
vgcs-vbs Channel allocation for VGCS/VBS
|
||||||
|
|
||||||
OsmoBSC(config-net-bts)# channel allocator mode set-all ?
|
OsmoBSC(config-net-bts)# channel allocator mode set-all ?
|
||||||
ascending Allocate Timeslots and Transceivers in ascending order
|
ascending Allocate Timeslots and Transceivers in ascending order
|
||||||
|
@ -191,6 +192,10 @@ OsmoBSC(config-net-bts)# channel allocator mode assignment ?
|
||||||
descending Allocate Timeslots and Transceivers in descending order
|
descending Allocate Timeslots and Transceivers in descending order
|
||||||
dynamic Dynamic lchan selection based on configured parameters
|
dynamic Dynamic lchan selection based on configured parameters
|
||||||
|
|
||||||
|
OsmoBSC(config-net-bts)# channel allocator mode vgcs-vbs ?
|
||||||
|
ascending Allocate Timeslots and Transceivers in ascending order
|
||||||
|
descending Allocate Timeslots and Transceivers in descending order
|
||||||
|
|
||||||
OsmoBSC(config-net-bts)# channel allocator dynamic-param ?
|
OsmoBSC(config-net-bts)# channel allocator dynamic-param ?
|
||||||
sort-by-trx-power Whether to sort TRX instances by their respective power levels
|
sort-by-trx-power Whether to sort TRX instances by their respective power levels
|
||||||
ul-rxlev Uplink RxLev
|
ul-rxlev Uplink RxLev
|
||||||
|
|
Loading…
Reference in New Issue