fixeria has submitted this change. ( https://gerrit.osmocom.org/c/osmocom-bb/+/30325 )
Change subject: mobile: add MNCC socket path to settings ...................................................................... mobile: add MNCC socket path to settings Previously the MNCC socket path was generated automatically, using concatenation of the '/tmp/ms_mncc_' prefix and MS name. Let's allow the user to specify this manually, keeping the same naming generation method for default value. Change-Id: I643356ac579bc5e765f668265ec803b22a73739c Related: OS#3400 --- M doc/examples/mobile/default.cfg M doc/examples/mobile/multi_ms.cfg M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/app_mobile.c M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/vty_interface.c 6 files changed, 33 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve msuraev: Looks good to me, but someone else must approve fixeria: Looks good to me, approved diff --git a/doc/examples/mobile/default.cfg b/doc/examples/mobile/default.cfg index f14e900..d78bef5 100644 --- a/doc/examples/mobile/default.cfg +++ b/doc/examples/mobile/default.cfg @@ -14,6 +14,7 @@ ms 1 layer2-socket /tmp/osmocom_l2 sap-socket /tmp/osmocom_sap + mncc-socket /tmp/ms_mncc_1 sim reader network-selection-mode auto imei 000000000000000 0 diff --git a/doc/examples/mobile/multi_ms.cfg b/doc/examples/mobile/multi_ms.cfg index c72817f..4ccdb10 100644 --- a/doc/examples/mobile/multi_ms.cfg +++ b/doc/examples/mobile/multi_ms.cfg @@ -14,6 +14,7 @@ ms one layer2-socket /tmp/osmocom_l2.one sap-socket /tmp/osmocom_sap.one + mncc-socket /tmp/ms_mncc_one sim reader network-selection-mode auto imei 000000000000000 0 @@ -66,6 +67,7 @@ ms two layer2-socket /tmp/osmocom_l2.two sap-socket /tmp/osmocom_sap.two + mncc-socket /tmp/ms_mncc_two sim reader network-selection-mode auto imei 000000000000000 0 diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index 57f23ee..6f4f59c 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -22,6 +22,7 @@ struct gsm_settings { char layer2_socket_path[128]; char sap_socket_path[128]; + char mncc_socket_path[128]; /* Audio settings */ struct audio_settings audio; diff --git a/src/host/layer23/src/mobile/app_mobile.c b/src/host/layer23/src/mobile/app_mobile.c index 7b28bb4..5016582 100644 --- a/src/host/layer23/src/mobile/app_mobile.c +++ b/src/host/layer23/src/mobile/app_mobile.c @@ -269,6 +269,14 @@ *other_name = tmp->name; return -2; } + if (!strcmp(ms->settings.mncc_socket_path, + tmp->settings.mncc_socket_path)) { + LOGP(DMOB, LOGL_ERROR, "Cannot start MS '%s', because MS '%s' " + "is using the same mncc-socket.\nPlease shutdown " + "MS '%s' first.\n", ms->name, tmp->name, tmp->name); + *other_name = tmp->name; + return -3; + } } rc = mobile_init(ms); @@ -291,7 +299,6 @@ struct osmocom_ms *mobile_new(char *name) { static struct osmocom_ms *ms; - char *mncc_name; ms = talloc_zero(l23_ctx, struct osmocom_ms); if (!ms) { @@ -313,12 +320,8 @@ mobile_set_shutdown(ms, MS_SHUTDOWN_COMPL); if (mncc_recv_app) { - mncc_name = talloc_asprintf(ms, "/tmp/ms_mncc_%s", ms->name); - ms->mncc_entity.mncc_recv = mncc_recv_app; - ms->mncc_entity.sock_state = mncc_sock_init(ms, mncc_name); - - talloc_free(mncc_name); + ms->mncc_entity.sock_state = mncc_sock_init(ms, ms->settings.mncc_socket_path); } else if (ms->settings.ch_cap == GSM_CAP_SDCCH) ms->mncc_entity.mncc_recv = mncc_recv_dummy; else diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index 23da620..769fad6 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -28,6 +28,7 @@ static char *layer2_socket_path = "/tmp/osmocom_l2"; static char *sap_socket_path = "/tmp/osmocom_sap"; +static char *mncc_socket_path = "/tmp/ms_mncc"; int gsm_settings_init(struct osmocom_ms *ms) { @@ -37,6 +38,10 @@ strcpy(set->layer2_socket_path, layer2_socket_path); strcpy(set->sap_socket_path, sap_socket_path); + /* Compose MNCC socket path using MS name */ + snprintf(set->mncc_socket_path, sizeof(set->mncc_socket_path) - 1, + "%s_%s", mncc_socket_path, ms->name); + /* Audio settings: drop TCH frames by default */ set->audio.io_handler = AUDIO_IOH_NONE; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index d6f6cd1..7c757a6 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -1324,6 +1324,7 @@ vty_out(vty, " layer2-socket %s%s", set->layer2_socket_path, VTY_NEWLINE); vty_out(vty, " sap-socket %s%s", set->sap_socket_path, VTY_NEWLINE); + vty_out(vty, " mncc-socket %s%s", set->mncc_socket_path, VTY_NEWLINE); switch(set->sim_type) { case GSM_SIM_TYPE_NONE: vty_out(vty, " sim none%s", VTY_NEWLINE); @@ -1604,6 +1605,19 @@ return CMD_SUCCESS; } +DEFUN(cfg_ms_mncc, cfg_ms_mncc_cmd, "mncc-socket PATH", + "Define socket path for the MNCC interface\n" + "UNIX socket path (default '/tmp/ms_mncc_' + MS_NAME)") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + OSMO_STRLCPY_ARRAY(set->mncc_socket_path, argv[0]); + + vty_restart(vty, ms); + return CMD_SUCCESS; +} + DEFUN(cfg_ms_sim, cfg_ms_sim_cmd, "sim (none|reader|test|sap)", "Set SIM card to attach when powering on\nAttach no SIM\n" "Attach SIM from reader\nAttach build in test SIM\n" @@ -2933,6 +2947,7 @@ install_element(MS_NODE, &cfg_ms_show_this_cmd); install_element(MS_NODE, &cfg_ms_layer2_cmd); install_element(MS_NODE, &cfg_ms_sap_cmd); + install_element(MS_NODE, &cfg_ms_mncc_cmd); install_element(MS_NODE, &cfg_ms_sim_cmd); install_element(MS_NODE, &cfg_ms_mode_cmd); install_element(MS_NODE, &cfg_ms_imei_cmd); -- To view, visit https://gerrit.osmocom.org/c/osmocom-bb/+/30325 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-Change-Id: I643356ac579bc5e765f668265ec803b22a73739c Gerrit-Change-Number: 30325 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <vyanits...@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de> Gerrit-Reviewer: laforge <lafo...@osmocom.org> Gerrit-Reviewer: msuraev <msur...@sysmocom.de> Gerrit-MessageType: merged