summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-09-26 22:30:15 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-09-26 22:30:15 +0000
commite326e8172857dfbeb5b26c615055853b30f09a8b (patch)
tree86f071ae5845b4039d532846e051ab567710ba8d
parent942bfeab18953cbf767b8a9ca2bdf3588e393672 (diff)
[layer23] Handle invalidation of TMSI correctly
-rw-r--r--src/host/layer23/src/mobile/gsm48_mm.c4
-rw-r--r--src/host/layer23/src/mobile/vty_interface.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_mm.c b/src/host/layer23/src/mobile/gsm48_mm.c
index eed2477e..68231273 100644
--- a/src/host/layer23/src/mobile/gsm48_mm.c
+++ b/src/host/layer23/src/mobile/gsm48_mm.c
@@ -1489,12 +1489,12 @@ static int gsm48_mm_rx_tmsi_realloc_cmd(struct osmocom_ms *ms, struct msgb *msg)
gsm48_mm_tx_tmsi_reall_cpl(ms);
break;
case GSM_MI_TYPE_IMSI:
- subscr->tmsi = 0x00000000;
+ subscr->tmsi = 0xffffffff;
LOGP(DMM, LOGL_INFO, "TMSI removed.\n");
gsm48_mm_tx_tmsi_reall_cpl(ms);
break;
default:
- subscr->tmsi = 0x00000000;
+ subscr->tmsi = 0xffffffff;
LOGP(DMM, LOGL_NOTICE, "TMSI reallocation with unknown MI "
"type %d.\n", mi_type);
gsm48_mm_tx_mm_status(ms, GSM48_REJECT_INCORRECT_MESSAGE);
diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c
index 687b7fc3..8c3ec026 100644
--- a/src/host/layer23/src/mobile/vty_interface.c
+++ b/src/host/layer23/src/mobile/vty_interface.c
@@ -528,7 +528,8 @@ DEFUN(sim_unblock_pin, sim_unblock_pin_cmd, "sim unblock-pin MS_NAME PUC NEW",
DEFUN(sim_lai, sim_lai_cmd, "sim lai MS_NAME MCC MNC LAC",
"SIM actions\nChange LAI of SIM card\nName of MS (see \"show ms\")\n"
- "Mobile Country Code\nMobile Network Code\nLocation Area Code")
+ "Mobile Country Code\nMobile Network Code\nLocation Area Code "
+ " (use 0000 to remove LAI)")
{
struct osmocom_ms *ms;
uint16_t mcc = gsm_input_mcc((char *)argv[1]),
@@ -551,6 +552,7 @@ DEFUN(sim_lai, sim_lai_cmd, "sim lai MS_NAME MCC MNC LAC",
ms->subscr.mcc = mcc;
ms->subscr.mnc = mnc;
ms->subscr.lac = lac;
+ ms->subscr.tmsi = 0xffffffff;
gsm_subscr_write_loci(ms);