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,
void *handler_data, void *signal_data)
{
struct osmocom_ms *ms;
+ struct gsm_settings *set;
struct msgb *nmsg;
if (subsys != SS_L1CTL)
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)
}
/* 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;
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)
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)
}
}
- 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;
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);