From: Andreas.Eversberg Date: Thu, 22 Jul 2010 16:11:28 +0000 (+0000) Subject: [layer23] Re-structured the VTY commands for SIM insert/remove X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=82fbc17d4b80f85c1781163c2560ed105f15fa15;p=osmocom-bb.git [layer23] Re-structured the VTY commands for SIM insert/remove Now the commands are "sim testcard [ ] " or "sim remove " --- diff --git a/src/host/layer23/include/osmocom/subscriber.h b/src/host/layer23/include/osmocom/subscriber.h index 09eab23..34f4528 100644 --- a/src/host/layer23/include/osmocom/subscriber.h +++ b/src/host/layer23/include/osmocom/subscriber.h @@ -70,7 +70,7 @@ struct gsm_subscriber { int gsm_subscr_init(struct osmocom_ms *ms); int gsm_subscr_exit(struct osmocom_ms *ms); -int gsm_subscr_testcard(struct osmocom_ms *ms); +int gsm_subscr_testcard(struct osmocom_ms *ms, uint16_t mcc, uint16_t mnc); int gsm_subscr_remove(struct osmocom_ms *ms); void new_sim_ustate(struct gsm_subscriber *subscr, int state); int gsm_subscr_del_forbidden_plmn(struct gsm_subscriber *subscr, uint16_t mcc, diff --git a/src/host/layer23/src/app_mobile.c b/src/host/layer23/src/app_mobile.c index eb50e50..41bba19 100644 --- a/src/host/layer23/src/app_mobile.c +++ b/src/host/layer23/src/app_mobile.c @@ -75,6 +75,7 @@ static int signal_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { struct osmocom_ms *ms; + struct gsm_settings *set; struct msgb *nmsg; if (subsys != SS_L1CTL) @@ -86,9 +87,11 @@ static int signal_cb(unsigned int subsys, unsigned int signal, break; started = 1; ms = signal_data; + set = &ms->settings; /* insert test card, if enabled */ - if (ms->settings.simtype == GSM_SIM_TYPE_TEST) - gsm_subscr_testcard(ms); + if (set->simtype == GSM_SIM_TYPE_TEST) + gsm_subscr_testcard(ms, set->test_rplmn_mcc, + set->test_rplmn_mnc); /* start PLMN + cell selection process */ nmsg = gsm322_msgb_alloc(GSM322_EVENT_SWITCH_ON); if (!nmsg) diff --git a/src/host/layer23/src/subscriber.c b/src/host/layer23/src/subscriber.c index 34b7582..8245cdc 100644 --- a/src/host/layer23/src/subscriber.c +++ b/src/host/layer23/src/subscriber.c @@ -66,7 +66,7 @@ int gsm_subscr_exit(struct osmocom_ms *ms) } /* Attach test card, no sim must be present */ -int gsm_subscr_testcard(struct osmocom_ms *ms) +int gsm_subscr_testcard(struct osmocom_ms *ms, uint16_t mcc, uint16_t mnc) { struct gsm_settings *set = &ms->settings; struct gsm_subscriber *subscr = &ms->subscr; @@ -96,16 +96,20 @@ int gsm_subscr_testcard(struct osmocom_ms *ms) subscr->acc_barr = set->test_barr; /* we may access barred cell */ subscr->acc_class = 0xffff; /* we have any access class */ subscr->plmn_valid = set->test_rplmn_valid; - subscr->plmn_mcc = set->test_rplmn_mcc; - subscr->plmn_mnc = set->test_rplmn_mnc; + subscr->plmn_mcc = mcc; + subscr->plmn_mnc = mnc; subscr->always_search_hplmn = set->test_always; subscr->t6m_hplmn = 1; /* try to find home network every 6 min */ strcpy(subscr->imsi, set->test_imsi); - LOGP(DMM, LOGL_INFO, "(ms %s) Inserting test card (IMSI=%s %s,%s)\n", + LOGP(DMM, LOGL_INFO, "(ms %s) Inserting test card (IMSI=%s %s, %s)\n", ms->name, subscr->imsi, gsm_imsi_mcc(subscr->imsi), gsm_imsi_mnc(subscr->imsi)); + LOGP(DMM, LOGL_INFO, "-> Test card regisered to %s %s (%s, %s)\n", + gsm_print_mcc(mcc), gsm_print_mnc(mnc), gsm_get_mcc(mcc), + gsm_get_mnc(mcc, mnc)); + /* insert card */ msg = gsm48_mmr_msgb_alloc(GSM48_MMR_REG_REQ); if (!msg) diff --git a/src/host/layer23/src/vty_interface.c b/src/host/layer23/src/vty_interface.c index c085c89..d627d31 100644 --- a/src/host/layer23/src/vty_interface.c +++ b/src/host/layer23/src/vty_interface.c @@ -337,12 +337,12 @@ DEFUN(no_monitor_network, no_monitor_network_cmd, "no monitor network MS_NAME", return CMD_SUCCESS; } -DEFUN(insert_test, insert_test_cmd, "insert testcard MS_NAME [mcc] [mnc]", - "Insert ...\nInsert test card\nName of MS (see \"show ms\")\n" - "Mobile Country Code\nMobile Network Code") +DEFUN(sim_test, sim_test_cmd, "sim testcard MS_NAME [mcc] [mnc]", + "SIM actions\nInsert test card\nName of MS (see \"show ms\")\n" + "Mobile Country Code of RPLMN\nMobile Network Code of RPLMN") { struct osmocom_ms *ms; - uint16_t mcc = 1, mnc = 1; + uint16_t mcc = 0x001, mnc = 0x01f; ms = get_ms(argv[0], vty); if (!ms) @@ -367,13 +367,13 @@ DEFUN(insert_test, insert_test_cmd, "insert testcard MS_NAME [mcc] [mnc]", } } - gsm_subscr_testcard(ms); + gsm_subscr_testcard(ms, mcc, mnc); return CMD_SUCCESS; } -DEFUN(remove_sim, remove_sim_cmd, "remove sim MS_NAME", - "Remove ...\nRemove SIM card\nName of MS (see \"show ms\")") +DEFUN(sim_remove, sim_remove_cmd, "sim remove MS_NAME", + "SIM actions\nRemove SIM card\nName of MS (see \"show ms\")") { struct osmocom_ms *ms; @@ -1071,8 +1071,8 @@ int ms_vty_init(void) install_element_ve(&monitor_network_cmd); install_element_ve(&no_monitor_network_cmd); - install_element(ENABLE_NODE, &insert_test_cmd); - install_element(ENABLE_NODE, &remove_sim_cmd); + install_element(ENABLE_NODE, &sim_test_cmd); + install_element(ENABLE_NODE, &sim_remove_cmd); install_element(ENABLE_NODE, &network_search_cmd); install_element(ENABLE_NODE, &network_show_cmd); install_element(ENABLE_NODE, &network_select_cmd);