fixeria has uploaded this change for review.

View Change

Add [no ]force-cell-sel-ind-after-rel

Change-Id: Ie5fa3e036e0a0dd4049a4230d6cd4cb7c158088e
Related: SYS#7482
---
M include/osmocom/bsc/gsm_data.h
M src/osmo-bsc/bsc_vty.c
M src/osmo-bsc/gsm_04_08_rr.c
3 files changed, 33 insertions(+), 1 deletion(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/23/40723/1
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 59d22d7..1d82d5c 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -1086,6 +1086,9 @@
char *pcu_sock_path;
unsigned int pcu_sock_wqueue_len_max;
struct pcu_sock_state *pcu_state;
+
+ /* Always include the "cell selection indicator after release of all TCHs and SDCCH" IE */
+ bool force_cell_sel_ind_after_rel;
};

struct gsm_audio_support {
diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c
index e9dabf9..96c6c43 100644
--- a/src/osmo-bsc/bsc_vty.c
+++ b/src/osmo-bsc/bsc_vty.c
@@ -436,6 +436,9 @@
vty_out(vty, " pcu-socket-wqueue-length %u%s", gsmnet->pcu_sock_wqueue_len_max,
VTY_NEWLINE);

+ if (gsmnet->force_cell_sel_ind_after_rel)
+ vty_out(vty, " force-cell-sel-ind-after-rel%s", VTY_NEWLINE);
+
neighbor_ident_vty_write_network(vty, " ");
mgcp_client_pool_config_write(vty, " ");

@@ -2554,6 +2557,30 @@
return CMD_SUCCESS;
}

+DEFUN_ATTR(cfg_net_force_cell_sel_ind_after_rel,
+ cfg_net_force_cell_sel_ind_after_rel_cmd,
+ "force-cell-sel-ind-after-rel",
+ "Always include the \"cell selection indicator after release of all TCHs and SDCCH\" IE\n",
+ CMD_ATTR_IMMEDIATE)
+{
+ struct gsm_network *net = gsmnet_from_vty(vty);
+
+ net->force_cell_sel_ind_after_rel = true;
+ return CMD_SUCCESS;
+}
+
+DEFUN_ATTR(cfg_net_no_force_cell_sel_ind_after_rel,
+ cfg_net_no_force_cell_sel_ind_after_rel_cmd,
+ "no force-cell-sel-ind-after-rel",
+ NO_STR "Do not force the \"cell selection indicator after release of all TCHs and SDCCH\" IE\n",
+ CMD_ATTR_IMMEDIATE)
+{
+ struct gsm_network *net = gsmnet_from_vty(vty);
+
+ net->force_cell_sel_ind_after_rel = false;
+ return CMD_SUCCESS;
+}
+
static struct bsc_msc_data *bsc_msc_data(struct vty *vty)
{
return vty->index;
@@ -3644,6 +3671,8 @@
install_element(GSMNET_NODE, &cfg_net_pcu_sock_path_cmd);
install_element(GSMNET_NODE, &cfg_bts_pcu_sock_wqueue_len_cmd);
install_element(GSMNET_NODE, &cfg_net_no_pcu_sock_cmd);
+ install_element(GSMNET_NODE, &cfg_net_force_cell_sel_ind_after_rel_cmd);
+ install_element(GSMNET_NODE, &cfg_net_no_force_cell_sel_ind_after_rel_cmd);

/* Timer configuration commands (generic osmo_tdef API) */
osmo_tdef_vty_groups_init(GSMNET_NODE, bsc_tdef_group);
diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c
index 1944321..ed9877e 100644
--- a/src/osmo-bsc/gsm_04_08_rr.c
+++ b/src/osmo-bsc/gsm_04_08_rr.c
@@ -325,7 +325,7 @@
cause = msgb_put(msg, 1);
cause[0] = lchan->release.rr_cause;

- if (lchan->release.last_eutran_plmn_valid) {
+ if (lchan->release.last_eutran_plmn_valid || bsc_gsmnet->force_cell_sel_ind_after_rel) {
uint8_t buf[CELL_SEL_IND_AFTER_REL_MAX_BYTES];
int len;
/* FIXME: so far we assume all configured neigbhors match last_eutran_plmn */

To view, visit change 40723. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ie5fa3e036e0a0dd4049a4230d6cd4cb7c158088e
Gerrit-Change-Number: 40723
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>