aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/tests/gbproxy
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2014-10-30 17:15:43 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-12-02 09:00:09 +0100
commit59ac49dc1fd3b1435ef2eeb0b5daf555a946cde6 (patch)
tree365b614cc524208ad269407eb037279a6f552120 /openbsc/tests/gbproxy
parent175a240285897317fff4a94e4f9b62408797b4b6 (diff)
gbproxy: Reset TLLIs when the link_info is found by IMSI/P-TMSI
Currently when the MS does a re-attach without doing a proper detach first, the gbproxy uses the old local TLLI if patching and the keep mode are enabled. This leads to a failing attachment procedure when TLLI patching is also enabled. This patch changes gbproxy_update_link_state_ul to reset all TLLIs within the link_info if the message contains an unknown TLLI and an MI. This is generally the case with Attach Request messages. The gbproxy_get_link_info_ul gets an additional tlli_is_valid output parameter that is set, when a TLLI was present and found. This flag is then used instead of checking tlli.current == 0 to set TLLI/P-TMSI e.g. Attach Requests when a link_info was already present for the P-TMSI/IMSI used in such a request. Ticket: OW#1324 Sponsored-by: On-Waves ehf
Diffstat (limited to 'openbsc/tests/gbproxy')
-rw-r--r--openbsc/tests/gbproxy/gbproxy_test.c16
-rw-r--r--openbsc/tests/gbproxy/gbproxy_test.ok4
2 files changed, 6 insertions, 14 deletions
diff --git a/openbsc/tests/gbproxy/gbproxy_test.c b/openbsc/tests/gbproxy/gbproxy_test.c
index e35b3628f..d3ce39b7b 100644
--- a/openbsc/tests/gbproxy/gbproxy_test.c
+++ b/openbsc/tests/gbproxy/gbproxy_test.c
@@ -4116,16 +4116,12 @@ static void test_gbproxy_keep_info()
link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi));
link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli);
- /* FIXME: The gbproxy still uses local_tlli instead of foreign_tlli.
- * Uncomment the assertions below and remove the
- * gbproxy_link_info_by_tlli line below when this is fixed. */
- /* OSMO_ASSERT(link_info); */
- link_info = gbproxy_link_info_by_tlli(peer, local_tlli);
+ OSMO_ASSERT(link_info);
OSMO_ASSERT(link_info == link_info2);
OSMO_ASSERT(link_info->imsi_len != 0);
OSMO_ASSERT(!link_info->is_deregistered);
OSMO_ASSERT(!link_info->imsi_acq_pending);
- /* OSMO_ASSERT(link_info->sgsn_tlli.current == foreign_tlli); */
+ OSMO_ASSERT(link_info->sgsn_tlli.current == foreign_tlli);
OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0);
send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002,
@@ -4231,16 +4227,12 @@ static void test_gbproxy_keep_info()
link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi));
link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli);
- /* FIXME: The gbproxy still uses local_tlli instead of foreign_tlli.
- * Uncomment the assertions below and remove the
- * gbproxy_link_info_by_tlli line below when this is fixed. */
- /* OSMO_ASSERT(link_info); */
- link_info = gbproxy_link_info_by_tlli(peer, local_tlli);
+ OSMO_ASSERT(link_info);
OSMO_ASSERT(link_info == link_info2);
OSMO_ASSERT(link_info->imsi_len != 0);
OSMO_ASSERT(!link_info->is_deregistered);
OSMO_ASSERT(!link_info->imsi_acq_pending);
- /* OSMO_ASSERT(link_info->sgsn_tlli.current == foreign_tlli); */
+ OSMO_ASSERT(link_info->sgsn_tlli.current == foreign_tlli);
OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0);
send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002,
diff --git a/openbsc/tests/gbproxy/gbproxy_test.ok b/openbsc/tests/gbproxy/gbproxy_test.ok
index bc8aae2f3..71a50d0e6 100644
--- a/openbsc/tests/gbproxy/gbproxy_test.ok
+++ b/openbsc/tests/gbproxy/gbproxy_test.ok
@@ -6040,7 +6040,7 @@ Peers:
Attach Request count : 9
TLLI cache size : 1
TLLI-Cache: 1
- TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0
+ TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0
PROCESSING ATTACH ACCEPT from 0x05060708:32000
00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10
@@ -6202,7 +6202,7 @@ Peers:
Attach Request count : 11
TLLI cache size : 1
TLLI-Cache: 1
- TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0
+ TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0
PROCESSING ATTACH ACCEPT from 0x05060708:32000
00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0