[3/3] bsc: Add parameter to restart a bts
diff mbox

Message ID 1458139289-75555-3-git-send-email-holger@freyther.de
State New
Headers show

Commit Message

Holger Freyther March 16, 2016, 2:41 p.m. UTC
From: Holger Hans Peter Freyther <holger@moiji-mobile.com>

The ip.access nanoBTS seems to have severe issues with BSSGP when
changing the country code and/or network code. It is unlikely that
the proprietary code is getting fixed so we extend the parameter
for the apply-configuration command to carry the 'restart' param.
---
 openbsc/src/libbsc/bsc_ctrl_commands.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Patch
diff mbox

diff --git a/openbsc/src/libbsc/bsc_ctrl_commands.c b/openbsc/src/libbsc/bsc_ctrl_commands.c
index b6b1c9a..7e84797 100644
--- a/openbsc/src/libbsc/bsc_ctrl_commands.c
+++ b/openbsc/src/libbsc/bsc_ctrl_commands.c
@@ -90,7 +90,17 @@  static int set_net_apply_config(struct ctrl_cmd *cmd, void *data)
 		if (!is_ipaccess_bts(bts))
 			continue;
 
-		ipaccess_drop_oml(bts);
+		/*
+		 * The ip.access nanoBTS seems to be unrelaible on BSSGP
+		 * so let's us just reboot it. For the sysmoBTS we can just
+		 * restart the process as all state is gone.
+		 */
+		if (!is_sysmobts_v2(bts) && strcmp(cmd->value, "restart") == 0) {
+			struct gsm_bts_trx *trx;
+			llist_for_each_entry_reverse(trx, &bts->trx_list, list)
+				abis_nm_ipaccess_restart(trx);
+		} else
+			ipaccess_drop_oml(bts);
 	}
 
 	cmd->reply = "Tried to drop the BTS";